Repository: chikobara/dotfiles Branch: main Commit: d0b9365e830f Files: 749 Total size: 2.5 MB Directory structure: gitextract_9l3ptfwt/ ├── .config/ │ ├── ags/ │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .github/ │ │ │ ├── ISSUE_TEMPLATE/ │ │ │ │ ├── bug_report.md │ │ │ │ └── feature_request.md │ │ │ └── workflows/ │ │ │ └── ci.yml │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── LICENSE │ │ ├── README.md │ │ ├── config.js │ │ ├── customModules/ │ │ │ ├── PollVar.ts │ │ │ ├── config.ts │ │ │ ├── cpu/ │ │ │ │ ├── computeCPU.ts │ │ │ │ └── index.ts │ │ │ ├── kblayout/ │ │ │ │ ├── getLayout.ts │ │ │ │ ├── index.ts │ │ │ │ └── layouts.ts │ │ │ ├── module.ts │ │ │ ├── netstat/ │ │ │ │ ├── computeNetwork.ts │ │ │ │ └── index.ts │ │ │ ├── power/ │ │ │ │ └── index.ts │ │ │ ├── ram/ │ │ │ │ ├── computeRam.ts │ │ │ │ └── index.ts │ │ │ ├── storage/ │ │ │ │ ├── computeStorage.ts │ │ │ │ └── index.ts │ │ │ ├── submap/ │ │ │ │ ├── helpers.ts │ │ │ │ └── index.ts │ │ │ ├── theme.ts │ │ │ ├── updates/ │ │ │ │ └── index.ts │ │ │ ├── utils.ts │ │ │ └── weather/ │ │ │ └── index.ts │ │ ├── directoryMonitorService.ts │ │ ├── flake.nix │ │ ├── globals/ │ │ │ ├── dropdown.ts │ │ │ ├── mousePos.ts │ │ │ ├── network.ts │ │ │ ├── notification.ts │ │ │ ├── useTheme.ts │ │ │ ├── utilities.ts │ │ │ ├── variables.ts │ │ │ ├── weather.ts │ │ │ └── window.ts │ │ ├── globals.d.ts │ │ ├── install_fonts.sh │ │ ├── lib/ │ │ │ ├── constants/ │ │ │ │ └── colors.ts │ │ │ ├── icons.ts │ │ │ ├── option.ts │ │ │ ├── session.ts │ │ │ ├── shared/ │ │ │ │ ├── media.ts │ │ │ │ └── notifications.ts │ │ │ ├── types/ │ │ │ │ ├── audio.d.ts │ │ │ │ ├── bar.d.ts │ │ │ │ ├── customModules/ │ │ │ │ │ ├── generic.d.ts │ │ │ │ │ ├── kbLayout.d.ts │ │ │ │ │ ├── network.d.ts │ │ │ │ │ └── utils.d.ts │ │ │ │ ├── defaults/ │ │ │ │ │ ├── bar.ts │ │ │ │ │ ├── netstat.ts │ │ │ │ │ ├── options.ts │ │ │ │ │ └── weather.ts │ │ │ │ ├── dropdownmenu.d.ts │ │ │ │ ├── filechooser.d.ts │ │ │ │ ├── globals.d.ts │ │ │ │ ├── gpustat.d.ts │ │ │ │ ├── mpris.d.ts │ │ │ │ ├── network.d.ts │ │ │ │ ├── notification.d.ts │ │ │ │ ├── options.d.ts │ │ │ │ ├── popupwindow.d.ts │ │ │ │ ├── power.d.ts │ │ │ │ ├── powerprofiles.d.ts │ │ │ │ ├── systray.d.ts │ │ │ │ ├── utils.d.ts │ │ │ │ ├── variable.d.ts │ │ │ │ ├── volume.d.ts │ │ │ │ ├── weather.d.ts │ │ │ │ ├── widget.d.ts │ │ │ │ └── workspace.d.ts │ │ │ ├── utils.ts │ │ │ └── variables.ts │ │ ├── main.ts │ │ ├── modules/ │ │ │ ├── bar/ │ │ │ │ ├── Bar.ts │ │ │ │ ├── Exports.ts │ │ │ │ ├── SideEffects.ts │ │ │ │ ├── battery/ │ │ │ │ │ └── index.ts │ │ │ │ ├── bluetooth/ │ │ │ │ │ └── index.ts │ │ │ │ ├── clock/ │ │ │ │ │ └── index.ts │ │ │ │ ├── media/ │ │ │ │ │ └── index.ts │ │ │ │ ├── menu/ │ │ │ │ │ └── index.ts │ │ │ │ ├── network/ │ │ │ │ │ └── index.ts │ │ │ │ ├── notifications/ │ │ │ │ │ └── index.ts │ │ │ │ ├── systray/ │ │ │ │ │ └── index.ts │ │ │ │ ├── utils.ts │ │ │ │ ├── volume/ │ │ │ │ │ └── index.ts │ │ │ │ ├── window_title/ │ │ │ │ │ └── index.ts │ │ │ │ └── workspaces/ │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ ├── utils.ts │ │ │ │ └── variants/ │ │ │ │ ├── default.ts │ │ │ │ └── occupied.ts │ │ │ ├── icons/ │ │ │ │ ├── index.ts │ │ │ │ └── weather.ts │ │ │ ├── menus/ │ │ │ │ ├── audio/ │ │ │ │ │ ├── active/ │ │ │ │ │ │ ├── SelectedInput.ts │ │ │ │ │ │ ├── SelectedPlayback.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── available/ │ │ │ │ │ │ ├── InputDevices.ts │ │ │ │ │ │ ├── PlaybackDevices.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── bluetooth/ │ │ │ │ │ ├── devices/ │ │ │ │ │ │ ├── connectedControls.ts │ │ │ │ │ │ ├── devicelist.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── label.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── calendar/ │ │ │ │ │ ├── calendar.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── time/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── weather/ │ │ │ │ │ ├── hourly/ │ │ │ │ │ │ ├── icon/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── temperature/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── time/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── icon/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── stats/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── temperature/ │ │ │ │ │ └── index.ts │ │ │ │ ├── dashboard/ │ │ │ │ │ ├── controls/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── directories/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── profile/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── shortcuts/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── stats/ │ │ │ │ │ └── index.ts │ │ │ │ ├── energy/ │ │ │ │ │ ├── brightness/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── profiles/ │ │ │ │ │ └── index.ts │ │ │ │ ├── main.ts │ │ │ │ ├── media/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── bar.ts │ │ │ │ │ │ ├── controls.ts │ │ │ │ │ │ └── mediainfo.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── media.ts │ │ │ │ ├── network/ │ │ │ │ │ ├── ethernet/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ └── wifi/ │ │ │ │ │ ├── APStaging.ts │ │ │ │ │ ├── WirelessAPs.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── notifications/ │ │ │ │ │ ├── controls/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── notification/ │ │ │ │ │ │ ├── actions/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── body/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── close/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── header/ │ │ │ │ │ │ │ ├── icon.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── image/ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── placeholder/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── pager/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── power/ │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ └── actions.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── verification.ts │ │ │ │ ├── powerDropdown/ │ │ │ │ │ ├── button.ts │ │ │ │ │ └── index.ts │ │ │ │ └── shared/ │ │ │ │ ├── dropdown/ │ │ │ │ │ ├── eventBoxes/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── locationHandler/ │ │ │ │ │ └── index.ts │ │ │ │ └── popup/ │ │ │ │ └── index.ts │ │ │ ├── notifications/ │ │ │ │ ├── actions/ │ │ │ │ │ └── index.ts │ │ │ │ ├── body/ │ │ │ │ │ └── index.ts │ │ │ │ ├── close/ │ │ │ │ │ └── index.ts │ │ │ │ ├── header/ │ │ │ │ │ ├── icon.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── image/ │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── osd/ │ │ │ │ ├── bar/ │ │ │ │ │ └── index.ts │ │ │ │ ├── icon/ │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── label/ │ │ │ │ └── index.ts │ │ │ └── shared/ │ │ │ └── barItemBox.ts │ │ ├── nix/ │ │ │ └── default.nix │ │ ├── options.ts │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── README.md │ │ │ ├── checkUpdates.sh │ │ │ ├── color_generation/ │ │ │ │ ├── applycolor.sh │ │ │ │ ├── colorgen.sh │ │ │ │ ├── generate_colors_material.py │ │ │ │ ├── pywal_to_material.scss │ │ │ │ ├── randomwall.sh │ │ │ │ ├── schemes/ │ │ │ │ │ └── scheme_morevibrant.py │ │ │ │ ├── specials/ │ │ │ │ │ ├── _material_badapple-l.scss │ │ │ │ │ └── _material_badapple.scss │ │ │ │ ├── switchcolor.sh │ │ │ │ └── switchwall.sh │ │ │ ├── fillThemes.js │ │ │ ├── fillThemes.sh │ │ │ ├── grimblast.sh │ │ │ ├── hyprland/ │ │ │ │ ├── get_keybinds.py │ │ │ │ └── workspace_action.sh │ │ │ ├── quickscripts/ │ │ │ │ └── nixos-trim-generations.sh │ │ │ ├── record-script.sh │ │ │ ├── sway/ │ │ │ │ └── swayToRelativeWs.sh │ │ │ ├── templates/ │ │ │ │ ├── fuzzel/ │ │ │ │ │ └── fuzzel.ini │ │ │ │ ├── gradience/ │ │ │ │ │ └── preset.json │ │ │ │ ├── hypr/ │ │ │ │ │ ├── hyprland/ │ │ │ │ │ │ └── colors.conf │ │ │ │ │ └── hyprlock.conf │ │ │ │ └── terminal/ │ │ │ │ ├── scheme-base.json │ │ │ │ ├── scheme-monochrome.json │ │ │ │ └── sequences.txt │ │ │ └── wayland-idle-inhibitor.py │ │ ├── scss/ │ │ │ ├── main.scss │ │ │ ├── optionsTrackers.ts │ │ │ ├── style/ │ │ │ │ ├── bar/ │ │ │ │ │ ├── audio.scss │ │ │ │ │ ├── bar.scss │ │ │ │ │ ├── battery.scss │ │ │ │ │ ├── bluetooth.scss │ │ │ │ │ ├── clock.scss │ │ │ │ │ ├── media.scss │ │ │ │ │ ├── menu.scss │ │ │ │ │ ├── network.scss │ │ │ │ │ ├── notifications.scss │ │ │ │ │ ├── power.scss │ │ │ │ │ ├── systray.scss │ │ │ │ │ ├── window_title.scss │ │ │ │ │ └── workspace.scss │ │ │ │ ├── colors.scss │ │ │ │ ├── common/ │ │ │ │ │ ├── common.scss │ │ │ │ │ ├── floating-widget.scss │ │ │ │ │ ├── general.scss │ │ │ │ │ └── widget-button.scss │ │ │ │ ├── customModules/ │ │ │ │ │ └── style.scss │ │ │ │ ├── highlights.scss │ │ │ │ ├── menus/ │ │ │ │ │ ├── audiomenu.scss │ │ │ │ │ ├── bluetooth.scss │ │ │ │ │ ├── calendar.scss │ │ │ │ │ ├── dashboard.scss │ │ │ │ │ ├── energy.scss │ │ │ │ │ ├── media.scss │ │ │ │ │ ├── menu.scss │ │ │ │ │ ├── network.scss │ │ │ │ │ ├── notifications.scss │ │ │ │ │ ├── power.scss │ │ │ │ │ └── powerdropdown.scss │ │ │ │ ├── notifications/ │ │ │ │ │ └── popups.scss │ │ │ │ ├── osd/ │ │ │ │ │ └── index.scss │ │ │ │ └── settings/ │ │ │ │ └── dialog.scss │ │ │ └── style.ts │ │ ├── services/ │ │ │ ├── Brightness.ts │ │ │ ├── Cpu.ts │ │ │ ├── Ram.ts │ │ │ ├── Storage.ts │ │ │ ├── Wallpaper.ts │ │ │ ├── bluetooth.py │ │ │ ├── matugen/ │ │ │ │ ├── index.ts │ │ │ │ └── variations.ts │ │ │ ├── screen_record.sh │ │ │ └── snapshot.sh │ │ ├── themes/ │ │ │ ├── catppuccin_frappe.json │ │ │ ├── catppuccin_frappe_split.json │ │ │ ├── catppuccin_latte.json │ │ │ ├── catppuccin_latte_split.json │ │ │ ├── catppuccin_macchiato.json │ │ │ ├── catppuccin_macchiato_split.json │ │ │ ├── catppuccin_mocha.json │ │ │ ├── catppuccin_mocha_split.json │ │ │ ├── cyberpunk.json │ │ │ ├── cyberpunk_split.json │ │ │ ├── dracula.json │ │ │ ├── dracula_split.json │ │ │ ├── everforest.json │ │ │ ├── everforest_split.json │ │ │ ├── gruvbox.json │ │ │ ├── gruvbox_split.json │ │ │ ├── monochrome.json │ │ │ ├── monochrome_split.json │ │ │ ├── nord.json │ │ │ ├── nord_split.json │ │ │ ├── one_dark.json │ │ │ ├── one_dark_split.json │ │ │ ├── rose_pine.json │ │ │ ├── rose_pine_moon.json │ │ │ ├── rose_pine_moon_split.json │ │ │ ├── rose_pine_split.json │ │ │ ├── tokyo_night.json │ │ │ └── tokyo_night_split.json │ │ ├── tsconfig.json │ │ └── widget/ │ │ ├── RegularWindow.ts │ │ └── settings/ │ │ ├── SettingsDialog.ts │ │ ├── pages/ │ │ │ ├── config/ │ │ │ │ ├── bar/ │ │ │ │ │ └── index.ts │ │ │ │ ├── general/ │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── menus/ │ │ │ │ │ ├── clock.ts │ │ │ │ │ ├── dashboard.ts │ │ │ │ │ └── power.ts │ │ │ │ ├── notifications/ │ │ │ │ │ └── index.ts │ │ │ │ └── osd/ │ │ │ │ └── index.ts │ │ │ └── theme/ │ │ │ ├── bar/ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── menus/ │ │ │ │ ├── battery.ts │ │ │ │ ├── bluetooth.ts │ │ │ │ ├── clock.ts │ │ │ │ ├── dashboard.ts │ │ │ │ ├── index.ts │ │ │ │ ├── matugen.ts │ │ │ │ ├── media.ts │ │ │ │ ├── network.ts │ │ │ │ ├── notifications.ts │ │ │ │ ├── power.ts │ │ │ │ ├── systray.ts │ │ │ │ └── volume.ts │ │ │ ├── notifications/ │ │ │ │ └── index.ts │ │ │ └── osd/ │ │ │ └── index.ts │ │ ├── shared/ │ │ │ ├── FileChooser.ts │ │ │ ├── Header.ts │ │ │ ├── Inputter.ts │ │ │ ├── Label.ts │ │ │ ├── Option.ts │ │ │ └── components/ │ │ │ ├── boolean.ts │ │ │ ├── color.ts │ │ │ ├── enum.ts │ │ │ ├── font.ts │ │ │ ├── image.ts │ │ │ ├── import.ts │ │ │ ├── number.ts │ │ │ ├── object.ts │ │ │ ├── string.ts │ │ │ └── wallpaper.ts │ │ └── side_effects/ │ │ └── index.ts │ ├── fuzzel/ │ │ └── fuzzel.ini │ ├── hypr/ │ │ ├── hypridle.conf │ │ ├── hyprland/ │ │ │ ├── colors.conf │ │ │ ├── env.conf │ │ │ ├── execs.conf │ │ │ ├── general.conf │ │ │ ├── keybinds.conf │ │ │ └── rules.conf │ │ ├── hyprland.conf │ │ ├── hyprlock/ │ │ │ └── status.sh │ │ ├── hyprlock.conf │ │ ├── monitors.conf │ │ ├── shaders/ │ │ │ ├── chromatic_abberation.frag │ │ │ ├── crt.frag │ │ │ ├── drugs.frag │ │ │ ├── extradark.frag │ │ │ ├── invert.frag │ │ │ └── solarized.frag │ │ └── workspaces.conf │ ├── kitty/ │ │ ├── current-theme.conf │ │ ├── kitty-hyprland.conf │ │ ├── kitty-themes/ │ │ │ ├── .all-contributorsrc │ │ │ ├── .tools/ │ │ │ │ ├── README.md │ │ │ │ ├── color_table.sh │ │ │ │ ├── convert.py │ │ │ │ ├── convert_conf.swift │ │ │ │ ├── extract-vscode.sh │ │ │ │ ├── generate_conf.sh │ │ │ │ ├── generate_theme_preview.sh │ │ │ │ ├── generate_themes_previews.sh │ │ │ │ ├── libcapture.sh │ │ │ │ ├── markdown.sh │ │ │ │ ├── palette.py │ │ │ │ ├── preview.py │ │ │ │ ├── previews.sh │ │ │ │ ├── template.conf │ │ │ │ ├── template.conf.j2 │ │ │ │ └── windowid.swift │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ └── themes/ │ │ │ ├── 3024_Day.conf │ │ │ ├── 3024_Night.conf │ │ │ ├── AdventureTime.conf │ │ │ ├── Afterglow.conf │ │ │ ├── AlienBlood.conf │ │ │ ├── Alucard.conf │ │ │ ├── Apprentice.conf │ │ │ ├── Argonaut.conf │ │ │ ├── Arthur.conf │ │ │ ├── AtelierSulphurpool.conf │ │ │ ├── Atom.conf │ │ │ ├── AtomOneLight.conf │ │ │ ├── Batman.conf │ │ │ ├── Belafonte_Day.conf │ │ │ ├── Belafonte_Night.conf │ │ │ ├── BirdsOfParadise.conf │ │ │ ├── Blazer.conf │ │ │ ├── Borland.conf │ │ │ ├── Bright_Lights.conf │ │ │ ├── Broadcast.conf │ │ │ ├── Brogrammer.conf │ │ │ ├── C64.conf │ │ │ ├── CLRS.conf │ │ │ ├── Chalk.conf │ │ │ ├── Chalkboard.conf │ │ │ ├── Ciapre.conf │ │ │ ├── Cobalt2.conf │ │ │ ├── Cobalt_Neon.conf │ │ │ ├── CrayonPonyFish.conf │ │ │ ├── Dark_Pastel.conf │ │ │ ├── Darkside.conf │ │ │ ├── Desert.conf │ │ │ ├── DimmedMonokai.conf │ │ │ ├── DotGov.conf │ │ │ ├── Dracula.conf │ │ │ ├── Dumbledore.conf │ │ │ ├── Duotone_Dark.conf │ │ │ ├── ENCOM.conf │ │ │ ├── Earthsong.conf │ │ │ ├── Elemental.conf │ │ │ ├── Espresso.conf │ │ │ ├── Espresso_Libre.conf │ │ │ ├── Fideloper.conf │ │ │ ├── FishTank.conf │ │ │ ├── Flat.conf │ │ │ ├── Flatland.conf │ │ │ ├── Floraverse.conf │ │ │ ├── FrontEndDelight.conf │ │ │ ├── FunForrest.conf │ │ │ ├── Galaxy.conf │ │ │ ├── Github.conf │ │ │ ├── Glacier.conf │ │ │ ├── GoaBase.conf │ │ │ ├── Grape.conf │ │ │ ├── Grass.conf │ │ │ ├── Hardcore.conf │ │ │ ├── Harper.conf │ │ │ ├── Highway.conf │ │ │ ├── Hipster_Green.conf │ │ │ ├── Homebrew.conf │ │ │ ├── Hurtado.conf │ │ │ ├── Hybrid.conf │ │ │ ├── IC_Green_PPL.conf │ │ │ ├── IC_Orange_PPL.conf │ │ │ ├── IR_Black.conf │ │ │ ├── Jackie_Brown.conf │ │ │ ├── Japanesque.conf │ │ │ ├── Jellybeans.conf │ │ │ ├── JetBrains_Darcula.conf │ │ │ ├── Kibble.conf │ │ │ ├── Later_This_Evening.conf │ │ │ ├── Lavandula.conf │ │ │ ├── LiquidCarbon.conf │ │ │ ├── LiquidCarbonTransparent.conf │ │ │ ├── LiquidCarbonTransparentInverse.conf │ │ │ ├── Man_Page.conf │ │ │ ├── Material.conf │ │ │ ├── MaterialDark.conf │ │ │ ├── Mathias.conf │ │ │ ├── Medallion.conf │ │ │ ├── Misterioso.conf │ │ │ ├── Molokai.conf │ │ │ ├── MonaLisa.conf │ │ │ ├── Monokai.conf │ │ │ ├── Monokai_Classic.conf │ │ │ ├── Monokai_Pro.conf │ │ │ ├── Monokai_Pro_(Filter_Machine).conf │ │ │ ├── Monokai_Pro_(Filter_Octagon).conf │ │ │ ├── Monokai_Pro_(Filter_Ristretto).conf │ │ │ ├── Monokai_Pro_(Filter_Spectrum).conf │ │ │ ├── Monokai_Soda.conf │ │ │ ├── N0tch2k.conf │ │ │ ├── Neopolitan.conf │ │ │ ├── Neutron.conf │ │ │ ├── NightLion_v1.conf │ │ │ ├── NightLion_v2.conf │ │ │ ├── Nova.conf │ │ │ ├── Novel.conf │ │ │ ├── Obsidian.conf │ │ │ ├── Ocean.conf │ │ │ ├── OceanicMaterial.conf │ │ │ ├── Ollie.conf │ │ │ ├── OneDark.conf │ │ │ ├── Parasio_Dark.conf │ │ │ ├── PaulMillr.conf │ │ │ ├── PencilDark.conf │ │ │ ├── PencilLight.conf │ │ │ ├── Piatto_Light.conf │ │ │ ├── Pnevma.conf │ │ │ ├── Pro.conf │ │ │ ├── Red_Alert.conf │ │ │ ├── Red_Sands.conf │ │ │ ├── Relaxed_Afterglow.conf │ │ │ ├── Renault_Style.conf │ │ │ ├── Renault_Style_Light.conf │ │ │ ├── Rippedcasts.conf │ │ │ ├── Royal.conf │ │ │ ├── SeaShells.conf │ │ │ ├── Seafoam_Pastel.conf │ │ │ ├── Seti.conf │ │ │ ├── Shaman.conf │ │ │ ├── Slate.conf │ │ │ ├── Smyck.conf │ │ │ ├── SoftServer.conf │ │ │ ├── Solarized_Darcula.conf │ │ │ ├── Solarized_Dark.conf │ │ │ ├── Solarized_Dark_-_Patched.conf │ │ │ ├── Solarized_Dark_Higher_Contrast.conf │ │ │ ├── Solarized_Light.conf │ │ │ ├── Source_Code_X.conf │ │ │ ├── SpaceGray.conf │ │ │ ├── SpaceGray_Eighties.conf │ │ │ ├── SpaceGray_Eighties_Dull.conf │ │ │ ├── Spacedust.conf │ │ │ ├── Spiderman.conf │ │ │ ├── Spring.conf │ │ │ ├── Square.conf │ │ │ ├── Sundried.conf │ │ │ ├── Symfonic.conf │ │ │ ├── Tango_Dark.conf │ │ │ ├── Tango_Light.conf │ │ │ ├── Teerb.conf │ │ │ ├── Thayer_Bright.conf │ │ │ ├── The_Hulk.conf │ │ │ ├── Tomorrow.conf │ │ │ ├── Tomorrow_Night.conf │ │ │ ├── Tomorrow_Night_Blue.conf │ │ │ ├── Tomorrow_Night_Bright.conf │ │ │ ├── Tomorrow_Night_Eighties.conf │ │ │ ├── ToyChest.conf │ │ │ ├── Treehouse.conf │ │ │ ├── Twilight.conf │ │ │ ├── Ubuntu.conf │ │ │ ├── Urple.conf │ │ │ ├── Vaughn.conf │ │ │ ├── VibrantInk.conf │ │ │ ├── WarmNeon.conf │ │ │ ├── Wez.conf │ │ │ ├── WildCherry.conf │ │ │ ├── Wombat.conf │ │ │ ├── Wryan.conf │ │ │ ├── Zenburn.conf │ │ │ ├── ayu.conf │ │ │ ├── ayu_light.conf │ │ │ ├── ayu_mirage.conf │ │ │ ├── gruvbox_dark.conf │ │ │ ├── gruvbox_light.conf │ │ │ ├── idleToes.conf │ │ │ ├── rose-pine-moon.conf │ │ │ └── snazzy.conf │ │ └── kitty.conf │ ├── qt5ct/ │ │ └── qt5ct.conf │ ├── qt6ct/ │ │ ├── colors/ │ │ │ ├── Catppuccin-Latte.conf │ │ │ └── Catppuccin-Mocha.conf │ │ └── qt6ct.conf │ ├── rofi/ │ │ ├── applets/ │ │ │ ├── bin/ │ │ │ │ ├── appasroot.sh │ │ │ │ ├── apps.sh │ │ │ │ ├── battery.sh │ │ │ │ ├── brightness.sh │ │ │ │ ├── mpd.sh │ │ │ │ ├── powermenu.sh │ │ │ │ ├── quicklinks.sh │ │ │ │ ├── screenshot.sh │ │ │ │ └── volume.sh │ │ │ ├── shared/ │ │ │ │ ├── colors.rasi │ │ │ │ ├── fonts.rasi │ │ │ │ └── theme.bash │ │ │ ├── type-1/ │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ └── style-3.rasi │ │ │ ├── type-2/ │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ └── style-3.rasi │ │ │ ├── type-3/ │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ └── style-3.rasi │ │ │ ├── type-4/ │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ └── style-3.rasi │ │ │ └── type-5/ │ │ │ ├── style-1.rasi │ │ │ ├── style-2.rasi │ │ │ └── style-3.rasi │ │ ├── colors/ │ │ │ ├── adapta.rasi │ │ │ ├── arc.rasi │ │ │ ├── black.rasi │ │ │ ├── catppuccin.rasi │ │ │ ├── cyberpunk.rasi │ │ │ ├── dracula.rasi │ │ │ ├── everforest.rasi │ │ │ ├── gruvbox.rasi │ │ │ ├── lovelace.rasi │ │ │ ├── navy.rasi │ │ │ ├── nord.rasi │ │ │ ├── onedark.rasi │ │ │ ├── paper.rasi │ │ │ ├── solarized.rasi │ │ │ ├── tokyonight.rasi │ │ │ └── yousai.rasi │ │ ├── config.rasi │ │ ├── launchers/ │ │ │ ├── type-1/ │ │ │ │ ├── launcher.sh │ │ │ │ ├── shared/ │ │ │ │ │ ├── colors.rasi │ │ │ │ │ └── fonts.rasi │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-10.rasi │ │ │ │ ├── style-11.rasi │ │ │ │ ├── style-12.rasi │ │ │ │ ├── style-13.rasi │ │ │ │ ├── style-14.rasi │ │ │ │ ├── style-15.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ ├── style-3.rasi │ │ │ │ ├── style-4.rasi │ │ │ │ ├── style-5.rasi │ │ │ │ ├── style-6.rasi │ │ │ │ ├── style-7.rasi │ │ │ │ ├── style-8.rasi │ │ │ │ └── style-9.rasi │ │ │ ├── type-2/ │ │ │ │ ├── launcher.sh │ │ │ │ ├── shared/ │ │ │ │ │ ├── colors.rasi │ │ │ │ │ └── fonts.rasi │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-10.rasi │ │ │ │ ├── style-11.rasi │ │ │ │ ├── style-12.rasi │ │ │ │ ├── style-13.rasi │ │ │ │ ├── style-14.rasi │ │ │ │ ├── style-15.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ ├── style-3.rasi │ │ │ │ ├── style-4.rasi │ │ │ │ ├── style-5.rasi │ │ │ │ ├── style-6.rasi │ │ │ │ ├── style-7.rasi │ │ │ │ ├── style-8.rasi │ │ │ │ └── style-9.rasi │ │ │ ├── type-3/ │ │ │ │ ├── launcher.sh │ │ │ │ ├── shared/ │ │ │ │ │ ├── colors.rasi │ │ │ │ │ └── fonts.rasi │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-10.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ ├── style-3.rasi │ │ │ │ ├── style-4.rasi │ │ │ │ ├── style-5.rasi │ │ │ │ ├── style-6.rasi │ │ │ │ ├── style-7.rasi │ │ │ │ ├── style-8.rasi │ │ │ │ └── style-9.rasi │ │ │ ├── type-4/ │ │ │ │ ├── launcher.sh │ │ │ │ ├── shared/ │ │ │ │ │ ├── colors.rasi │ │ │ │ │ └── fonts.rasi │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-10.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ ├── style-3.rasi │ │ │ │ ├── style-4.rasi │ │ │ │ ├── style-5.rasi │ │ │ │ ├── style-6.rasi │ │ │ │ ├── style-7.rasi │ │ │ │ ├── style-8.rasi │ │ │ │ └── style-9.rasi │ │ │ ├── type-5/ │ │ │ │ ├── launcher.sh │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ ├── style-3.rasi │ │ │ │ ├── style-4.rasi │ │ │ │ └── style-5.rasi │ │ │ ├── type-6/ │ │ │ │ ├── launcher.sh │ │ │ │ ├── style-1.rasi │ │ │ │ ├── style-10.rasi │ │ │ │ ├── style-2.rasi │ │ │ │ ├── style-3.rasi │ │ │ │ ├── style-4.rasi │ │ │ │ ├── style-5.rasi │ │ │ │ ├── style-6.rasi │ │ │ │ ├── style-7.rasi │ │ │ │ ├── style-8.rasi │ │ │ │ └── style-9.rasi │ │ │ └── type-7/ │ │ │ ├── launcher.sh │ │ │ ├── style-1.rasi │ │ │ ├── style-10.rasi │ │ │ ├── style-2.rasi │ │ │ ├── style-3.rasi │ │ │ ├── style-4.rasi │ │ │ ├── style-5.rasi │ │ │ ├── style-6.rasi │ │ │ ├── style-7.rasi │ │ │ ├── style-8.rasi │ │ │ └── style-9.rasi │ │ └── powermenu/ │ │ ├── type-1/ │ │ │ ├── powermenu.sh │ │ │ ├── shared/ │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ ├── style-1.rasi │ │ │ ├── style-2.rasi │ │ │ ├── style-3.rasi │ │ │ ├── style-4.rasi │ │ │ └── style-5.rasi │ │ ├── type-2/ │ │ │ ├── powermenu.sh │ │ │ ├── shared/ │ │ │ │ ├── colors.rasi │ │ │ │ └── fonts.rasi │ │ │ ├── style-1.rasi │ │ │ ├── style-10.rasi │ │ │ ├── style-2.rasi │ │ │ ├── style-3.rasi │ │ │ ├── style-4.rasi │ │ │ ├── style-5.rasi │ │ │ ├── style-6.rasi │ │ │ ├── style-7.rasi │ │ │ ├── style-8.rasi │ │ │ └── style-9.rasi │ │ ├── type-3/ │ │ │ ├── powermenu.sh │ │ │ ├── shared/ │ │ │ │ ├── colors.rasi │ │ │ │ ├── confirm.rasi │ │ │ │ └── fonts.rasi │ │ │ ├── style-1.rasi │ │ │ ├── style-2.rasi │ │ │ ├── style-3.rasi │ │ │ ├── style-4.rasi │ │ │ └── style-5.rasi │ │ ├── type-4/ │ │ │ ├── powermenu.sh │ │ │ ├── shared/ │ │ │ │ ├── colors.rasi │ │ │ │ ├── confirm.rasi │ │ │ │ └── fonts.rasi │ │ │ ├── style-1.rasi │ │ │ ├── style-2.rasi │ │ │ ├── style-3.rasi │ │ │ ├── style-4.rasi │ │ │ └── style-5.rasi │ │ ├── type-5/ │ │ │ ├── powermenu.sh │ │ │ ├── style-1.rasi │ │ │ ├── style-2.rasi │ │ │ ├── style-3.rasi │ │ │ ├── style-4.rasi │ │ │ └── style-5.rasi │ │ └── type-6/ │ │ ├── powermenu.sh │ │ ├── style-1.rasi │ │ ├── style-2.rasi │ │ ├── style-3.rasi │ │ ├── style-4.rasi │ │ └── style-5.rasi │ ├── wlogout/ │ │ ├── layout │ │ └── style.css │ └── zshrc.d/ │ ├── auto-Hypr.sh │ ├── dots-hyprland.zsh │ └── shortcuts.zsh ├── .fastfetch_conf.jsonc ├── .fonts/ │ ├── .uuid │ └── CustomTkinter_shapes_font.otf ├── .gitattributes ├── .zprofile ├── .zshenv ├── .zshrc ├── README.md ├── backup.sh └── hyprpanel_config.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .config/ags/.eslintignore ================================================ types node_modules ================================================ FILE: .config/ags/.eslintrc.js ================================================ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['@typescript-eslint', 'import'], extends: ['plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'], root: true, ignorePatterns: ['.eslintrc.js', 'types/**/*.ts', 'scripts/**/*.js'], env: { es6: true, browser: true, }, rules: { '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/explicit-function-return-type': 'error', '@typescript-eslint/explicit-module-boundary-types': 'error', '@typescript-eslint/no-explicit-any': 'error', 'import/extensions': ['off'], 'import/no-unresolved': 'off', quotes: ['error', 'single', { avoidEscape: true, allowTemplateLiterals: true }], }, }; ================================================ FILE: .config/ags/.github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help HyprPanel improve title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - Distribution: [e.g. Arch Linux] - Window Manager/Desktop Environment: [e.g. Hyprland] **Additional context** Add any other context about the problem here. ================================================ FILE: .config/ags/.github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. ================================================ FILE: .config/ags/.github/workflows/ci.yml ================================================ name: CI on: pull_request: branches: - master jobs: code_quality: runs-on: ubuntu-latest steps: - name: Checkout main repository uses: actions/checkout@v3 - name: Clone ags-types to temp dir uses: actions/checkout@v3 with: repository: Jas-SinghFSU/ags-types path: temp-ags-types - name: Copy types to types/ run: | rm -rf types mkdir -p types cp -R temp-ags-types/types/* types/ rm -rf temp-ags-types - name: Node Setup uses: actions/setup-node@v3 with: node-version: '21' - name: Install Dependencies run: npm install - name: ESLint run: npm run lint - name: Type Check run: npx tsc --noEmit --pretty --extendedDiagnostics ================================================ FILE: .config/ags/.gitignore ================================================ .weather.json node_modules ================================================ FILE: .config/ags/.gitmodules ================================================ [submodule "external/ags-types"] path = external/ags-types url = https://github.com/Jas-SinghFSU/ags-types.git ================================================ FILE: .config/ags/.prettierignore ================================================ .eslintrc.js types/**/*.ts ================================================ FILE: .config/ags/.prettierrc ================================================ { "singleQuote": true, "semi": true, "trailingComma": "all", "printWidth": 120, "tabWidth": 4, "useTabs": false } ================================================ FILE: .config/ags/LICENSE ================================================ MIT License Copyright (c) 2024 Jas Singh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .config/ags/README.md ================================================

Hyprpanel logo


wiki discord chat


# HyprPanel 🚀 A panel built for Hyprland with [AGS](https://github.com/Aylur/ags) ![HyprPanel1](./assets/hp1.png) ![HyprPanel2](./assets/hp2.png) ## Installation The [HyprPanel Wiki](https://hyprpanel.com/getting_started/installation.html) contains in depth instructions for installing the panel and all of its dependencies. The instructions below are general instructions for installing the panel. ## Requirements Bun ```sh curl -fsSL https://bun.sh/install | bash && \ sudo ln -s $HOME/.bun/bin/bun /usr/local/bin/bun ``` Additional dependencies: ```sh pipewire libgtop bluez bluez-utils grimblast gpu-screen-recorder hyprpicker btop networkmanager matugen wl-clipboard swww dart-sass brightnessctl gnome-bluetooth-3.0 ``` Optional Dependencies: ```sh ## Used for Tracking GPU Usage in your Dashboard (NVidia only) python python-gpustat ## Only if a pywal hook from wallpaper changes applied through settings is desired pywal ## To check for pacman updates in the default script used in the updates module pacman-contrib ## To switch between power profiles in battery module power-profiles-daemon ``` ### Arch pacman: ```bash sudo pacman -S pipewire libgtop bluez bluez-utils btop networkmanager dart-sass wl-clipboard brightnessctl swww python gnome-bluetooth-3.0 pacman-contrib power-profiles-daemon ``` AUR: ```bash yay -S grimblast-git gpu-screen-recorder hyprpicker matugen-bin python-gpustat aylurs-gtk-shell-git ``` ### Fedora COPR - Add [solopasha/hyprland](https://copr.fedorainfracloud.org/coprs/solopasha/hyprland/) for most hyprland-related dependencies, and [hues-sueh/packages](https://copr.fedorainfracloud.org/coprs/heus-sueh/packages/) for matugen. Both provide the `swww` package, so prioritise the former repo: ```bash sudo dnf copr enable solopasha/hyprland sudo dnf copr enable heus-sueh/packages sudo dnf config-manager --save --setopt=copr:copr.fedorainfracloud.org:heus-sueh:packages.priority=200 ``` DNF: ```bash sudo dnf install pipewire libgtop2 bluez bluez-tools grimblast hyprpicker btop NetworkManager wl-clipboard swww brightnessctl gnome-bluetooth aylurs-gtk-shell power-profiles-daemon gvfs ``` bun: ```bash bun install -g sass ``` flatpak: ```bash flatpak install flathub --system com.dec05eba.gpu_screen_recorder ``` #### Optional Dependencies pip: ```bash sudo dnf install python python3-pip; pip install gpustat pywal ``` ### NixOS For NixOS/Home-Manager, see [NixOS & Home-Manager instructions](#nixos--home-manager). ## Instructions ### AGS Once everything is installed you need to put the contents of this repo in `~/.config/ags`. If you already have something in `~/.config/ags`, it's recommended that you back it up with: ```bash mv $HOME/.config/ags $HOME/.config/ags.bkup ``` Otherwise you can use this command to install the panel: ```bash git clone https://github.com/Jas-SinghFSU/HyprPanel.git && \ ln -s $(pwd)/HyprPanel $HOME/.config/ags ``` ### Nerd Fonts Additionally, you need to ensure that you have a [Nerd Font](https://www.nerdfonts.com/font-downloads) installed for your icons to render properly. ### Launch the panel Afterwards you can run the panel with the following command in your terminal: ```bash ags ``` Or you can add it to your Hyprland config (hyprland.conf) to auto-start with: ```bash exec-once = ags ``` ### NixOS & Home-Manager Alternatively, if you're using NixOS and/or Home-Manager, you can setup AGS using the provided Nix Flake. First, add the repository to your Flake's inputs, and enable the overlay. ```nix # flake.nix { inputs.hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; # ... outputs = { self, nixpkgs, ... }@inputs: let # ... system = "x86_64-linux"; # change to whatever your system should be. pkgs = import nixpkgs { inherit system; # ... overlays = [ inputs.hyprpanel.overlay ]; }; in { # ... } } ``` Once you've set up the overlay, you can reference HyprPanel with `pkgs.hyprpanel` as if it were any other Nix package. This means you can reference it as a NixOS system/user package, a Home-Manager user package, or as a direct reference in your Hyprland configuration (if your configuration is managed by Home-Manager). The first three methods will add it to your `$PATH` (first globally, second two user-only), however the final will not. ```nix # configuration.nix # install it as a system package environment.systemPackages = with pkgs; [ # ... hyprpanel # ... ]; # or install it as a user package users.users..packages = with pkgs; [ # ... hyprpanel # ... ]; # home.nix # install it as a user package with home-manager home.packages = with pkgs; [ # ... hyprpanel # ... ]; # or reference it directly in your Hyprland configuration wayland.windowManager.hyprland.settings.exec-once = [ "${pkgs.hyprpanel}/bin/hyprpanel" ]; ``` ### Notifications HyprPanel handles notifications through the AGS built-in notification service. If you're already using a notification daemon such as Dunst or Mako, you may have to stop them to prevent conflicts with HyprPanel. > NOTE: If your system is in a language other than English, the resource monitor in the dashboard may not work properly. ## Configuration The HyprPanel comes with a configuration menu which is available by opening the Dashboard menu (click the button in the bar with the default - Arch - icon) and then clicking the Gear icon. ### Size The panel is automatically scaled based on your font size in `Configuration > General`. ### Specifying bar layouts per monitor To specify layouts for each monitor you can create a JSON object such as: ```JSON { "0": { "left": [ "dashboard", "workspaces", "windowtitle" ], "middle": [ "media" ], "right": [ "volume", "clock", "notifications" ] }, "1": { "left": [ "dashboard", "workspaces", "windowtitle" ], "middle": [ "media" ], "right": [ "volume", "clock", "notifications" ] }, "2": { "left": [ "dashboard", "workspaces", "windowtitle" ], "middle": [ "media" ], "right": [ "volume", "network", "bluetooth", "systray", "clock", "notifications" ] } } ``` Where each monitor is defined by its index (0, 1, 2 in this case) and each section (left, middle, right) contains one or more of the following modules: ```js 'battery'; 'dashboard'; 'workspaces'; 'windowtitle'; 'media'; 'notifications'; 'volume'; 'network'; 'bluetooth'; 'clock'; 'systray'; ``` Since the text-box in the options dialog isn't sufficient, it is recommended that you create this JSON configuration in a text editor elsewhere and paste it into the layout text-box under Configuration > Bar > "Bar Layouts for Monitors". ### Additional Configuration #### GPU Tracking If you have an NVidia GPU, you can track your GPU usage in your Dashboard by going to your `Settings > Configuration > Dashboard Menu > Track GPU` and turning it on. ================================================ FILE: .config/ags/config.js ================================================ import GLib from 'gi://GLib'; const main = '/tmp/ags/hyprpanel/main.js'; const entry = `${App.configDir}/main.ts`; const bundler = GLib.getenv('AGS_BUNDLER') || 'bun'; const v = { ags: pkg.version?.split('.').map(Number) || [], expect: [1, 8, 1], }; try { switch (bundler) { case 'bun': await Utils.execAsync([ 'bun', 'build', entry, '--outfile', main, '--external', 'resource://*', '--external', 'gi://*', '--external', 'file://*', ]); break; case 'esbuild': await Utils.execAsync([ 'esbuild', '--bundle', entry, '--format=esm', `--outfile=${main}`, '--external:resource://*', '--external:gi://*', '--external:file://*', ]); break; default: throw `"${bundler}" is not a valid bundler`; } if (v.ags[1] < v.expect[1] || v.ags[2] < v.expect[2]) { print(`HyprPanel needs atleast v${v.expect.join('.')} of AGS, yours is v${v.ags.join('.')}`); App.quit(); } await import(`file://${main}`); } catch (error) { console.error(error); App.quit(); } export {}; ================================================ FILE: .config/ags/customModules/PollVar.ts ================================================ import GLib from 'gi://GLib?version=2.0'; import { GenericFunction } from 'lib/types/customModules/generic'; import { Bind } from 'lib/types/variable'; import { Variable as VariableType } from 'types/variable'; /** * @param {VariableType} targetVariable - The Variable to update with the function's result. * @param {Array} trackers - Array of trackers to watch. * @param {Bind} pollingInterval - The polling interval in milliseconds. * @param {GenericFunction} someFunc - The function to execute at each interval, which updates the Variable. * @param {...P} params - Parameters to pass to someFunc. */ export const pollVariable = >( targetVariable: VariableType, trackers: Array, pollingInterval: Bind, someFunc: F, ...params: P ): void => { let intervalInstance: number | null = null; const intervalFn = (pollIntrvl: number): void => { if (intervalInstance !== null) { GLib.source_remove(intervalInstance); } intervalInstance = Utils.interval(pollIntrvl, () => { targetVariable.value = someFunc(...params); }); }; Utils.merge([pollingInterval, ...trackers], (pollIntrvl: number) => { intervalFn(pollIntrvl); }); }; /** * @param {VariableType} targetVariable - The Variable to update with the result of the command. * @param {Array} trackers - Array of trackers to watch. * @param {Bind} pollingInterval - The polling interval in milliseconds. * @param {string} someCommand - The bash command to execute. * @param {GenericFunction} someFunc - The function to execute after processing the command result; * with the first argument being the result of the command execution. * @param {...P} params - Additional parameters to pass to someFunc. */ export const pollVariableBash = >( targetVariable: VariableType, trackers: Array, pollingInterval: Bind, someCommand: string, someFunc: F, ...params: P ): void => { let intervalInstance: number | null = null; const intervalFn = (pollIntrvl: number): void => { if (intervalInstance !== null) { GLib.source_remove(intervalInstance); } intervalInstance = Utils.interval(pollIntrvl, () => { Utils.execAsync(`bash -c "${someCommand}"`) .then((res: string) => { try { targetVariable.value = someFunc(res, ...params); } catch (error) { console.warn(`An error occurred when running interval bash function: ${error}`); } }) .catch((err) => console.error(`Error running command "${someCommand}": ${err}`)); }); }; Utils.merge([pollingInterval, ...trackers], (pollIntrvl: number) => { intervalFn(pollIntrvl); }); }; ================================================ FILE: .config/ags/customModules/config.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, GtkWidget } from 'lib/types/widget'; export const CustomModuleSettings = (): Scrollable => Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page customModules paged-container', child: Widget.Box({ class_name: 'menu-theme-page paged-container', vertical: true, children: [ /* ************************************ * GENERAL * ************************************ */ Header('General'), Option({ opt: options.bar.customModules.scrollSpeed, title: 'Scrolling Speed', type: 'number', }), /* ************************************ * RAM * ************************************ */ Header('RAM'), Option({ opt: options.theme.bar.buttons.modules.ram.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.ram.icon, title: 'Ram Icon', type: 'string', }), Option({ opt: options.bar.customModules.ram.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.modules.ram.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.ram.labelType, title: 'Label Type', type: 'enum', enums: ['used/total', 'used', 'free', 'percentage'], }), Option({ opt: options.bar.customModules.ram.round, title: 'Round', type: 'boolean', }), Option({ opt: options.bar.customModules.ram.pollingInterval, title: 'Polling Interval', type: 'number', min: 100, max: 60 * 24 * 1000, increment: 1000, }), Option({ opt: options.bar.customModules.ram.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.ram.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.ram.middleClick, title: 'Middle Click', type: 'string', }), /* ************************************ * CPU * ************************************ */ Header('CPU'), Option({ opt: options.theme.bar.buttons.modules.cpu.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.cpu.icon, title: 'Cpu Icon', type: 'string', }), Option({ opt: options.bar.customModules.cpu.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.modules.cpu.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.cpu.round, title: 'Round', type: 'boolean', }), Option({ opt: options.bar.customModules.cpu.pollingInterval, title: 'Polling Interval', type: 'number', min: 100, max: 60 * 24 * 1000, increment: 1000, }), Option({ opt: options.bar.customModules.cpu.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.cpu.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.cpu.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.customModules.cpu.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.customModules.cpu.scrollDown, title: 'Scroll Down', type: 'string', }), /* ************************************ * STORAGE * ************************************ */ Header('Storage'), Option({ opt: options.theme.bar.buttons.modules.storage.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.storage.icon, title: 'Storage Icon', type: 'string', }), Option({ opt: options.bar.customModules.storage.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.modules.storage.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.storage.labelType, title: 'Label Type', type: 'enum', enums: ['used/total', 'used', 'free', 'percentage'], }), Option({ opt: options.bar.customModules.storage.round, title: 'Round', type: 'boolean', }), Option({ opt: options.bar.customModules.storage.pollingInterval, title: 'Polling Interval', type: 'number', min: 100, max: 60 * 24 * 1000, increment: 1000, }), Option({ opt: options.bar.customModules.storage.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.storage.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.storage.middleClick, title: 'Middle Click', type: 'string', }), /* ************************************ * NETSTAT * ************************************ */ Header('Netstat'), Option({ opt: options.theme.bar.buttons.modules.netstat.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.netstat.networkInterface, title: 'Network Interface', subtitle: "Name of the network interface to poll.\nHINT: Get list of interfaces with 'cat /proc/net/dev'", type: 'string', }), Option({ opt: options.bar.customModules.netstat.icon, title: 'Netstat Icon', type: 'string', }), Option({ opt: options.bar.customModules.netstat.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.bar.customModules.netstat.rateUnit, title: 'Rate Unit', type: 'enum', enums: ['GiB', 'MiB', 'KiB', 'auto'], }), Option({ opt: options.theme.bar.buttons.modules.netstat.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.netstat.labelType, title: 'Label Type', type: 'enum', enums: ['full', 'in', 'out'], }), Option({ opt: options.bar.customModules.netstat.round, title: 'Round', type: 'boolean', }), Option({ opt: options.bar.customModules.netstat.pollingInterval, title: 'Polling Interval', type: 'number', min: 100, max: 60 * 24 * 1000, increment: 1000, }), Option({ opt: options.bar.customModules.netstat.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.netstat.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.netstat.middleClick, title: 'Middle Click', type: 'string', }), /* ************************************ * KEYBOARD LAYOUT * ************************************ */ Header('Keyboard Layout'), Option({ opt: options.theme.bar.buttons.modules.kbLayout.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.kbLayout.icon, title: 'Keyboard Layout Icon', type: 'string', }), Option({ opt: options.bar.customModules.kbLayout.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.bar.customModules.kbLayout.labelType, title: 'Label Type', type: 'enum', enums: ['layout', 'code'], }), Option({ opt: options.theme.bar.buttons.modules.kbLayout.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.kbLayout.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.kbLayout.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.kbLayout.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.customModules.kbLayout.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.customModules.kbLayout.scrollDown, title: 'Scroll Down', type: 'string', }), /* ************************************ * UPDATES * ************************************ */ Header('Updates'), Option({ opt: options.theme.bar.buttons.modules.updates.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.updates.updateCommand, title: 'Check Updates Command', type: 'string', }), Option({ opt: options.bar.customModules.updates.icon, title: 'Updates Icon', type: 'string', }), Option({ opt: options.bar.customModules.updates.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.bar.customModules.updates.padZero, title: 'Pad with 0', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.modules.updates.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.updates.pollingInterval, title: 'Polling Interval', type: 'number', subtitle: "WARNING: Be careful of your package manager's rate limit.", min: 100, max: 60 * 24 * 1000, increment: 1000, }), Option({ opt: options.bar.customModules.updates.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.updates.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.updates.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.customModules.updates.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.customModules.updates.scrollDown, title: 'Scroll Down', type: 'string', }), /* ************************************ * SUBMAP * ************************************ */ Header('Submap'), Option({ opt: options.theme.bar.buttons.modules.submap.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.submap.showSubmapName, title: 'Show Submap Name', subtitle: 'When enabled, the name of the current submap will be displayed' + ' instead of the Submap Enabled or Disabled text.', type: 'boolean', }), Option({ opt: options.bar.customModules.submap.enabledIcon, title: 'Enabled Icon', type: 'string', }), Option({ opt: options.bar.customModules.submap.disabledIcon, title: 'Disabled Icon', type: 'string', }), Option({ opt: options.bar.customModules.submap.enabledText, title: 'Enabled Text', type: 'string', }), Option({ opt: options.bar.customModules.submap.disabledText, title: 'Disabled Text', type: 'string', }), Option({ opt: options.bar.customModules.submap.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.modules.submap.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.submap.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.submap.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.submap.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.customModules.submap.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.customModules.submap.scrollDown, title: 'Scroll Down', type: 'string', }), /* ************************************ * WEATHER * ************************************ */ Header('Weather'), Option({ opt: options.theme.bar.buttons.modules.weather.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.customModules.weather.label, title: 'Show Label', type: 'boolean', }), Option({ opt: options.bar.customModules.weather.unit, title: 'Units', type: 'enum', enums: ['imperial', 'metric'], }), Option({ opt: options.theme.bar.buttons.modules.weather.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.weather.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.weather.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.weather.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.customModules.weather.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.customModules.weather.scrollDown, title: 'Scroll Down', type: 'string', }), /* ************************************ * POWER * ************************************ */ Header('Power'), Option({ opt: options.theme.bar.buttons.modules.power.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.modules.power.spacing, title: 'Spacing', type: 'string', }), Option({ opt: options.bar.customModules.power.icon, title: 'Power Button Icon', type: 'string', }), Option({ opt: options.bar.customModules.power.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.customModules.power.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.customModules.power.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.customModules.power.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.customModules.power.scrollDown, title: 'Scroll Down', type: 'string', }), ], }), }); ================================================ FILE: .config/ags/customModules/cpu/computeCPU.ts ================================================ // @ts-expect-error: This import is a special directive that tells the compiler to use the GTop library import GTop from 'gi://GTop'; let previousCpuData = new GTop.glibtop_cpu(); GTop.glibtop_get_cpu(previousCpuData); // FIX: Consolidate with Cpu service class export const computeCPU = (): number => { const currentCpuData = new GTop.glibtop_cpu(); GTop.glibtop_get_cpu(currentCpuData); // Calculate the differences from the previous to current data const totalDiff = currentCpuData.total - previousCpuData.total; const idleDiff = currentCpuData.idle - previousCpuData.idle; const cpuUsagePercentage = totalDiff > 0 ? ((totalDiff - idleDiff) / totalDiff) * 100 : 0; previousCpuData = currentCpuData; return cpuUsagePercentage; }; ================================================ FILE: .config/ags/customModules/cpu/index.ts ================================================ import options from 'options'; // Module initializer import { module } from '../module'; import Button from 'types/widgets/button'; // Utility Methods import { inputHandler } from 'customModules/utils'; import { computeCPU } from './computeCPU'; import { pollVariable } from 'customModules/PollVar'; import { BarBoxChild } from 'lib/types/bar'; import { Attribute, Child } from 'lib/types/widget'; // All the user configurable options for the cpu module that are needed const { label, round, leftClick, rightClick, middleClick, scrollUp, scrollDown, pollingInterval, icon } = options.bar.customModules.cpu; export const cpuUsage = Variable(0); pollVariable( // Variable to poll and update with the result of the function passed in cpuUsage, // Variables that should trigger the polling function to update when they change [round.bind('value')], // Interval at which to poll pollingInterval.bind('value'), // Function to execute to get the network data computeCPU, ); export const Cpu = (): BarBoxChild => { const renderLabel = (cpuUsg: number, rnd: boolean): string => { return rnd ? `${Math.round(cpuUsg)}%` : `${cpuUsg.toFixed(2)}%`; }; const cpuModule = module({ textIcon: icon.bind('value'), label: Utils.merge([cpuUsage.bind('value'), round.bind('value')], (cpuUsg, rnd) => { return renderLabel(cpuUsg, rnd); }), tooltipText: 'CPU', boxClass: 'cpu', showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { cmd: scrollUp, }, onScrollDown: { cmd: scrollDown, }, }); }, }, }); return cpuModule; }; ================================================ FILE: .config/ags/customModules/kblayout/getLayout.ts ================================================ import { HyprctlDeviceLayout, HyprctlKeyboard, KbLabelType, LayoutKeys, LayoutValues, } from 'lib/types/customModules/kbLayout'; import { layoutMap } from './layouts'; export const getKeyboardLayout = (obj: string, format: KbLabelType): LayoutKeys | LayoutValues => { const hyprctlDevices: HyprctlDeviceLayout = JSON.parse(obj); const keyboards = hyprctlDevices['keyboards']; if (keyboards.length === 0) { return format === 'code' ? 'Unknown' : 'Unknown Layout'; } let mainKb = keyboards.find((kb: HyprctlKeyboard) => kb.main); if (!mainKb) { mainKb = keyboards[keyboards.length - 1]; } const layout: LayoutKeys = mainKb['active_keymap'] as LayoutKeys; const foundLayout: LayoutValues = layoutMap[layout]; return format === 'code' ? foundLayout || layout : layout; }; ================================================ FILE: .config/ags/customModules/kblayout/index.ts ================================================ const hyprland = await Service.import('hyprland'); import options from 'options'; import { module } from '../module'; import { inputHandler } from 'customModules/utils'; import Gtk from 'types/@girs/gtk-3.0/gtk-3.0'; import Button from 'types/widgets/button'; import Label from 'types/widgets/label'; import { getKeyboardLayout } from './getLayout'; import { BarBoxChild } from 'lib/types/bar'; import { Attribute, Child } from 'lib/types/widget'; const { label, labelType, icon, leftClick, rightClick, middleClick, scrollUp, scrollDown } = options.bar.customModules.kbLayout; export const KbInput = (): BarBoxChild => { const keyboardModule = module({ textIcon: icon.bind('value'), tooltipText: '', labelHook: (self: Label): void => { self.hook( hyprland, () => { Utils.execAsync('hyprctl devices -j') .then((obj) => { self.label = getKeyboardLayout(obj, labelType.value); }) .catch((err) => { console.error(err); }); }, 'keyboard-layout', ); self.hook(labelType, () => { Utils.execAsync('hyprctl devices -j') .then((obj) => { self.label = getKeyboardLayout(obj, labelType.value); }) .catch((err) => { console.error(err); }); }); }, boxClass: 'kblayout', showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { cmd: scrollUp, }, onScrollDown: { cmd: scrollDown, }, }); }, }, }); return keyboardModule; }; ================================================ FILE: .config/ags/customModules/kblayout/layouts.ts ================================================ export const layoutMap = { 'Abkhazian (Russia)': 'RU (Ab)', Akan: 'GH (Akan)', Albanian: 'AL', 'Albanian (Plisi)': 'AL (Plisi)', 'Albanian (Veqilharxhi)': 'AL (Veqilharxhi)', Amharic: 'ET', Arabic: 'ARA', 'Arabic (Algeria)': 'DZ (Ar)', 'Arabic (AZERTY, Eastern Arabic numerals)': 'ARA (Azerty Digits)', 'Arabic (AZERTY)': 'ARA (Azerty)', 'Arabic (Buckwalter)': 'ARA (Buckwalter)', 'Arabic (Eastern Arabic numerals)': 'ARA (Digits)', 'Arabic (Macintosh)': 'ARA (Mac)', 'Arabic (Morocco)': 'MA', 'Arabic (OLPC)': 'ARA (Olpc)', 'Arabic (Pakistan)': 'PK (Ara)', 'Arabic (QWERTY, Eastern Arabic numerals)': 'ARA (Qwerty Digits)', 'Arabic (QWERTY)': 'ARA (Qwerty)', 'Arabic (Syria)': 'SY', Armenian: 'AM', 'Armenian (alt. eastern)': 'AM (Eastern-Alt)', 'Armenian (alt. phonetic)': 'AM (Phonetic-Alt)', 'Armenian (eastern)': 'AM (Eastern)', 'Armenian (phonetic)': 'AM (Phonetic)', 'Armenian (western)': 'AM (Western)', 'Asturian (Spain, with bottom-dot H and L)': 'ES (Ast)', Avatime: 'GH (Avn)', Azerbaijani: 'AZ', 'Azerbaijani (Cyrillic)': 'AZ (Cyrillic)', 'Azerbaijani (Iran)': 'IR (Azb)', Bambara: 'ML', Bangla: 'BD', 'Bangla (India, Baishakhi InScript)': 'IN (Ben Inscript)', 'Bangla (India, Baishakhi)': 'IN (Ben Baishakhi)', 'Bangla (India, Bornona)': 'IN (Ben Bornona)', 'Bangla (India, Gitanjali)': 'IN (Ben Gitanjali)', 'Bangla (India, Probhat)': 'IN (Ben Probhat)', 'Bangla (India)': 'IN (Ben)', 'Bangla (Probhat)': 'BD (Probhat)', Bashkirian: 'RU (Bak)', Belarusian: 'BY', 'Belarusian (intl.)': 'BY (Intl)', 'Belarusian (Latin)': 'BY (Latin)', 'Belarusian (legacy)': 'BY (Legacy)', 'Belarusian (phonetic)': 'BY (Phonetic)', Belgian: 'BE', 'Belgian (alt.)': 'BE (Oss)', 'Belgian (ISO, alt.)': 'BE (Iso-Alternate)', 'Belgian (Latin-9 only, alt.)': 'BE (Oss Latin9)', 'Belgian (no dead keys)': 'BE (Nodeadkeys)', 'Belgian (Wang 724 AZERTY)': 'BE (Wang)', 'Berber (Algeria, Latin)': 'DZ', 'Berber (Algeria, Tifinagh)': 'DZ (Ber)', 'Berber (Morocco, Tifinagh alt.)': 'MA (Tifinagh-Alt)', 'Berber (Morocco, Tifinagh extended phonetic)': 'MA (Tifinagh-Extended-Phonetic)', 'Berber (Morocco, Tifinagh extended)': 'MA (Tifinagh-Extended)', 'Berber (Morocco, Tifinagh phonetic, alt.)': 'MA (Tifinagh-Alt-Phonetic)', 'Berber (Morocco, Tifinagh phonetic)': 'MA (Tifinagh-Phonetic)', 'Berber (Morocco, Tifinagh)': 'MA (Tifinagh)', Bosnian: 'BA', 'Bosnian (US, with Bosnian digraphs)': 'BA (Unicodeus)', 'Bosnian (US)': 'BA (Us)', 'Bosnian (with Bosnian digraphs)': 'BA (Unicode)', 'Bosnian (with guillemets)': 'BA (Alternatequotes)', Braille: 'BRAI', 'Braille (left-handed inverted thumb)': 'BRAI (Left Hand Invert)', 'Braille (left-handed)': 'BRAI (Left Hand)', 'Braille (right-handed inverted thumb)': 'BRAI (Right Hand Invert)', 'Braille (right-handed)': 'BRAI (Right Hand)', 'Breton (France)': 'FR (Bre)', Bulgarian: 'BG', 'Bulgarian (enhanced)': 'BG (Bekl)', 'Bulgarian (new phonetic)': 'BG (Bas Phonetic)', 'Bulgarian (traditional phonetic)': 'BG (Phonetic)', Burmese: 'MM', 'Burmese Zawgyi': 'MM (Zawgyi)', 'Cameroon (AZERTY, intl.)': 'CM (Azerty)', 'Cameroon (Dvorak, intl.)': 'CM (Dvorak)', 'Cameroon Multilingual (QWERTY, intl.)': 'CM (Qwerty)', 'Canadian (CSA)': 'CA (Multix)', 'Catalan (Spain, with middle-dot L)': 'ES (Cat)', Cherokee: 'US (Chr)', Chinese: 'CN', Chuvash: 'RU (Cv)', 'Chuvash (Latin)': 'RU (Cv Latin)', CloGaelach: 'IE (CloGaelach)', 'Crimean Tatar (Turkish Alt-Q)': 'UA (Crh Alt)', 'Crimean Tatar (Turkish F)': 'UA (Crh F)', 'Crimean Tatar (Turkish Q)': 'UA (Crh)', Croatian: 'HR', 'Croatian (US, with Croatian digraphs)': 'HR (Unicodeus)', 'Croatian (US)': 'HR (Us)', 'Croatian (with Croatian digraphs)': 'HR (Unicode)', 'Croatian (with guillemets)': 'HR (Alternatequotes)', Czech: 'CZ', 'Czech (QWERTY, extended backslash)': 'CZ (Qwerty Bksl)', 'Czech (QWERTY, Macintosh)': 'CZ (Qwerty-Mac)', 'Czech (QWERTY)': 'CZ (Qwerty)', 'Czech (UCW, only accented letters)': 'CZ (Ucw)', 'Czech (US, Dvorak, UCW support)': 'CZ (Dvorak-Ucw)', 'Czech (with <\\|> key)': 'CZ (Bksl)', Danish: 'DK', 'Danish (Dvorak)': 'DK (Dvorak)', 'Danish (Macintosh, no dead keys)': 'DK (Mac Nodeadkeys)', 'Danish (Macintosh)': 'DK (Mac)', 'Danish (no dead keys)': 'DK (Nodeadkeys)', 'Danish (Windows)': 'DK (Winkeys)', Dari: 'AF', 'Dari (Afghanistan, OLPC)': 'AF (Fa-Olpc)', Dhivehi: 'MV', Dutch: 'NL', 'Dutch (Macintosh)': 'NL (Mac)', 'Dutch (standard)': 'NL (Std)', 'Dutch (US)': 'NL (Us)', Dzongkha: 'BT', 'English (Australian)': 'AU', 'English (Cameroon)': 'CM', 'English (Canada)': 'CA (Eng)', 'English (classic Dvorak)': 'US (Dvorak-Classic)', 'English (Colemak-DH ISO)': 'US (Colemak Dh Iso)', 'English (Colemak-DH)': 'US (Colemak Dh)', 'English (Colemak)': 'US (Colemak)', 'English (Dvorak, alt. intl.)': 'US (Dvorak-Alt-Intl)', 'English (Dvorak, intl., with dead keys)': 'US (Dvorak-Intl)', 'English (Dvorak, left-handed)': 'US (Dvorak-L)', 'English (Dvorak, Macintosh)': 'US (Dvorak-Mac)', 'English (Dvorak, right-handed)': 'US (Dvorak-R)', 'English (Dvorak)': 'US (Dvorak)', 'English (Ghana, GILLBT)': 'GH (Gillbt)', 'English (Ghana, multilingual)': 'GH (Generic)', 'English (Ghana)': 'GH', 'English (India, with rupee)': 'IN (Eng)', 'English (intl., with AltGr dead keys)': 'US (Altgr-Intl)', 'English (Macintosh)': 'US (Mac)', 'English (Mali, US, intl.)': 'ML (Us-Intl)', 'English (Mali, US, Macintosh)': 'ML (Us-Mac)', 'English (Nigeria)': 'NG', 'English (Norman)': 'US (Norman)', 'English (programmer Dvorak)': 'US (Dvp)', 'English (South Africa)': 'ZA', 'English (the divide/multiply toggle the layout)': 'US (Olpc2)', 'English (UK, Colemak-DH)': 'GB (Colemak Dh)', 'English (UK, Colemak)': 'GB (Colemak)', 'English (UK, Dvorak, with UK punctuation)': 'GB (Dvorakukp)', 'English (UK, Dvorak)': 'GB (Dvorak)', 'English (UK, extended, Windows)': 'GB (Extd)', 'English (UK, intl., with dead keys)': 'GB (Intl)', 'English (UK, Macintosh, intl.)': 'GB (Mac Intl)', 'English (UK, Macintosh)': 'GB (Mac)', 'English (UK)': 'GB', 'English (US, alt. intl.)': 'US (Alt-Intl)', 'English (US, euro on 5)': 'US (Euro)', 'English (US, intl., with dead keys)': 'US (Intl)', 'English (US, Symbolic)': 'US (Symbolic)', 'English (US)': 'US', 'English (Workman, intl., with dead keys)': 'US (Workman-Intl)', 'English (Workman)': 'US (Workman)', Esperanto: 'EPO', 'Esperanto (Brazil, Nativo)': 'BR (Nativo-Epo)', 'Esperanto (legacy)': 'EPO (Legacy)', 'Esperanto (Portugal, Nativo)': 'PT (Nativo-Epo)', Estonian: 'EE', 'Estonian (Dvorak)': 'EE (Dvorak)', 'Estonian (no dead keys)': 'EE (Nodeadkeys)', 'Estonian (US)': 'EE (Us)', Ewe: 'GH (Ewe)', Faroese: 'FO', 'Faroese (no dead keys)': 'FO (Nodeadkeys)', Filipino: 'PH', 'Filipino (Capewell-Dvorak, Baybayin)': 'PH (Capewell-Dvorak-Bay)', 'Filipino (Capewell-Dvorak, Latin)': 'PH (Capewell-Dvorak)', 'Filipino (Capewell-QWERF 2006, Baybayin)': 'PH (Capewell-Qwerf2k6-Bay)', 'Filipino (Capewell-QWERF 2006, Latin)': 'PH (Capewell-Qwerf2k6)', 'Filipino (Colemak, Baybayin)': 'PH (Colemak-Bay)', 'Filipino (Colemak, Latin)': 'PH (Colemak)', 'Filipino (Dvorak, Baybayin)': 'PH (Dvorak-Bay)', 'Filipino (Dvorak, Latin)': 'PH (Dvorak)', 'Filipino (QWERTY, Baybayin)': 'PH (Qwerty-Bay)', Finnish: 'FI', 'Finnish (classic, no dead keys)': 'FI (Nodeadkeys)', 'Finnish (classic)': 'FI (Classic)', 'Finnish (Macintosh)': 'FI (Mac)', 'Finnish (Windows)': 'FI (Winkeys)', French: 'FR', 'French (alt., Latin-9 only)': 'FR (Oss Latin9)', 'French (alt., no dead keys)': 'FR (Oss Nodeadkeys)', 'French (alt.)': 'FR (Oss)', 'French (AZERTY, AFNOR)': 'FR (Afnor)', 'French (AZERTY)': 'FR (Azerty)', 'French (BEPO, AFNOR)': 'FR (Bepo Afnor)', 'French (BEPO, Latin-9 only)': 'FR (Bepo Latin9)', 'French (BEPO)': 'FR (Bepo)', 'French (Cameroon)': 'CM (French)', 'French (Canada, Dvorak)': 'CA (Fr-Dvorak)', 'French (Canada, legacy)': 'CA (Fr-Legacy)', 'French (Canada)': 'CA', 'French (Democratic Republic of the Congo)': 'CD', 'French (Dvorak)': 'FR (Dvorak)', 'French (legacy, alt., no dead keys)': 'FR (Latin9 Nodeadkeys)', 'French (legacy, alt.)': 'FR (Latin9)', 'French (Macintosh)': 'FR (Mac)', 'French (Mali, alt.)': 'ML (Fr-Oss)', 'French (Morocco)': 'MA (French)', 'French (no dead keys)': 'FR (Nodeadkeys)', 'French (Switzerland, Macintosh)': 'CH (Fr Mac)', 'French (Switzerland, no dead keys)': 'CH (Fr Nodeadkeys)', 'French (Switzerland)': 'CH (Fr)', 'French (Togo)': 'TG', 'French (US)': 'FR (Us)', 'Friulian (Italy)': 'IT (Fur)', Fula: 'GH (Fula)', Ga: 'GH (Ga)', Georgian: 'GE', 'Georgian (ergonomic)': 'GE (Ergonomic)', 'Georgian (France, AZERTY Tskapo)': 'FR (Geo)', 'Georgian (Italy)': 'IT (Geo)', 'Georgian (MESS)': 'GE (Mess)', German: 'DE', 'German (Austria, Macintosh)': 'AT (Mac)', 'German (Austria, no dead keys)': 'AT (Nodeadkeys)', 'German (Austria)': 'AT', 'German (dead acute)': 'DE (Deadacute)', 'German (dead grave acute)': 'DE (Deadgraveacute)', 'German (dead tilde)': 'DE (Deadtilde)', 'German (Dvorak)': 'DE (Dvorak)', 'German (E1)': 'DE (E1)', 'German (E2)': 'DE (E2)', 'German (Macintosh, no dead keys)': 'DE (Mac Nodeadkeys)', 'German (Macintosh)': 'DE (Mac)', 'German (Neo 2)': 'DE (Neo)', 'German (no dead keys)': 'DE (Nodeadkeys)', 'German (QWERTY)': 'DE (Qwerty)', 'German (Switzerland, legacy)': 'CH (Legacy)', 'German (Switzerland, Macintosh)': 'CH (De Mac)', 'German (Switzerland, no dead keys)': 'CH (De Nodeadkeys)', 'German (Switzerland)': 'CH', 'German (T3)': 'DE (T3)', 'German (US)': 'DE (Us)', Greek: 'GR', 'Greek (extended)': 'GR (Extended)', 'Greek (no dead keys)': 'GR (Nodeadkeys)', 'Greek (polytonic)': 'GR (Polytonic)', 'Greek (simple)': 'GR (Simple)', Gujarati: 'IN (Guj)', 'Hanyu Pinyin Letters (with AltGr dead keys)': 'CN (Altgr-Pinyin)', 'Hausa (Ghana)': 'GH (Hausa)', 'Hausa (Nigeria)': 'NG (Hausa)', Hawaiian: 'US (Haw)', Hebrew: 'IL', 'Hebrew (Biblical, Tiro)': 'IL (Biblical)', 'Hebrew (lyx)': 'IL (Lyx)', 'Hebrew (phonetic)': 'IL (Phonetic)', 'Hindi (Bolnagri)': 'IN (Bolnagri)', 'Hindi (KaGaPa, phonetic)': 'IN (Hin-Kagapa)', 'Hindi (Wx)': 'IN (Hin-Wx)', Hungarian: 'HU', 'Hungarian (no dead keys)': 'HU (Nodeadkeys)', 'Hungarian (QWERTY, 101-key, comma, dead keys)': 'HU (101 Qwerty Comma Dead)', 'Hungarian (QWERTY, 101-key, comma, no dead keys)': 'HU (101 Qwerty Comma Nodead)', 'Hungarian (QWERTY, 101-key, dot, dead keys)': 'HU (101 Qwerty Dot Dead)', 'Hungarian (QWERTY, 101-key, dot, no dead keys)': 'HU (101 Qwerty Dot Nodead)', 'Hungarian (QWERTY, 102-key, comma, dead keys)': 'HU (102 Qwerty Comma Dead)', 'Hungarian (QWERTY, 102-key, comma, no dead keys)': 'HU (102 Qwerty Comma Nodead)', 'Hungarian (QWERTY, 102-key, dot, dead keys)': 'HU (102 Qwerty Dot Dead)', 'Hungarian (QWERTY, 102-key, dot, no dead keys)': 'HU (102 Qwerty Dot Nodead)', 'Hungarian (QWERTY)': 'HU (Qwerty)', 'Hungarian (QWERTZ, 101-key, comma, dead keys)': 'HU (101 Qwertz Comma Dead)', 'Hungarian (QWERTZ, 101-key, comma, no dead keys)': 'HU (101 Qwertz Comma Nodead)', 'Hungarian (QWERTZ, 101-key, dot, dead keys)': 'HU (101 Qwertz Dot Dead)', 'Hungarian (QWERTZ, 101-key, dot, no dead keys)': 'HU (101 Qwertz Dot Nodead)', 'Hungarian (QWERTZ, 102-key, comma, dead keys)': 'HU (102 Qwertz Comma Dead)', 'Hungarian (QWERTZ, 102-key, comma, no dead keys)': 'HU (102 Qwertz Comma Nodead)', 'Hungarian (QWERTZ, 102-key, dot, dead keys)': 'HU (102 Qwertz Dot Dead)', 'Hungarian (QWERTZ, 102-key, dot, no dead keys)': 'HU (102 Qwertz Dot Nodead)', 'Hungarian (standard)': 'HU (Standard)', Icelandic: 'IS', 'Icelandic (Dvorak)': 'IS (Dvorak)', 'Icelandic (Macintosh, legacy)': 'IS (Mac Legacy)', 'Icelandic (Macintosh)': 'IS (Mac)', Igbo: 'NG (Igbo)', Indian: 'IN', 'Indic IPA': 'IN (Iipa)', 'Indonesian (Arab Melayu, extended phonetic)': 'ID (Melayu-Phoneticx)', 'Indonesian (Arab Melayu, phonetic)': 'ID (Melayu-Phonetic)', 'Indonesian (Arab Pegon, phonetic)': 'ID (Pegon-Phonetic)', 'Indonesian (Latin)': 'ID', Inuktitut: 'CA (Ike)', Iraqi: 'IQ', Irish: 'IE', 'Irish (UnicodeExpert)': 'IE (UnicodeExpert)', Italian: 'IT', 'Italian (IBM 142)': 'IT (Ibm)', 'Italian (intl., with dead keys)': 'IT (Intl)', 'Italian (Macintosh)': 'IT (Mac)', 'Italian (no dead keys)': 'IT (Nodeadkeys)', 'Italian (US)': 'IT (Us)', 'Italian (Windows)': 'IT (Winkeys)', Japanese: 'JP', 'Japanese (Dvorak)': 'JP (Dvorak)', 'Japanese (Kana 86)': 'JP (Kana86)', 'Japanese (Kana)': 'JP (Kana)', 'Japanese (Macintosh)': 'JP (Mac)', 'Japanese (OADG 109A)': 'JP (OADG109A)', Javanese: 'ID (Javanese)', 'Kabyle (AZERTY, with dead keys)': 'DZ (Azerty-Deadkeys)', 'Kabyle (QWERTY, UK, with dead keys)': 'DZ (Qwerty-Gb-Deadkeys)', 'Kabyle (QWERTY, US, with dead keys)': 'DZ (Qwerty-Us-Deadkeys)', Kalmyk: 'RU (Xal)', Kannada: 'IN (Kan)', 'Kannada (KaGaPa, phonetic)': 'IN (Kan-Kagapa)', Kashubian: 'PL (Csb)', Kazakh: 'KZ', 'Kazakh (extended)': 'KZ (Ext)', 'Kazakh (Latin)': 'KZ (Latin)', 'Kazakh (with Russian)': 'KZ (Kazrus)', 'Khmer (Cambodia)': 'KH', Kikuyu: 'KE (Kik)', Komi: 'RU (Kom)', Korean: 'KR', 'Korean (101/104-key compatible)': 'KR (Kr104)', 'Kurdish (Iran, Arabic-Latin)': 'IR (Ku Ara)', 'Kurdish (Iran, F)': 'IR (Ku F)', 'Kurdish (Iran, Latin Alt-Q)': 'IR (Ku Alt)', 'Kurdish (Iran, Latin Q)': 'IR (Ku)', 'Kurdish (Iraq, Arabic-Latin)': 'IQ (Ku Ara)', 'Kurdish (Iraq, F)': 'IQ (Ku F)', 'Kurdish (Iraq, Latin Alt-Q)': 'IQ (Ku Alt)', 'Kurdish (Iraq, Latin Q)': 'IQ (Ku)', 'Kurdish (Syria, F)': 'SY (Ku F)', 'Kurdish (Syria, Latin Alt-Q)': 'SY (Ku Alt)', 'Kurdish (Syria, Latin Q)': 'SY (Ku)', 'Kurdish (Turkey, F)': 'TR (Ku F)', 'Kurdish (Turkey, Latin Alt-Q)': 'TR (Ku Alt)', 'Kurdish (Turkey, Latin Q)': 'TR (Ku)', Kyrgyz: 'KG', 'Kyrgyz (phonetic)': 'KG (Phonetic)', Lao: 'LA', 'Lao (STEA)': 'LA (Stea)', Latvian: 'LV', 'Latvian (adapted)': 'LV (Adapted)', 'Latvian (apostrophe)': 'LV (Apostrophe)', 'Latvian (ergonomic, ŪGJRMV)': 'LV (Ergonomic)', 'Latvian (F)': 'LV (Fkey)', 'Latvian (modern)': 'LV (Modern)', 'Latvian (tilde)': 'LV (Tilde)', Lithuanian: 'LT', 'Lithuanian (IBM LST 1205-92)': 'LT (Ibm)', 'Lithuanian (LEKP)': 'LT (Lekp)', 'Lithuanian (LEKPa)': 'LT (Lekpa)', 'Lithuanian (Ratise)': 'LT (Ratise)', 'Lithuanian (standard)': 'LT (Std)', 'Lithuanian (US)': 'LT (Us)', 'Lower Sorbian': 'DE (Dsb)', 'Lower Sorbian (QWERTZ)': 'DE (Dsb Qwertz)', Macedonian: 'MK', 'Macedonian (no dead keys)': 'MK (Nodeadkeys)', 'Malay (Jawi, Arabic Keyboard)': 'MY', 'Malay (Jawi, phonetic)': 'MY (Phonetic)', Malayalam: 'IN (Mal)', 'Malayalam (enhanced InScript, with rupee)': 'IN (Mal Enhanced)', 'Malayalam (Lalitha)': 'IN (Mal Lalitha)', Maltese: 'MT', 'Maltese (UK, with AltGr overrides)': 'MT (Alt-Gb)', 'Maltese (US, with AltGr overrides)': 'MT (Alt-Us)', 'Maltese (US)': 'MT (Us)', 'Manipuri (Eeyek)': 'IN (Eeyek)', Maori: 'MAO', 'Marathi (enhanced InScript)': 'IN (Marathi)', 'Marathi (KaGaPa, phonetic)': 'IN (Mar-Kagapa)', Mari: 'RU (Chm)', Mmuock: 'CM (Mmuock)', Moldavian: 'MD', 'Moldavian (Gagauz)': 'MD (Gag)', Mon: 'MM (Mnw)', 'Mon (A1)': 'MM (Mnw-A1)', Mongolian: 'MN', 'Mongolian (Bichig)': 'CN (Mon Trad)', 'Mongolian (Galik)': 'CN (Mon Trad Galik)', 'Mongolian (Manchu Galik)': 'CN (Mon Manchu Galik)', 'Mongolian (Manchu)': 'CN (Mon Trad Manchu)', 'Mongolian (Todo Galik)': 'CN (Mon Todo Galik)', 'Mongolian (Todo)': 'CN (Mon Trad Todo)', 'Mongolian (Xibe)': 'CN (Mon Trad Xibe)', Montenegrin: 'ME', 'Montenegrin (Cyrillic, with guillemets)': 'ME (Cyrillicalternatequotes)', 'Montenegrin (Cyrillic, ZE and ZHE swapped)': 'ME (Cyrillicyz)', 'Montenegrin (Cyrillic)': 'ME (Cyrillic)', 'Montenegrin (Latin, QWERTY)': 'ME (Latinyz)', 'Montenegrin (Latin, Unicode, QWERTY)': 'ME (Latinunicodeyz)', 'Montenegrin (Latin, Unicode)': 'ME (Latinunicode)', 'Montenegrin (Latin, with guillemets)': 'ME (Latinalternatequotes)', "N'Ko (AZERTY)": 'GN', Nepali: 'NP', 'Northern Saami (Finland)': 'FI (Smi)', 'Northern Saami (Norway, no dead keys)': 'NO (Smi Nodeadkeys)', 'Northern Saami (Norway)': 'NO (Smi)', 'Northern Saami (Sweden)': 'SE (Smi)', Norwegian: 'NO', 'Norwegian (Colemak)': 'NO (Colemak)', 'Norwegian (Dvorak)': 'NO (Dvorak)', 'Norwegian (Macintosh, no dead keys)': 'NO (Mac Nodeadkeys)', 'Norwegian (Macintosh)': 'NO (Mac)', 'Norwegian (no dead keys)': 'NO (Nodeadkeys)', 'Norwegian (Windows)': 'NO (Winkeys)', Occitan: 'FR (Oci)', Ogham: 'IE (Ogam)', 'Ogham (IS434)': 'IE (Ogam Is434)', 'Ol Chiki': 'IN (Olck)', 'Old Turkic': 'TR (Otk)', 'Old Turkic (F)': 'TR (Otkf)', Oriya: 'IN (Ori)', 'Oriya (Bolnagri)': 'IN (Ori-Bolnagri)', 'Oriya (Wx)': 'IN (Ori-Wx)', 'Ossetian (Georgia)': 'GE (Os)', 'Ossetian (legacy)': 'RU (Os Legacy)', 'Ossetian (Windows)': 'RU (Os Winkeys)', 'Ottoman (F)': 'TR (Otf)', 'Ottoman (Q)': 'TR (Ot)', 'Pannonian Rusyn': 'RS (Rue)', Pashto: 'AF (Ps)', 'Pashto (Afghanistan, OLPC)': 'AF (Ps-Olpc)', Persian: 'IR', 'Persian (with Persian keypad)': 'IR (Pes Keypad)', Polish: 'PL', 'Polish (British keyboard)': 'GB (Pl)', 'Polish (Dvorak, with Polish quotes on key 1)': 'PL (Dvorak Altquotes)', 'Polish (Dvorak, with Polish quotes on quotemark key)': 'PL (Dvorak Quotes)', 'Polish (Dvorak)': 'PL (Dvorak)', 'Polish (legacy)': 'PL (Legacy)', 'Polish (programmer Dvorak)': 'PL (Dvp)', 'Polish (QWERTZ)': 'PL (Qwertz)', Portuguese: 'PT', 'Portuguese (Brazil, Dvorak)': 'BR (Dvorak)', 'Portuguese (Brazil, IBM/Lenovo ThinkPad)': 'BR (Thinkpad)', 'Portuguese (Brazil, Nativo for US keyboards)': 'BR (Nativo-Us)', 'Portuguese (Brazil, Nativo)': 'BR (Nativo)', 'Portuguese (Brazil, no dead keys)': 'BR (Nodeadkeys)', 'Portuguese (Brazil)': 'BR', 'Portuguese (Macintosh, no dead keys)': 'PT (Mac Nodeadkeys)', 'Portuguese (Macintosh)': 'PT (Mac)', 'Portuguese (Nativo for US keyboards)': 'PT (Nativo-Us)', 'Portuguese (Nativo)': 'PT (Nativo)', 'Portuguese (no dead keys)': 'PT (Nodeadkeys)', 'Punjabi (Gurmukhi Jhelum)': 'IN (Jhelum)', 'Punjabi (Gurmukhi)': 'IN (Guru)', Romanian: 'RO', 'Romanian (Germany, no dead keys)': 'DE (Ro Nodeadkeys)', 'Romanian (Germany)': 'DE (Ro)', 'Romanian (standard)': 'RO (Std)', 'Romanian (Windows)': 'RO (Winkeys)', Russian: 'RU', 'Russian (Belarus)': 'BY (Ru)', 'Russian (Czech, phonetic)': 'CZ (Rus)', 'Russian (DOS)': 'RU (Dos)', 'Russian (engineering, EN)': 'RU (Ruchey En)', 'Russian (engineering, RU)': 'RU (Ruchey Ru)', 'Russian (Georgia)': 'GE (Ru)', 'Russian (Germany, phonetic)': 'DE (Ru)', 'Russian (Kazakhstan, with Kazakh)': 'KZ (Ruskaz)', 'Russian (legacy)': 'RU (Legacy)', 'Russian (Macintosh)': 'RU (Mac)', 'Russian (phonetic, AZERTY)': 'RU (Phonetic Azerty)', 'Russian (phonetic, Dvorak)': 'RU (Phonetic Dvorak)', 'Russian (phonetic, French)': 'RU (Phonetic Fr)', 'Russian (phonetic, Windows)': 'RU (Phonetic Winkeys)', 'Russian (phonetic, YAZHERTY)': 'RU (Phonetic YAZHERTY)', 'Russian (phonetic)': 'RU (Phonetic)', 'Russian (Poland, phonetic Dvorak)': 'PL (Ru Phonetic Dvorak)', 'Russian (Sweden, phonetic, no dead keys)': 'SE (Rus Nodeadkeys)', 'Russian (Sweden, phonetic)': 'SE (Rus)', 'Russian (typewriter, legacy)': 'RU (Typewriter-Legacy)', 'Russian (typewriter)': 'RU (Typewriter)', 'Russian (Ukraine, standard RSTU)': 'UA (Rstu Ru)', 'Russian (US, phonetic)': 'US (Rus)', 'Saisiyat (Taiwan)': 'TW (Saisiyat)', Samogitian: 'LT (Sgs)', 'Sanskrit (KaGaPa, phonetic)': 'IN (San-Kagapa)', 'Scottish Gaelic': 'GB (Gla)', Serbian: 'RS', 'Serbian (Cyrillic, with guillemets)': 'RS (Alternatequotes)', 'Serbian (Cyrillic, ZE and ZHE swapped)': 'RS (Yz)', 'Serbian (Latin, QWERTY)': 'RS (Latinyz)', 'Serbian (Latin, Unicode, QWERTY)': 'RS (Latinunicodeyz)', 'Serbian (Latin, Unicode)': 'RS (Latinunicode)', 'Serbian (Latin, with guillemets)': 'RS (Latinalternatequotes)', 'Serbian (Latin)': 'RS (Latin)', 'Serbian (Russia)': 'RU (Srp)', 'Serbo-Croatian (US)': 'US (Hbs)', Shan: 'MM (Shn)', 'Shan (Zawgyi Tai)': 'MM (Zgt)', Sicilian: 'IT (Scn)', Silesian: 'PL (Szl)', Sindhi: 'PK (Snd)', 'Sinhala (phonetic)': 'LK', 'Sinhala (US)': 'LK (Us)', Slovak: 'SK', 'Slovak (extended backslash)': 'SK (Bksl)', 'Slovak (QWERTY, extended backslash)': 'SK (Qwerty Bksl)', 'Slovak (QWERTY)': 'SK (Qwerty)', Slovenian: 'SI', 'Slovenian (US)': 'SI (Us)', 'Slovenian (with guillemets)': 'SI (Alternatequotes)', Spanish: 'ES', 'Spanish (dead tilde)': 'ES (Deadtilde)', 'Spanish (Dvorak)': 'ES (Dvorak)', 'Spanish (Latin American, Colemak)': 'LATAM (Colemak)', 'Spanish (Latin American, dead tilde)': 'LATAM (Deadtilde)', 'Spanish (Latin American, Dvorak)': 'LATAM (Dvorak)', 'Spanish (Latin American, no dead keys)': 'LATAM (Nodeadkeys)', 'Spanish (Latin American)': 'LATAM', 'Spanish (Macintosh)': 'ES (Mac)', 'Spanish (no dead keys)': 'ES (Nodeadkeys)', 'Spanish (Windows)': 'ES (Winkeys)', 'Swahili (Kenya)': 'KE', 'Swahili (Tanzania)': 'TZ', Swedish: 'SE', 'Swedish (Dvorak, intl.)': 'SE (Us Dvorak)', 'Swedish (Dvorak)': 'SE (Dvorak)', 'Swedish (Macintosh)': 'SE (Mac)', 'Swedish (no dead keys)': 'SE (Nodeadkeys)', 'Swedish (Svdvorak)': 'SE (Svdvorak)', 'Swedish (US)': 'SE (Us)', 'Swedish Sign Language': 'SE (Swl)', Syriac: 'SY (Syc)', 'Syriac (phonetic)': 'SY (Syc Phonetic)', Taiwanese: 'TW', 'Taiwanese (indigenous)': 'TW (Indigenous)', Tajik: 'TJ', 'Tajik (legacy)': 'TJ (Legacy)', 'Tamil (InScript, with Arabic numerals)': 'IN (Tam)', 'Tamil (InScript, with Tamil numerals)': 'IN (Tam Tamilnumbers)', "Tamil (Sri Lanka, TamilNet '99, TAB encoding)": 'LK (Tam TAB)', "Tamil (Sri Lanka, TamilNet '99)": 'LK (Tam Unicode)', "Tamil (TamilNet '99 with Tamil numerals)": 'IN (Tamilnet Tamilnumbers)', "Tamil (TamilNet '99, TAB encoding)": 'IN (Tamilnet TAB)', "Tamil (TamilNet '99, TSCII encoding)": 'IN (Tamilnet TSCII)', "Tamil (TamilNet '99)": 'IN (Tamilnet)', Tarifit: 'MA (Rif)', Tatar: 'RU (Tt)', Telugu: 'IN (Tel)', 'Telugu (KaGaPa, phonetic)': 'IN (Tel-Kagapa)', 'Telugu (Sarala)': 'IN (Tel-Sarala)', Thai: 'TH', 'Thai (Pattachote)': 'TH (Pat)', 'Thai (TIS-820.2538)': 'TH (Tis)', Tibetan: 'CN (Tib)', 'Tibetan (with ASCII numerals)': 'CN (Tib Asciinum)', Tswana: 'BW', Turkish: 'TR', 'Turkish (Alt-Q)': 'TR (Alt)', 'Turkish (E)': 'TR (E)', 'Turkish (F)': 'TR (F)', 'Turkish (Germany)': 'DE (Tr)', 'Turkish (intl., with dead keys)': 'TR (Intl)', Turkmen: 'TM', 'Turkmen (Alt-Q)': 'TM (Alt)', Udmurt: 'RU (Udm)', Ukrainian: 'UA', 'Ukrainian (homophonic)': 'UA (Homophonic)', 'Ukrainian (legacy)': 'UA (Legacy)', 'Ukrainian (macOS)': 'UA (MacOS)', 'Ukrainian (phonetic)': 'UA (Phonetic)', 'Ukrainian (standard RSTU)': 'UA (Rstu)', 'Ukrainian (typewriter)': 'UA (Typewriter)', 'Ukrainian (Windows)': 'UA (Winkeys)', 'Urdu (alt. phonetic)': 'IN (Urd-Phonetic3)', 'Urdu (Pakistan, CRULP)': 'PK (Urd-Crulp)', 'Urdu (Pakistan, NLA)': 'PK (Urd-Nla)', 'Urdu (Pakistan)': 'PK', 'Urdu (phonetic)': 'IN (Urd-Phonetic)', 'Urdu (Windows)': 'IN (Urd-Winkeys)', Uyghur: 'CN (Ug)', Uzbek: 'UZ', 'Uzbek (Afghanistan, OLPC)': 'AF (Uz-Olpc)', 'Uzbek (Afghanistan)': 'AF (Uz)', 'Uzbek (Latin)': 'UZ (Latin)', Vietnamese: 'VN', 'Vietnamese (France)': 'VN (Fr)', 'Vietnamese (US)': 'VN (Us)', Wolof: 'SN', Yakut: 'RU (Sah)', Yoruba: 'NG (Yoruba)', 'Unknown Layout': 'Unknown', } as const; ================================================ FILE: .config/ags/customModules/module.ts ================================================ import { BarBoxChild, Module } from 'lib/types/bar'; import { BarButtonStyles } from 'lib/types/options'; import { Bind } from 'lib/types/variable'; import { GtkWidget } from 'lib/types/widget'; import options from 'options'; import Gtk from 'types/@girs/gtk-3.0/gtk-3.0'; const { style } = options.theme.bar.buttons; const undefinedVar = Variable(undefined); export const module = ({ icon, textIcon, label, tooltipText, boxClass, props = {}, showLabelBinding = undefinedVar.bind('value'), showLabel, labelHook, hook, }: Module): BarBoxChild => { const getIconWidget = (): GtkWidget | undefined => { let iconWidget: Gtk.Widget | undefined; if (icon !== undefined) { iconWidget = Widget.Icon({ class_name: `txt-icon bar-button-icon module-icon ${boxClass}`, icon: icon, }) as unknown as Gtk.Widget; } else if (textIcon !== undefined) { iconWidget = Widget.Label({ class_name: `txt-icon bar-button-icon module-icon ${boxClass}`, label: textIcon, }) as unknown as Gtk.Widget; } return iconWidget; }; return { component: Widget.Box({ className: Utils.merge( [style.bind('value'), showLabelBinding], (style: BarButtonStyles, shwLabel: boolean) => { const shouldShowLabel = shwLabel || showLabel; const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `${boxClass} ${styleMap[style]} ${!shouldShowLabel ? 'no-label' : ''}`; }, ), tooltip_text: tooltipText, children: Utils.merge([showLabelBinding], (showLabelBinding): Gtk.Widget[] => { const childrenArray: Gtk.Widget[] = []; const iconWidget = getIconWidget(); if (iconWidget !== undefined) { childrenArray.push(iconWidget); } if (showLabelBinding) { childrenArray.push( Widget.Label({ class_name: `bar-button-label module-label ${boxClass}`, label: label, setup: labelHook, }) as unknown as Gtk.Widget, ); } return childrenArray; }) as Bind, setup: hook, }), tooltip_text: tooltipText, isVisible: true, boxClass, props, }; }; ================================================ FILE: .config/ags/customModules/netstat/computeNetwork.ts ================================================ import GLib from 'gi://GLib'; import { Variable as VariableType } from 'types/variable'; import { NetworkResourceData } from 'lib/types/customModules/network'; import { GET_DEFAULT_NETSTAT_DATA } from 'lib/types/defaults/netstat'; import { RateUnit } from 'lib/types/bar'; let previousNetUsage = { rx: 0, tx: 0, time: 0 }; const formatRate = (rate: number, type: string, round: boolean): string => { const fixed = round ? 0 : 2; switch (true) { case type === 'KiB': return `${(rate / 1e3).toFixed(fixed)} KiB/s`; case type === 'MiB': return `${(rate / 1e6).toFixed(fixed)} MiB/s`; case type === 'GiB': return `${(rate / 1e9).toFixed(fixed)} GiB/s`; case rate >= 1e9: return `${(rate / 1e9).toFixed(fixed)} GiB/s`; case rate >= 1e6: return `${(rate / 1e6).toFixed(fixed)} MiB/s`; case rate >= 1e3: return `${(rate / 1e3).toFixed(fixed)} KiB/s`; default: return `${rate.toFixed(fixed)} bytes/s`; } }; interface NetworkUsage { name: string; rx: number; tx: number; } const parseInterfaceData = (line: string): NetworkUsage | null => { const trimmedLine = line.trim(); if (!trimmedLine || trimmedLine.startsWith('Inter-') || trimmedLine.startsWith('face')) { return null; } const [iface, rx, , , , , , , , tx] = trimmedLine.split(/\s+/); const rxValue = parseInt(rx, 10); const txValue = parseInt(tx, 10); const cleanedIface = iface.replace(':', ''); return { name: cleanedIface, rx: rxValue, tx: txValue }; }; const isValidInterface = (iface: NetworkUsage | null, interfaceName: string): boolean => { if (!iface) return false; if (interfaceName) return iface.name === interfaceName; return iface.name !== 'lo' && iface.rx > 0 && iface.tx > 0; }; const getNetworkUsage = (interfaceName: string = ''): NetworkUsage => { const [success, data] = GLib.file_get_contents('/proc/net/dev'); if (!success) { console.error('Failed to read /proc/net/dev'); return { name: '', rx: 0, tx: 0 }; } const lines = new TextDecoder('utf-8').decode(data).split('\n'); for (const line of lines) { const iface = parseInterfaceData(line); if (isValidInterface(iface, interfaceName)) { return iface!; } } return { name: '', rx: 0, tx: 0 }; }; export const computeNetwork = ( round: VariableType, interfaceNameVar: VariableType, dataType: VariableType, ): NetworkResourceData => { const rateUnit = dataType.value; const interfaceName = interfaceNameVar ? interfaceNameVar.value : ''; const DEFAULT_NETSTAT_DATA = GET_DEFAULT_NETSTAT_DATA(rateUnit); try { const { rx, tx, name } = getNetworkUsage(interfaceName); const currentTime = Date.now(); if (!name) { return DEFAULT_NETSTAT_DATA; } if (previousNetUsage.time === 0) { previousNetUsage = { rx, tx, time: currentTime }; return DEFAULT_NETSTAT_DATA; } const timeDiff = Math.max((currentTime - previousNetUsage.time) / 1000, 1); const rxRate = (rx - previousNetUsage.rx) / timeDiff; const txRate = (tx - previousNetUsage.tx) / timeDiff; previousNetUsage = { rx, tx, time: currentTime }; return { in: formatRate(rxRate, rateUnit, round.value), out: formatRate(txRate, rateUnit, round.value), }; } catch (error) { console.error('Error calculating network usage:', error); return DEFAULT_NETSTAT_DATA; } }; ================================================ FILE: .config/ags/customModules/netstat/index.ts ================================================ import options from 'options'; import { module } from '../module'; import { inputHandler } from 'customModules/utils'; import { computeNetwork } from './computeNetwork'; import { BarBoxChild, NetstatLabelType } from 'lib/types/bar'; import Button from 'types/widgets/button'; import { NetworkResourceData } from 'lib/types/customModules/network'; import { NETWORK_LABEL_TYPES } from 'lib/types/defaults/bar'; import { GET_DEFAULT_NETSTAT_DATA } from 'lib/types/defaults/netstat'; import { pollVariable } from 'customModules/PollVar'; import { Attribute, Child } from 'lib/types/widget'; const { label, labelType, networkInterface, rateUnit, icon, round, leftClick, rightClick, middleClick, pollingInterval, } = options.bar.customModules.netstat; export const networkUsage = Variable(GET_DEFAULT_NETSTAT_DATA(rateUnit.value)); pollVariable( // Variable to poll and update with the result of the function passed in networkUsage, // Variables that should trigger the polling function to update when they change [rateUnit.bind('value'), networkInterface.bind('value'), round.bind('value')], // Interval at which to poll pollingInterval.bind('value'), // Function to execute to get the network data computeNetwork, // Optional parameters to pass to the function // round is a boolean that determines whether to round the values round, // Optional parameters to pass to the function // networkInterface is the interface name to filter the data networkInterface, // Optional parameters to pass to the function // rateUnit is the unit to display the data in // e.g. KiB, MiB, GiB, etc. rateUnit, ); export const Netstat = (): BarBoxChild => { const renderNetworkLabel = (lblType: NetstatLabelType, network: NetworkResourceData): string => { switch (lblType) { case 'in': return `↓ ${network.in}`; case 'out': return `↑ ${network.out}`; default: return `↓ ${network.in} ↑ ${network.out}`; } }; const netstatModule = module({ textIcon: icon.bind('value'), label: Utils.merge( [networkUsage.bind('value'), labelType.bind('value')], (network: NetworkResourceData, lblTyp: NetstatLabelType) => renderNetworkLabel(lblTyp, network), ), tooltipText: labelType.bind('value').as((lblTyp) => { return lblTyp === 'full' ? 'Ingress / Egress' : lblTyp === 'in' ? 'Ingress' : 'Egress'; }), boxClass: 'netstat', showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { fn: () => { labelType.value = NETWORK_LABEL_TYPES[ (NETWORK_LABEL_TYPES.indexOf(labelType.value) + 1) % NETWORK_LABEL_TYPES.length ] as NetstatLabelType; }, }, onScrollDown: { fn: () => { labelType.value = NETWORK_LABEL_TYPES[ (NETWORK_LABEL_TYPES.indexOf(labelType.value) - 1 + NETWORK_LABEL_TYPES.length) % NETWORK_LABEL_TYPES.length ] as NetstatLabelType; }, }, }); }, }, }); return netstatModule; }; ================================================ FILE: .config/ags/customModules/power/index.ts ================================================ import options from 'options'; import { module } from '../module'; import { inputHandler } from 'customModules/utils'; import Button from 'types/widgets/button'; import { Attribute, Child } from 'lib/types/widget'; import { BarBoxChild } from 'lib/types/bar'; const { icon, leftClick, rightClick, middleClick, scrollUp, scrollDown } = options.bar.customModules.power; export const Power = (): BarBoxChild => { const powerModule = module({ tooltipText: 'Power Menu', textIcon: icon.bind('value'), boxClass: 'powermodule', props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { cmd: scrollUp, }, onScrollDown: { cmd: scrollDown, }, }); }, }, }); return powerModule; }; ================================================ FILE: .config/ags/customModules/ram/computeRam.ts ================================================ const GLib = imports.gi.GLib; import { divide } from 'customModules/utils'; import { GenericResourceData } from 'lib/types/customModules/generic'; import { Variable as VariableType } from 'types/variable'; // FIX: Consolidate with Ram service class export const calculateRamUsage = (round: VariableType): GenericResourceData => { try { const [success, meminfoBytes] = GLib.file_get_contents('/proc/meminfo'); if (!success || !meminfoBytes) { throw new Error('Failed to read /proc/meminfo or file content is null.'); } const meminfo = new TextDecoder('utf-8').decode(meminfoBytes); const totalMatch = meminfo.match(/MemTotal:\s+(\d+)/); const availableMatch = meminfo.match(/MemAvailable:\s+(\d+)/); if (!totalMatch || !availableMatch) { throw new Error('Failed to parse /proc/meminfo for memory values.'); } const totalRamInBytes = parseInt(totalMatch[1], 10) * 1024; const availableRamInBytes = parseInt(availableMatch[1], 10) * 1024; let usedRam = totalRamInBytes - availableRamInBytes; usedRam = isNaN(usedRam) || usedRam < 0 ? 0 : usedRam; return { percentage: divide([totalRamInBytes, usedRam], round.value), total: totalRamInBytes, used: usedRam, free: availableRamInBytes, }; } catch (error) { console.error('Error calculating RAM usage:', error); return { total: 0, used: 0, percentage: 0, free: 0 }; } }; ================================================ FILE: .config/ags/customModules/ram/index.ts ================================================ import options from 'options'; // Module initializer import { module } from '../module'; // Types import { GenericResourceData } from 'lib/types/customModules/generic'; import Button from 'types/widgets/button'; // Helper Methods import { calculateRamUsage } from './computeRam'; // Utility Methods import { formatTooltip, inputHandler, renderResourceLabel } from 'customModules/utils'; import { BarBoxChild, ResourceLabelType } from 'lib/types/bar'; // Global Constants import { LABEL_TYPES } from 'lib/types/defaults/bar'; import { pollVariable } from 'customModules/PollVar'; import { Attribute, Child } from 'lib/types/widget'; // All the user configurable options for the ram module that are needed const { label, labelType, round, leftClick, rightClick, middleClick, pollingInterval, icon } = options.bar.customModules.ram; const defaultRamData: GenericResourceData = { total: 0, used: 0, percentage: 0, free: 0 }; const ramUsage = Variable(defaultRamData); pollVariable(ramUsage, [round.bind('value')], pollingInterval.bind('value'), calculateRamUsage, round); export const Ram = (): BarBoxChild => { const ramModule = module({ textIcon: icon.bind('value'), label: Utils.merge( [ramUsage.bind('value'), labelType.bind('value'), round.bind('value')], (rmUsg: GenericResourceData, lblTyp: ResourceLabelType, round: boolean) => { const returnValue = renderResourceLabel(lblTyp, rmUsg, round); return returnValue; }, ), tooltipText: labelType.bind('value').as((lblTyp) => { return formatTooltip('RAM', lblTyp); }), boxClass: 'ram', showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { fn: () => { labelType.value = LABEL_TYPES[ (LABEL_TYPES.indexOf(labelType.value) + 1) % LABEL_TYPES.length ] as ResourceLabelType; }, }, onScrollDown: { fn: () => { labelType.value = LABEL_TYPES[ (LABEL_TYPES.indexOf(labelType.value) - 1 + LABEL_TYPES.length) % LABEL_TYPES.length ] as ResourceLabelType; }, }, }); }, }, }); return ramModule; }; ================================================ FILE: .config/ags/customModules/storage/computeStorage.ts ================================================ // @ts-expect-error is a special directive that tells the compiler to use the GTop library import GTop from 'gi://GTop'; import { divide } from 'customModules/utils'; import { Variable as VariableType } from 'types/variable'; import { GenericResourceData } from 'lib/types/customModules/generic'; // FIX: Consolidate with Storage service class export const computeStorage = (round: VariableType): GenericResourceData => { try { const currentFsUsage = new GTop.glibtop_fsusage(); GTop.glibtop_get_fsusage(currentFsUsage, '/'); const total = currentFsUsage.blocks * currentFsUsage.block_size; const available = currentFsUsage.bavail * currentFsUsage.block_size; const used = total - available; return { total, used, free: available, percentage: divide([total, used], round.value), }; } catch (error) { console.error('Error calculating RAM usage:', error); return { total: 0, used: 0, percentage: 0, free: 0 }; } }; ================================================ FILE: .config/ags/customModules/storage/index.ts ================================================ import options from 'options'; import { module } from '../module'; import { formatTooltip, inputHandler, renderResourceLabel } from 'customModules/utils'; import { computeStorage } from './computeStorage'; import { BarBoxChild, ResourceLabelType } from 'lib/types/bar'; import { GenericResourceData } from 'lib/types/customModules/generic'; import Button from 'types/widgets/button'; import { LABEL_TYPES } from 'lib/types/defaults/bar'; import { pollVariable } from 'customModules/PollVar'; import { Attribute, Child } from 'lib/types/widget'; const { label, labelType, icon, round, leftClick, rightClick, middleClick, pollingInterval } = options.bar.customModules.storage; const defaultStorageData = { total: 0, used: 0, percentage: 0, free: 0 }; const storageUsage = Variable(defaultStorageData); pollVariable(storageUsage, [round.bind('value')], pollingInterval.bind('value'), computeStorage, round); export const Storage = (): BarBoxChild => { const storageModule = module({ textIcon: icon.bind('value'), label: Utils.merge( [storageUsage.bind('value'), labelType.bind('value'), round.bind('value')], (storage: GenericResourceData, lblTyp: ResourceLabelType, round: boolean) => { return renderResourceLabel(lblTyp, storage, round); }, ), tooltipText: labelType.bind('value').as((lblTyp) => { return formatTooltip('Storage', lblTyp); }), boxClass: 'storage', showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { fn: () => { labelType.value = LABEL_TYPES[ (LABEL_TYPES.indexOf(labelType.value) + 1) % LABEL_TYPES.length ] as ResourceLabelType; }, }, onScrollDown: { fn: () => { labelType.value = LABEL_TYPES[ (LABEL_TYPES.indexOf(labelType.value) - 1 + LABEL_TYPES.length) % LABEL_TYPES.length ] as ResourceLabelType; }, }, }); }, }, }); return storageModule; }; ================================================ FILE: .config/ags/customModules/submap/helpers.ts ================================================ import { Variable } from 'types/variable'; const hyprland = await Service.import('hyprland'); export const isSubmapEnabled = (submap: string, enabled: string, disabled: string): string => { return submap !== 'default' ? enabled : disabled; }; export const getInitialSubmap = (submapStatus: Variable): void => { let submap = hyprland.message('submap'); const newLineCarriage = /\n/g; submap = submap.replace(newLineCarriage, ''); if (submap === 'unknown request') { submap = 'default'; } submapStatus.value = submap; }; ================================================ FILE: .config/ags/customModules/submap/index.ts ================================================ const hyprland = await Service.import('hyprland'); import options from 'options'; import { module } from '../module'; import { inputHandler } from 'customModules/utils'; import Button from 'types/widgets/button'; import { Variable as VariableType } from 'types/variable'; import { Attribute, Child } from 'lib/types/widget'; import { BarBoxChild } from 'lib/types/bar'; import { capitalizeFirstLetter } from 'lib/utils'; import { getInitialSubmap, isSubmapEnabled } from './helpers'; const { label, showSubmapName, enabledIcon, disabledIcon, enabledText, disabledText, leftClick, rightClick, middleClick, scrollUp, scrollDown, } = options.bar.customModules.submap; const submapStatus: VariableType = Variable('default'); hyprland.connect('submap', (_, currentSubmap) => { if (currentSubmap.length === 0) { submapStatus.value = 'default'; } else { submapStatus.value = currentSubmap; } }); getInitialSubmap(submapStatus); export const Submap = (): BarBoxChild => { const submapModule = module({ textIcon: Utils.merge( [submapStatus.bind('value'), enabledIcon.bind('value'), disabledIcon.bind('value')], (status, enabled, disabled) => { return isSubmapEnabled(status, enabled, disabled); }, ), tooltipText: Utils.merge( [ submapStatus.bind('value'), enabledText.bind('value'), disabledText.bind('value'), showSubmapName.bind('value'), ], (status, enabled, disabled, showSmName) => { if (showSmName) { return capitalizeFirstLetter(status); } return isSubmapEnabled(status, enabled, disabled); }, ), boxClass: 'submap', label: Utils.merge( [ submapStatus.bind('value'), enabledText.bind('value'), disabledText.bind('value'), showSubmapName.bind('value'), ], (status, enabled, disabled, showSmName) => { if (showSmName) { return capitalizeFirstLetter(status); } return isSubmapEnabled(status, enabled, disabled); }, ), showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { cmd: scrollUp, }, onScrollDown: { cmd: scrollDown, }, }); }, }, }); return submapModule; }; ================================================ FILE: .config/ags/customModules/theme.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, GtkWidget } from 'lib/types/widget'; export const CustomModuleTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page customModules paged-container', child: Widget.Box({ class_name: 'bar-theme-page paged-container', vertical: true, children: [ Header('RAM'), Option({ opt: options.theme.bar.buttons.modules.ram.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.ram.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.ram.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.ram.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.ram.border, title: 'Border', type: 'color' }), Header('CPU'), Option({ opt: options.theme.bar.buttons.modules.cpu.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.cpu.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.cpu.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.cpu.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.cpu.border, title: 'Border', type: 'color' }), Header('Storage'), Option({ opt: options.theme.bar.buttons.modules.storage.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.storage.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.storage.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.storage.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.storage.border, title: 'Border', type: 'color' }), Header('Netstat'), Option({ opt: options.theme.bar.buttons.modules.netstat.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.netstat.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.netstat.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.netstat.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.netstat.border, title: 'Border', type: 'color' }), Header('Keyboard Layout'), Option({ opt: options.theme.bar.buttons.modules.kbLayout.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.kbLayout.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.kbLayout.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.kbLayout.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.kbLayout.border, title: 'Border', type: 'color' }), Header('Updates'), Option({ opt: options.theme.bar.buttons.modules.updates.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.updates.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.updates.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.updates.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.updates.border, title: 'Border', type: 'color' }), Header('Submap'), Option({ opt: options.theme.bar.buttons.modules.submap.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.submap.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.submap.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.submap.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.submap.border, title: 'Border', type: 'color' }), Header('Weather'), Option({ opt: options.theme.bar.buttons.modules.weather.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.weather.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.weather.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.weather.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.weather.border, title: 'Border', type: 'color' }), Header('Power'), Option({ opt: options.theme.bar.buttons.modules.power.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.modules.power.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.power.icon_background, title: 'Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.modules.power.border, title: 'Border', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/customModules/updates/index.ts ================================================ import options from 'options'; import { module } from '../module'; import { inputHandler } from 'customModules/utils'; import Button from 'types/widgets/button'; import { Variable as VariableType } from 'types/variable'; import { pollVariableBash } from 'customModules/PollVar'; import { Attribute, Child } from 'lib/types/widget'; import { BarBoxChild } from 'lib/types/bar'; const { updateCommand, label, padZero, pollingInterval, icon, leftClick, rightClick, middleClick, scrollUp, scrollDown, } = options.bar.customModules.updates; const pendingUpdates: VariableType = Variable(' 0'); const processUpdateCount = (updateCount: string): string => { if (!padZero.value) return updateCount; return `${updateCount.padStart(2, '0')}`; }; pollVariableBash( pendingUpdates, [padZero.bind('value')], pollingInterval.bind('value'), updateCommand.value, processUpdateCount, ); export const Updates = (): BarBoxChild => { const updatesModule = module({ textIcon: icon.bind('value'), tooltipText: pendingUpdates.bind('value').as((v) => `${v} updates available`), boxClass: 'updates', label: pendingUpdates.bind('value'), showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { cmd: scrollUp, }, onScrollDown: { cmd: scrollDown, }, }); }, }, }); return updatesModule; }; ================================================ FILE: .config/ags/customModules/utils.ts ================================================ import { ResourceLabelType } from 'lib/types/bar'; import { GenericResourceData, Postfix } from 'lib/types/customModules/generic'; import { InputHandlerEvents, RunAsyncCommand } from 'lib/types/customModules/utils'; import { ThrottleFn, ThrottleFnCallback } from 'lib/types/utils'; import { Attribute, Child, EventArgs } from 'lib/types/widget'; import { Binding } from 'lib/utils'; import { openMenu } from 'modules/bar/utils'; import options from 'options'; import Gdk from 'types/@girs/gdk-3.0/gdk-3.0'; import { Variable as VariableType } from 'types/variable'; import Button from 'types/widgets/button'; const { scrollSpeed } = options.bar.customModules; export const runAsyncCommand: RunAsyncCommand = (cmd, events, fn): void => { if (cmd.startsWith('menu:')) { const menuName = cmd.split(':')[1].trim().toLowerCase(); openMenu(events.clicked, events.event, `${menuName}menu`); return; } Utils.execAsync(`bash -c "${cmd}"`) .then((output) => { if (fn !== undefined) { fn(output); } }) .catch((err) => console.error(`Error running command "${cmd}": ${err})`)); }; export function throttle(func: T, limit: number): T { let inThrottle: boolean; return function (this: ThisParameterType, ...args: Parameters) { if (!inThrottle) { func.apply(this, args); inThrottle = true; setTimeout(() => { inThrottle = false; }, limit); } } as T; } export const throttledScrollHandler = (interval: number): ThrottleFn => throttle((cmd: string, events: EventArgs, fn: ThrottleFnCallback) => { runAsyncCommand(cmd, events, fn); }, 200 / interval); const dummyVar = Variable(''); export const inputHandler = ( self: Button, { onPrimaryClick, onSecondaryClick, onMiddleClick, onScrollUp, onScrollDown }: InputHandlerEvents, ): void => { const sanitizeInput = (input: VariableType): string => { if (input === undefined) { return ''; } return input.value; }; const updateHandlers = (): void => { const interval = scrollSpeed.value; const throttledHandler = throttledScrollHandler(interval); self.on_primary_click = (clicked: Button, event: Gdk.Event): void => runAsyncCommand(sanitizeInput(onPrimaryClick?.cmd || dummyVar), { clicked, event }, onPrimaryClick.fn); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => runAsyncCommand(sanitizeInput(onSecondaryClick?.cmd || dummyVar), { clicked, event }, onSecondaryClick.fn); self.on_middle_click = (clicked: Button, event: Gdk.Event): void => runAsyncCommand(sanitizeInput(onMiddleClick?.cmd || dummyVar), { clicked, event }, onMiddleClick.fn); self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => throttledHandler(sanitizeInput(onScrollUp?.cmd || dummyVar), { clicked, event }, onScrollUp.fn); self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => throttledHandler(sanitizeInput(onScrollDown?.cmd || dummyVar), { clicked, event }, onScrollDown.fn); }; // Initial setup of event handlers updateHandlers(); const sanitizeVariable = (someVar: VariableType | undefined): Binding => { if (someVar === undefined || typeof someVar.bind !== 'function') { return dummyVar.bind('value'); } return someVar.bind('value'); }; // Re-run the update whenever scrollSpeed changes Utils.merge( [ scrollSpeed.bind('value'), sanitizeVariable(onPrimaryClick), sanitizeVariable(onSecondaryClick), sanitizeVariable(onMiddleClick), sanitizeVariable(onScrollUp), sanitizeVariable(onScrollDown), ], updateHandlers, ); }; export const divide = ([total, used]: number[], round: boolean): number => { const percentageTotal = (used / total) * 100; if (round) { return total > 0 ? Math.round(percentageTotal) : 0; } return total > 0 ? parseFloat(percentageTotal.toFixed(2)) : 0; }; export const formatSizeInKiB = (sizeInBytes: number, round: boolean): number => { const sizeInGiB = sizeInBytes / 1024 ** 1; return round ? Math.round(sizeInGiB) : parseFloat(sizeInGiB.toFixed(2)); }; export const formatSizeInMiB = (sizeInBytes: number, round: boolean): number => { const sizeInGiB = sizeInBytes / 1024 ** 2; return round ? Math.round(sizeInGiB) : parseFloat(sizeInGiB.toFixed(2)); }; export const formatSizeInGiB = (sizeInBytes: number, round: boolean): number => { const sizeInGiB = sizeInBytes / 1024 ** 3; return round ? Math.round(sizeInGiB) : parseFloat(sizeInGiB.toFixed(2)); }; export const formatSizeInTiB = (sizeInBytes: number, round: boolean): number => { const sizeInGiB = sizeInBytes / 1024 ** 4; return round ? Math.round(sizeInGiB) : parseFloat(sizeInGiB.toFixed(2)); }; export const autoFormatSize = (sizeInBytes: number, round: boolean): number => { // auto convert to GiB, MiB, KiB, TiB, or bytes if (sizeInBytes >= 1024 ** 4) return formatSizeInTiB(sizeInBytes, round); if (sizeInBytes >= 1024 ** 3) return formatSizeInGiB(sizeInBytes, round); if (sizeInBytes >= 1024 ** 2) return formatSizeInMiB(sizeInBytes, round); if (sizeInBytes >= 1024 ** 1) return formatSizeInKiB(sizeInBytes, round); return sizeInBytes; }; export const getPostfix = (sizeInBytes: number): Postfix => { if (sizeInBytes >= 1024 ** 4) return 'TiB'; if (sizeInBytes >= 1024 ** 3) return 'GiB'; if (sizeInBytes >= 1024 ** 2) return 'MiB'; if (sizeInBytes >= 1024 ** 1) return 'KiB'; return 'B'; }; export const renderResourceLabel = (lblType: ResourceLabelType, rmUsg: GenericResourceData, round: boolean): string => { const { used, total, percentage, free } = rmUsg; const formatFunctions = { TiB: formatSizeInTiB, GiB: formatSizeInGiB, MiB: formatSizeInMiB, KiB: formatSizeInKiB, B: (size: number): number => size, }; // Get the data in proper GiB, MiB, KiB, TiB, or bytes const totalSizeFormatted = autoFormatSize(total, round); // get the postfix: one of [TiB, GiB, MiB, KiB, B] const postfix = getPostfix(total); // Determine which format function to use const formatUsed = formatFunctions[postfix] || formatFunctions['B']; const usedSizeFormatted = formatUsed(used, round); if (lblType === 'used/total') { return `${usedSizeFormatted}/${totalSizeFormatted} ${postfix}`; } if (lblType === 'used') { return `${autoFormatSize(used, round)} ${getPostfix(used)}`; } if (lblType === 'free') { return `${autoFormatSize(free, round)} ${getPostfix(free)}`; } return `${percentage}%`; }; export const formatTooltip = (dataType: string, lblTyp: ResourceLabelType): string => { switch (lblTyp) { case 'used': return `Used ${dataType}`; case 'free': return `Free ${dataType}`; case 'used/total': return `Used/Total ${dataType}`; case 'percentage': return `Percentage ${dataType} Usage`; default: return ''; } }; ================================================ FILE: .config/ags/customModules/weather/index.ts ================================================ import options from 'options'; import { module } from '../module'; import { inputHandler } from 'customModules/utils'; import Button from 'types/widgets/button'; import { getWeatherStatusTextIcon, globalWeatherVar } from 'globals/weather'; import { Attribute, Child } from 'lib/types/widget'; import { BarBoxChild } from 'lib/types/bar'; const { label, unit, leftClick, rightClick, middleClick, scrollUp, scrollDown } = options.bar.customModules.weather; export const Weather = (): BarBoxChild => { const weatherModule = module({ textIcon: Utils.merge([globalWeatherVar.bind('value')], (wthr) => { const weatherStatusIcon = getWeatherStatusTextIcon(wthr); return weatherStatusIcon; }), tooltipText: globalWeatherVar.bind('value').as((v) => `Weather Status: ${v.current.condition.text}`), boxClass: 'weather-custom', label: Utils.merge([globalWeatherVar.bind('value'), unit.bind('value')], (wthr, unt) => { if (unt === 'imperial') { return `${Math.ceil(wthr.current.temp_f)}° F`; } else { return `${Math.ceil(wthr.current.temp_c)}° C`; } }), showLabelBinding: label.bind('value'), props: { setup: (self: Button) => { inputHandler(self, { onPrimaryClick: { cmd: leftClick, }, onSecondaryClick: { cmd: rightClick, }, onMiddleClick: { cmd: middleClick, }, onScrollUp: { cmd: scrollUp, }, onScrollDown: { cmd: scrollDown, }, }); }, }, }); return weatherModule; }; ================================================ FILE: .config/ags/directoryMonitorService.ts ================================================ import Service from 'resource:///com/github/Aylur/ags/service.js'; import App from 'resource:///com/github/Aylur/ags/app.js'; import { monitorFile } from 'resource:///com/github/Aylur/ags/utils.js'; import Gio from 'gi://Gio'; import { FileInfo } from 'types/@girs/gio-2.0/gio-2.0.cjs'; class DirectoryMonitorService extends Service { static { Service.register(this, {}, {}); } constructor() { super(); this.recursiveDirectoryMonitor(`${App.configDir}/scss`); } recursiveDirectoryMonitor(directoryPath: string): void { monitorFile(directoryPath, (_, eventType) => { if (eventType === Gio.FileMonitorEvent.CHANGES_DONE_HINT) { this.emit('changed'); } }); const directory = Gio.File.new_for_path(directoryPath); const enumerator = directory.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NONE, null); let fileInfo: FileInfo; while ((fileInfo = enumerator.next_file(null) as FileInfo) !== null) { const childPath = directoryPath + '/' + fileInfo.get_name(); if (fileInfo.get_file_type() === Gio.FileType.DIRECTORY) { this.recursiveDirectoryMonitor(childPath); } } } } const service = new DirectoryMonitorService(); export default service; ================================================ FILE: .config/ags/flake.nix ================================================ { description = "A Bar/Panel for Hyprland with extensive customizability."; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; ags.url = "github:Aylur/ags"; }; outputs = inputs: let systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ]; forEachSystem = inputs.nixpkgs.lib.genAttrs systems; pkgsFor = forEachSystem ( system: import inputs.nixpkgs { inherit system; config.allowUnfree = true; } ); devShellFor = system: inputs.nixpkgs.lib.genAttrs ["default"] ( _: inputs.nixpkgs.legacyPackages.${system}.mkShell { buildInputs = [ pkgsFor.${system}.esbuild pkgsFor.${system}.fish pkgsFor.${system}.typescript pkgsFor.${system}.bun pkgsFor.${system}.libnotify pkgsFor.${system}.dart-sass pkgsFor.${system}.fd pkgsFor.${system}.btop pkgsFor.${system}.bluez pkgsFor.${system}.libgtop pkgsFor.${system}.gobject-introspection pkgsFor.${system}.glib pkgsFor.${system}.bluez-tools pkgsFor.${system}.grimblast pkgsFor.${system}.gpu-screen-recorder pkgsFor.${system}.brightnessctl pkgsFor.${system}.gnome-bluetooth pkgsFor.${system}.python3 pkgsFor.${system}.matugen inputs.ags.packages.${system}.agsWithTypes ]; nativeBuildInputs = with pkgsFor.${system}; [ nixfmt-rfc-style nil ]; shellHook = '' export GDK_BACKEND=wayland export GI_TYPELIB_PATH=${pkgsFor.${system}.libgtop}/lib/girepository-1.0:${pkgsFor.${system}.glib}/lib/girepository-1.0:$GI_TYPELIB_PATH ''; } ); in { devShells = forEachSystem devShellFor; overlay = final: prev: { hyprpanel = if final ? callPackage then (final.callPackage ./nix {inherit inputs;}).desktop.script else inputs.self.packages.${prev.stdenv.system}.default; }; packages = forEachSystem ( system: let pkgs = pkgsFor.${system}; in { default = (pkgs.callPackage ./nix {inherit inputs;}).desktop.script; } ); }; } ================================================ FILE: .config/ags/globals/dropdown.ts ================================================ import { Variable as VariableType } from 'types/variable'; type GlobalEventBoxes = { [key: string]: unknown; }; export const globalEventBoxes: VariableType = Variable({}); ================================================ FILE: .config/ags/globals/mousePos.ts ================================================ import { Variable as VariableType } from 'types/variable'; const globalMousePosVar: VariableType = Variable([0, 0]); globalThis['globalMousePos'] = globalMousePosVar; ================================================ FILE: .config/ags/globals/network.ts ================================================ export const WIFI_STATUS_MAP = { unknown: 'Status Unknown', unmanaged: 'Unmanaged', unavailable: 'Unavailable', disconnected: 'Disconnected', prepare: 'Preparing Connecting', config: 'Connecting', need_auth: 'Needs Authentication', ip_config: 'Requesting IP', ip_check: 'Checking Access', secondaries: 'Waiting on Secondaries', activated: 'Connected', deactivating: 'Disconnecting', failed: 'Connection Failed', } as const; ================================================ FILE: .config/ags/globals/notification.ts ================================================ import icons from 'modules/icons/index'; import { Notification } from 'types/service/notifications'; export const removingNotifications = Variable(false); export const getNotificationIcon = (app_name: string, app_icon: string, app_entry: string): string => { let icon: string = icons.fallback.notification; if (Utils.lookUpIcon(app_name) || Utils.lookUpIcon(app_name.toLowerCase() || '')) { icon = Utils.lookUpIcon(app_name) ? app_name : Utils.lookUpIcon(app_name.toLowerCase()) ? app_name.toLowerCase() : ''; } if (Utils.lookUpIcon(app_icon) && icon === '') { icon = app_icon; } if (Utils.lookUpIcon(app_entry || '') && icon === '') { icon = app_entry || ''; } return icon; }; export const closeNotifications = async (notifications: Notification[], delay: number): Promise => { removingNotifications.value = true; for (const notif of notifications) { notif.close(); await new Promise((resolve) => setTimeout(resolve, delay)); } removingNotifications.value = false; }; globalThis['removingNotifications'] = removingNotifications; ================================================ FILE: .config/ags/globals/useTheme.ts ================================================ import Gio from 'gi://Gio'; import { bash, Notify } from 'lib/utils'; import icons from 'lib/icons'; import { filterConfigForThemeOnly, loadJsonFile, saveConfigToFile } from 'widget/settings/shared/FileChooser'; export const hexColorPattern = /^#([0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/; globalThis.useTheme = (filePath: string): void => { const importedConfig = loadJsonFile(filePath); if (!importedConfig) { return; } Notify({ summary: `Importing Theme`, body: `Importing: ${filePath}`, iconName: icons.ui.info, timeout: 7000, }); const tmpConfigFile = Gio.File.new_for_path(`${TMP}/config.json`); const optionsConfigFile = Gio.File.new_for_path(OPTIONS); const [tmpSuccess, tmpContent] = tmpConfigFile.load_contents(null); const [optionsSuccess, optionsContent] = optionsConfigFile.load_contents(null); if (!tmpSuccess || !optionsSuccess) { console.error('Failed to read existing configuration files.'); return; } let tmpConfig = JSON.parse(new TextDecoder('utf-8').decode(tmpContent)); let optionsConfig = JSON.parse(new TextDecoder('utf-8').decode(optionsContent)); const filteredConfig = filterConfigForThemeOnly(importedConfig); tmpConfig = { ...tmpConfig, ...filteredConfig }; optionsConfig = { ...optionsConfig, ...filteredConfig }; saveConfigToFile(tmpConfig, `${TMP}/config.json`); saveConfigToFile(optionsConfig, OPTIONS); bash('pkill ags && ags'); }; ================================================ FILE: .config/ags/globals/utilities.ts ================================================ globalThis.isWindowVisible = (windowName: string): boolean => { const appWindow = App.getWindow(windowName); if (appWindow === undefined) { return false; } return appWindow.visible; }; ================================================ FILE: .config/ags/globals/variables.ts ================================================ import { Opt } from 'lib/option'; import { HexColor, MatugenTheme, RecursiveOptionsObject } from 'lib/types/options'; export const isOpt = (value: unknown): value is Opt => typeof value === 'object' && value !== null && 'value' in value && value instanceof Opt; export const isOptString = (value: unknown): value is Opt => { return value instanceof Opt && typeof value.value === 'string'; }; export const isOptNumber = (value: unknown): value is Opt => { return value instanceof Opt && typeof value.value === 'number'; }; export const isOptBoolean = (value: unknown): value is Opt => { return value instanceof Opt && typeof value.value === 'boolean'; }; export const isOptMatugenTheme = (value: unknown): value is Opt => { return value instanceof Opt && typeof value.value === 'object' && 'specificProperty' in value.value; // Replace 'specificProperty' with an actual property of MatugenTheme }; export const isRecursiveOptionsObject = (value: unknown): value is RecursiveOptionsObject => { return typeof value === 'object' && value !== null && !(value instanceof Opt); }; export const isHexColor = (val: unknown): val is HexColor => { return typeof val === 'string' && /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(val); }; ================================================ FILE: .config/ags/globals/weather.ts ================================================ import options from 'options'; import { UnitType, Weather, WeatherIconTitle, WeatherIcon } from 'lib/types/weather.js'; import { DEFAULT_WEATHER } from 'lib/types/defaults/weather.js'; import GLib from 'gi://GLib?version=2.0'; import { weatherIcons } from 'modules/icons/weather.js'; const { key, interval, location } = options.menus.clock.weather; export const globalWeatherVar = Variable(DEFAULT_WEATHER); let weatherIntervalInstance: null | number = null; const weatherIntervalFn = (weatherInterval: number, loc: string, weatherKey: string): void => { if (weatherIntervalInstance !== null) { GLib.source_remove(weatherIntervalInstance); } const formattedLocation = loc.replace(' ', '%20'); weatherIntervalInstance = Utils.interval(weatherInterval, () => { Utils.execAsync( `curl "https://api.weatherapi.com/v1/forecast.json?key=${weatherKey}&q=${formattedLocation}&days=1&aqi=no&alerts=no"`, ) .then((res) => { try { if (typeof res !== 'string') { return (globalWeatherVar.value = DEFAULT_WEATHER); } const parsedWeather = JSON.parse(res); if (Object.keys(parsedWeather).includes('error')) { return (globalWeatherVar.value = DEFAULT_WEATHER); } return (globalWeatherVar.value = parsedWeather); } catch (error) { globalWeatherVar.value = DEFAULT_WEATHER; console.warn(`Failed to parse weather data: ${error}`); } }) .catch((err) => { console.error(`Failed to fetch weather: ${err}`); globalWeatherVar.value = DEFAULT_WEATHER; }); }); }; Utils.merge([key.bind('value'), interval.bind('value'), location.bind('value')], (weatherKey, weatherInterval, loc) => { if (!weatherKey) { return (globalWeatherVar.value = DEFAULT_WEATHER); } weatherIntervalFn(weatherInterval, loc, weatherKey); }); export const getTemperature = (wthr: Weather, unt: UnitType): string => { if (unt === 'imperial') { return `${Math.ceil(wthr.current.temp_f)}° F`; } else { return `${Math.ceil(wthr.current.temp_c)}° C`; } }; export const getWeatherIcon = (fahren: number): Record => { const icons = { 100: '', 75: '', 50: '', 25: '', 0: '', } as const; const colors = { 100: 'weather-color red', 75: 'weather-color orange', 50: 'weather-color lavender', 25: 'weather-color blue', 0: 'weather-color sky', } as const; type IconKeys = keyof typeof icons; const threshold: IconKeys = fahren < 0 ? 0 : ([100, 75, 50, 25, 0] as IconKeys[]).find((threshold) => threshold <= fahren) || 0; const icon = icons[threshold || 50]; const color = colors[threshold || 50]; return { icon, color, }; }; export const getWindConditions = (wthr: Weather, unt: UnitType): string => { if (unt === 'imperial') { return `${Math.floor(wthr.current.wind_mph)} mph`; } return `${Math.floor(wthr.current.wind_kph)} kph`; }; export const getRainChance = (wthr: Weather): string => `${wthr.forecast.forecastday[0].day.daily_chance_of_rain}%`; export const isValidWeatherIconTitle = (title: string): title is WeatherIconTitle => { return title in weatherIcons; }; export const getWeatherStatusTextIcon = (wthr: Weather): WeatherIcon => { let iconQuery = wthr.current.condition.text.trim().toLowerCase().replaceAll(' ', '_'); if (!wthr.current.is_day && iconQuery === 'partly_cloudy') { iconQuery = 'partly_cloudy_night'; } if (isValidWeatherIconTitle(iconQuery)) { return weatherIcons[iconQuery]; } else { console.warn(`Unknown weather icon title: ${iconQuery}`); return weatherIcons['warning']; } }; globalThis['globalWeatherVar'] = globalWeatherVar; ================================================ FILE: .config/ags/globals/window.ts ================================================ export const WINDOW_LAYOUTS: string[] = [ 'center', 'top', 'top-right', 'top-center', 'top-left', 'bottom-left', 'bottom-center', 'bottom-right', ]; ================================================ FILE: .config/ags/globals.d.ts ================================================ // globals.d.ts /* eslint-disable no-var */ import { Options, Variable as VariableType } from 'types/variable'; declare global { var useTheme: (filePath: string) => void; var isWindowVisible: (windowName: string) => boolean; var globalWeatherVar: VariableType; var options: Options; var removingNotifications: VariableType; } export {}; ================================================ FILE: .config/ags/install_fonts.sh ================================================ #!/bin/bash SOURCE_DIR="./assets/fonts" DEST_DIR="$HOME/.local/share/fonts" DEST_PATH="$DEST_DIR/NFP" if [ ! -d "$SOURCE_DIR" ]; then echo "Source directory '$SOURCE_DIR' does not exist." exit 1 fi if [ ! -d "$DEST_PATH" ]; then echo "Destination directory '$DEST_PATH' does not exist. Creating it..." mkdir -p "$DEST_PATH" fi if [ -z "$(ls -A "$SOURCE_DIR")" ]; then echo "Source directory '$SOURCE_DIR' is empty. No files to copy." exit 1 fi echo "Copying fonts from '$SOURCE_DIR' to '$DEST_PATH'..." cp -r "$SOURCE_DIR"/* "$DEST_PATH" echo "Updating font cache..." fc-cache -fv echo "Fonts installed successfully." ================================================ FILE: .config/ags/lib/constants/colors.ts ================================================ export const namedColors = new Set([ 'alice blue', 'antique white', 'aqua', 'aquamarine', 'azure', 'beige', 'bisque', 'black', 'blanched almond', 'blue', 'blue violet', 'brown', 'burlywood', 'cadet blue', 'chartreuse', 'chocolate', 'coral', 'cornflower blue', 'cornsilk', 'crimson', 'cyan', 'dark blue', 'dark cyan', 'dark goldenrod', 'dark gray', 'dark green', 'dark khaki', 'dark magenta', 'dark olive green', 'dark orange', 'dark orchid', 'dark red', 'dark salmon', 'dark sea green', 'dark slate blue', 'dark slate gray', 'dark turquoise', 'dark violet', 'deep pink', 'deep sky blue', 'dim gray', 'dodger blue', 'firebrick', 'floral white', 'forest green', 'fuchsia', 'gainsboro', 'ghost white', 'gold', 'goldenrod', 'gray', 'green', 'green yellow', 'honeydew', 'hot pink', 'indian red', 'indigo', 'ivory', 'khaki', 'lavender', 'lavender blush', 'lawn green', 'lemon chiffon', 'light blue', 'light coral', 'light cyan', 'light goldenrod yellow', 'light green', 'light grey', 'light pink', 'light salmon', 'light sea green', 'light sky blue', 'light slate gray', 'light steel blue', 'light yellow', 'lime', 'lime green', 'linen', 'magenta', 'maroon', 'medium aquamarine', 'medium blue', 'medium orchid', 'medium purple', 'medium sea green', 'medium slate blue', 'medium spring green', 'medium turquoise', 'medium violet red', 'midnight blue', 'mint cream', 'misty rose', 'moccasin', 'navajo white', 'navy', 'old lace', 'olive', 'olive drab', 'orange', 'orange red', 'orchid', 'pale goldenrod', 'pale green', 'pale turquoise', 'pale violet red', 'papaya whip', 'peach puff', 'peru', 'pink', 'plum', 'powder blue', 'purple', 'red', 'rosy brown', 'royal blue', 'saddle brown', 'salmon', 'sandy brown', 'sea green', 'seashell', 'sienna', 'silver', 'sky blue', 'slate blue', 'slate gray', 'snow', 'spring green', 'steel blue', 'tan', 'teal', 'thistle', 'tomato', 'turquoise', 'violet', 'wheat', 'white', 'white smoke', 'yellow', 'yellow green', ]); ================================================ FILE: .config/ags/lib/icons.ts ================================================ export const substitutes = { 'transmission-gtk': 'transmission', 'blueberry.py': 'blueberry', Caprine: 'facebook-messenger', 'com.raggesilver.BlackBox-symbolic': 'terminal-symbolic', 'org.wezfurlong.wezterm-symbolic': 'terminal-symbolic', 'audio-headset-bluetooth': 'audio-headphones-symbolic', 'audio-card-analog-usb': 'audio-speakers-symbolic', 'audio-card-analog-pci': 'audio-card-symbolic', 'preferences-system': 'emblem-system-symbolic', 'com.github.Aylur.ags-symbolic': 'controls-symbolic', 'com.github.Aylur.ags': 'controls-symbolic', } as const; export default { missing: 'image-missing-symbolic', nix: { nix: 'nix-snowflake-symbolic', }, app: { terminal: 'terminal-symbolic', }, fallback: { executable: 'application-x-executable', notification: 'dialog-information-symbolic', video: 'video-x-generic-symbolic', audio: 'audio-x-generic-symbolic', }, ui: { close: 'window-close-symbolic', colorpicker: 'color-select-symbolic', info: 'info-symbolic', link: 'external-link-symbolic', lock: 'system-lock-screen-symbolic', menu: 'open-menu-symbolic', refresh: 'view-refresh-symbolic', search: 'system-search-symbolic', settings: 'emblem-system-symbolic', themes: 'preferences-desktop-theme-symbolic', tick: 'object-select-symbolic', time: 'hourglass-symbolic', toolbars: 'toolbars-symbolic', warning: 'dialog-warning-symbolic', arrow: { right: 'pan-end-symbolic', left: 'pan-start-symbolic', down: 'pan-down-symbolic', up: 'pan-up-symbolic', }, }, audio: { mic: { muted: 'microphone-disabled-symbolic', low: 'microphone-sensitivity-low-symbolic', medium: 'microphone-sensitivity-medium-symbolic', high: 'microphone-sensitivity-high-symbolic', }, volume: { muted: 'audio-volume-muted-symbolic', low: 'audio-volume-low-symbolic', medium: 'audio-volume-medium-symbolic', high: 'audio-volume-high-symbolic', overamplified: 'audio-volume-overamplified-symbolic', }, type: { headset: 'audio-headphones-symbolic', speaker: 'audio-speakers-symbolic', card: 'audio-card-symbolic', }, mixer: 'mixer-symbolic', }, powerprofile: { balanced: 'power-profile-balanced-symbolic', 'power-saver': 'power-profile-power-saver-symbolic', performance: 'power-profile-performance-symbolic', }, asusctl: { profile: { Balanced: 'power-profile-balanced-symbolic', Quiet: 'power-profile-power-saver-symbolic', Performance: 'power-profile-performance-symbolic', }, mode: { Integrated: 'processor-symbolic', Hybrid: 'controller-symbolic', }, }, battery: { charging: 'battery-flash-symbolic', warning: 'battery-empty-symbolic', }, bluetooth: { enabled: 'bluetooth-active-symbolic', disabled: 'bluetooth-disabled-symbolic', }, brightness: { indicator: 'display-brightness-symbolic', keyboard: 'keyboard-brightness-symbolic', screen: 'display-brightness-symbolic', }, powermenu: { sleep: 'weather-clear-night-symbolic', reboot: 'system-reboot-symbolic', logout: 'system-log-out-symbolic', shutdown: 'system-shutdown-symbolic', }, recorder: { recording: 'media-record-symbolic', }, notifications: { noisy: 'org.gnome.Settings-notifications-symbolic', silent: 'notifications-disabled-symbolic', message: 'chat-bubbles-symbolic', }, trash: { full: 'user-trash-full-symbolic', empty: 'user-trash-symbolic', }, mpris: { shuffle: { enabled: 'media-playlist-shuffle-symbolic', disabled: 'media-playlist-consecutive-symbolic', }, loop: { none: 'media-playlist-repeat-symbolic', track: 'media-playlist-repeat-song-symbolic', playlist: 'media-playlist-repeat-symbolic', }, playing: 'media-playback-pause-symbolic', paused: 'media-playback-start-symbolic', stopped: 'media-playback-start-symbolic', prev: 'media-skip-backward-symbolic', next: 'media-skip-forward-symbolic', }, system: { cpu: 'org.gnome.SystemMonitor-symbolic', ram: 'drive-harddisk-solidstate-symbolic', temp: 'temperature-symbolic', }, color: { dark: 'dark-mode-symbolic', light: 'light-mode-symbolic', }, }; ================================================ FILE: .config/ags/lib/option.ts ================================================ import { isHexColor } from 'globals/variables'; import { Variable } from 'resource:///com/github/Aylur/ags/variable.js'; import { MkOptionsResult } from './types/options'; type OptProps = { persistent?: boolean; }; export class Opt extends Variable { static { Service.register(this); } constructor(initial: T, { persistent = false }: OptProps = {}) { super(initial); this.initial = initial; this.persistent = persistent; } initial: T; id = ''; persistent: boolean; toString(): string { return `${this.value}`; } toJSON(): string { return `opt:${this.value}`; } getValue = (): T => { return super.getValue(); }; init(cacheFile: string): void { const cacheV = JSON.parse(Utils.readFile(cacheFile) || '{}')[this.id]; if (cacheV !== undefined) this.value = cacheV; this.connect('changed', () => { const cache = JSON.parse(Utils.readFile(cacheFile) || '{}'); cache[this.id] = this.value; Utils.writeFileSync(JSON.stringify(cache, null, 2), cacheFile); }); } reset(): string | undefined { if (this.persistent) return; if (JSON.stringify(this.value) !== JSON.stringify(this.initial)) { this.value = this.initial; return this.id; } } doResetColor(): string | undefined { if (this.persistent) return; const isColor = isHexColor(this.value as string); if (JSON.stringify(this.value) !== JSON.stringify(this.initial) && isColor) { this.value = this.initial; return this.id; } return; } } export const opt = (initial: T, opts?: OptProps): Opt => new Opt(initial, opts); const getOptions = (object: Record, path = ''): Opt[] => { return Object.keys(object).flatMap((key) => { const obj = object[key]; const id = path ? path + '.' + key : key; if (obj instanceof Variable) { const optValue = obj as Opt; optValue.id = id; return optValue; } if (typeof obj === 'object' && obj !== null) { return getOptions(obj as Record, id); // Recursively process nested objects } return []; }); }; export function mkOptions( cacheFile: string, object: T, confFile: string = 'config.json', ): T & MkOptionsResult { for (const opt of getOptions(object as Record)) opt.init(cacheFile); Utils.ensureDirectory(cacheFile.split('/').slice(0, -1).join('/')); const configFile = `${TMP}/${confFile}`; const values = getOptions(object as Record).reduce( (obj, { id, value }) => ({ [id]: value, ...obj }), {}, ); Utils.writeFileSync(JSON.stringify(values, null, 2), configFile); Utils.monitorFile(configFile, () => { const cache = JSON.parse(Utils.readFile(configFile) || '{}'); for (const opt of getOptions(object as Record)) { if (JSON.stringify(cache[opt.id]) !== JSON.stringify(opt.value)) opt.value = cache[opt.id]; } }); function sleep(ms = 0): Promise { return new Promise((r) => setTimeout(r, ms)); } const reset = async ( [opt, ...list] = getOptions(object as Record), id = opt?.reset(), ): Promise> => { if (!opt) return sleep().then(() => []); return id ? [id, ...(await sleep(50).then(() => reset(list)))] : await sleep().then(() => reset(list)); }; const resetTheme = async ( [opt, ...list] = getOptions(object as Record), id = opt?.doResetColor(), ): Promise> => { if (!opt) return sleep().then(() => []); return id ? [id, ...(await sleep(50).then(() => resetTheme(list)))] : await sleep().then(() => resetTheme(list)); }; return Object.assign(object, { configFile, array: () => getOptions(object as Record), async reset() { return (await reset()).join('\n'); }, async resetTheme() { return (await resetTheme()).join('\n'); }, handler(deps: string[], callback: () => void) { for (const opt of getOptions(object as Record)) { if (deps.some((i) => opt.id.startsWith(i))) opt.connect('changed', callback); } }, }); } ================================================ FILE: .config/ags/lib/session.ts ================================================ import GLib from 'gi://GLib?version=2.0'; declare global { const OPTIONS: string; const TMP: string; const USER: string; } Object.assign(globalThis, { OPTIONS: `${GLib.get_user_cache_dir()}/ags/hyprpanel/options.json`, TMP: `${GLib.get_tmp_dir()}/ags/hyprpanel`, USER: GLib.get_user_name(), }); Utils.ensureDirectory(TMP); App.addIcons(`${App.configDir}/assets`); ================================================ FILE: .config/ags/lib/shared/media.ts ================================================ import { MprisPlayer } from 'types/service/mpris'; const mpris = await Service.import('mpris'); export const getCurrentPlayer = (activePlayer: MprisPlayer = mpris.players[0]): MprisPlayer => { const statusOrder = { Playing: 1, Paused: 2, Stopped: 3, }; if (mpris.players.length === 0) { return mpris.players[0]; } const isPlaying = mpris.players.some((p: MprisPlayer) => p.play_back_status === 'Playing'); const playerStillExists = mpris.players.some((p) => activePlayer.bus_name === p.bus_name); const nextPlayerUp = mpris.players.sort( (a: MprisPlayer, b: MprisPlayer) => statusOrder[a.play_back_status] - statusOrder[b.play_back_status], )[0]; if (isPlaying || !playerStillExists) { return nextPlayerUp; } return activePlayer; }; ================================================ FILE: .config/ags/lib/shared/notifications.ts ================================================ import { Notification } from 'types/service/notifications'; export const filterNotifications = (notifications: Notification[], filter: string[]): Notification[] => { const notifFilter = new Set(filter.map((name: string) => name.toLowerCase().replace(/\s+/g, '_'))); const filteredNotifications = notifications.filter((notif: Notification) => { const normalizedAppName = notif.app_name.toLowerCase().replace(/\s+/g, '_'); return !notifFilter.has(normalizedAppName); }); return filteredNotifications; }; ================================================ FILE: .config/ags/lib/types/audio.d.ts ================================================ export type InputDevices = Button, Attribute>, Attribute>, Attribute>[]; type DummyDevices = Button, Attribute>, Attribute>, Attribute>[]; type RealPlaybackDevices = Button, Attribute>, Attribute>, Attribute>[]; export type PlaybackDevices = DummyDevices | RealPlaybackDevices; ================================================ FILE: .config/ags/lib/types/bar.d.ts ================================================ import { Binding, Connectable } from 'types/service'; import { Variable } from 'types/variable'; import Box from 'types/widgets/box'; import Button, { ButtonProps } from 'types/widgets/button'; import Label from 'types/widgets/label'; import { Attribute, Child } from './widget'; export type BarBoxChild = { component: Box; isVisible?: boolean; isVis?: Variable; boxClass: string; tooltip_text?: string | Binding; props: ButtonProps; }; export type SelfButton = Button; export type BoxHook = (self: Box) => void; export type LabelHook = (self: Label) => void; export type Module = { icon?: string | Binding; textIcon?: string | Binding; label?: string | Binding; labelHook?: LabelHook; boundLabel?: string; tooltipText?: string | Binding; boxClass: string; props?: ButtonProps; showLabel?: boolean; showLabelBinding?: Binding; hook?: BoxHook; connection?: Binding; }; export type ResourceLabelType = 'used/total' | 'used' | 'percentage' | 'free'; export type NetstatLabelType = 'full' | 'in' | 'out'; export type RateUnit = 'GiB' | 'MiB' | 'KiB' | 'auto'; ================================================ FILE: .config/ags/lib/types/customModules/generic.d.ts ================================================ export type GenericFunction = (...args: P) => T; export type GenericResourceMetrics = { total: number; used: number; percentage: number; }; export type GenericResourceData = GenericResourceMetrics & { free: number; }; export type Postfix = 'TiB' | 'GiB' | 'MiB' | 'KiB' | 'B'; ================================================ FILE: .config/ags/lib/types/customModules/kbLayout.d.ts ================================================ import { layoutMap } from 'customModules/kblayout/layouts'; export type KbLabelType = 'layout' | 'code'; export type HyprctlKeyboard = { address: string; name: string; rules: string; model: string; layout: string; variant: string; options: string; active_keymap: string; main: boolean; }; export type HyprctlMouse = { address: string; name: string; defaultSpeed: number; }; export type HyprctlDeviceLayout = { mice: HyprctlMouse[]; keyboards: HyprctlKeyboard[]; tablets: unknown[]; touch: unknown[]; switches: unknown[]; }; export type LayoutKeys = keyof typeof layoutMap; export type LayoutValues = (typeof layoutMap)[LayoutKeys]; ================================================ FILE: .config/ags/lib/types/customModules/network.d.ts ================================================ export type NetworkResourceData = { in: string; out: string; }; ================================================ FILE: .config/ags/lib/types/customModules/utils.d.ts ================================================ import { Binding } from 'lib/utils'; export type InputHandlerEvents = { onPrimaryClick?: Binding; onSecondaryClick?: Binding; onMiddleClick?: Binding; onScrollUp?: Binding; onScrollDown?: Binding; }; export type RunAsyncCommand = (cmd: string, args: EventArgs, fn?: (output: string) => void) => void; ================================================ FILE: .config/ags/lib/types/defaults/bar.ts ================================================ import { NetstatLabelType, ResourceLabelType } from '../bar'; export const LABEL_TYPES: ResourceLabelType[] = ['used/total', 'used', 'free', 'percentage']; export const NETWORK_LABEL_TYPES: NetstatLabelType[] = ['full', 'in', 'out']; ================================================ FILE: .config/ags/lib/types/defaults/netstat.ts ================================================ import { RateUnit } from '../bar'; import { NetworkResourceData } from '../customModules/network'; export const GET_DEFAULT_NETSTAT_DATA = (dataType: RateUnit): NetworkResourceData => { if (dataType === 'auto') { return { in: `0 Kib/s`, out: `0 Kib/s` }; } return { in: `0 ${dataType}/s`, out: `0 ${dataType}/s` }; }; ================================================ FILE: .config/ags/lib/types/defaults/options.ts ================================================ export const defaultColorMap = { rosewater: '#f5e0dc', flamingo: '#f2cdcd', pink: '#f5c2e7', mauve: '#cba6f7', red: '#f38ba8', maroon: '#eba0ac', peach: '#fab387', yellow: '#f9e2af', green: '#a6e3a1', teal: '#94e2d5', sky: '#89dceb', sapphire: '#74c7ec', blue: '#89b4fa', lavender: '#b4befe', text: '#cdd6f4', subtext1: '#bac2de', subtext2: '#a6adc8', overlay2: '#9399b2', overlay1: '#7f849c', overlay0: '#6c7086', surface2: '#585b70', surface1: '#45475a', surface0: '#313244', base2: '#242438', base: '#1e1e2e', mantle: '#181825', crust: '#11111b', surface1_2: '#454759', text2: '#cdd6f3', pink2: '#f5c2e6', red2: '#f38ba7', peach2: '#fab386', mantle2: '#181824', surface0_2: '#313243', surface2_2: '#585b69', overlay1_2: '#7f849b', lavender2: '#b4befd', mauve2: '#cba6f6', green2: '#a6e3a0', sky2: '#89dcea', teal2: '#94e2d4', yellow2: '#f9e2ad', maroon2: '#eba0ab', crust2: '#11111a', pink3: '#f5c2e8', red3: '#f38ba9', mantle3: '#181826', surface0_3: '#313245', surface2_3: '#585b71', overlay1_3: '#7f849d', lavender3: '#b4beff', mauve3: '#cba6f8', green3: '#a6e3a2', sky3: '#89dcec', teal3: '#94e2d6', yellow3: '#f9e2ae', maroon3: '#eba0ad', crust3: '#11111c', } as const; ================================================ FILE: .config/ags/lib/types/defaults/weather.ts ================================================ export const DEFAULT_WEATHER = { location: { name: 'Tahiti', region: 'Somewhere', country: 'United States of America', lat: 0, lon: 0, tz_id: 'Tahiti', localtime_epoch: 1721981457, localtime: '2024-07-26 1:10', }, current: { last_updated_epoch: 1721980800, last_updated: '2024-07-26 01:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'NW', pressure_mb: 0, pressure_in: 0, precip_mm: 0.0, precip_in: 0.0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, vis_km: 0, vis_miles: 0, uv: 0, gust_mph: 0, gust_kph: 0, }, forecast: { forecastday: [ { date: '2024-07-26', date_epoch: 1721952000, day: { maxtemp_c: 0, maxtemp_f: 0, mintemp_c: 0, mintemp_f: 0, avgtemp_c: 0, avgtemp_f: 0, maxwind_mph: 0, maxwind_kph: 0, totalprecip_mm: 0, totalprecip_in: 0, totalsnow_cm: 0, avgvis_km: 0, avgvis_miles: 0, avghumidity: 0, daily_will_it_rain: 0, daily_chance_of_rain: 0, daily_will_it_snow: 0, daily_chance_of_snow: 0, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, uv: 0, }, astro: { sunrise: '06:01 AM', sunset: '08:10 PM', moonrise: '11:32 PM', moonset: '12:01 PM', moon_phase: 'Waning Gibbous', moon_illumination: 0, is_moon_up: 0, is_sun_up: 0, }, hour: [ { time_epoch: 1721977200, time: '2024-07-26 00:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1721980800, time: '2024-07-26 01:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1721984400, time: '2024-07-26 02:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1721988000, time: '2024-07-26 03:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1721991600, time: '2024-07-26 04:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1721995200, time: '2024-07-26 05:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1721998800, time: '2024-07-26 06:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1722002400, time: '2024-07-26 07:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 7.0, }, { time_epoch: 1722006000, time: '2024-07-26 08:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 7.0, }, { time_epoch: 1722009600, time: '2024-07-26 09:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 8.0, }, { time_epoch: 1722013200, time: '2024-07-26 10:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 8.0, }, { time_epoch: 1722016800, time: '2024-07-26 11:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 9.0, }, { time_epoch: 1722020400, time: '2024-07-26 12:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 9.0, }, { time_epoch: 1722024000, time: '2024-07-26 13:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 9.0, }, { time_epoch: 1722027600, time: '2024-07-26 14:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 10.0, }, { time_epoch: 1722031200, time: '2024-07-26 15:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 10.0, }, { time_epoch: 1722034800, time: '2024-07-26 16:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 10.0, }, { time_epoch: 1722038400, time: '2024-07-26 17:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 10.0, }, { time_epoch: 1722042000, time: '2024-07-26 18:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 9.0, }, { time_epoch: 1722045600, time: '2024-07-26 19:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 9.0, }, { time_epoch: 1722049200, time: '2024-07-26 20:00', temp_c: 0, temp_f: 0, is_day: 1, condition: { text: 'Sunny', icon: '//cdn.weatherapi.com/weather/64x64/day/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 8.0, }, { time_epoch: 1722052800, time: '2024-07-26 21:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1722056400, time: '2024-07-26 22:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, { time_epoch: 1722060000, time: '2024-07-26 23:00', temp_c: 0, temp_f: 0, is_day: 0, condition: { text: 'Clear ', icon: '//cdn.weatherapi.com/weather/64x64/night/113.png', code: 1000, }, wind_mph: 0, wind_kph: 0, wind_degree: 0, wind_dir: 'N', pressure_mb: 0, pressure_in: 0, precip_mm: 0, precip_in: 0, snow_cm: 0, humidity: 0, cloud: 0, feelslike_c: 0, feelslike_f: 0, windchill_c: 0, windchill_f: 0, heatindex_c: 0, heatindex_f: 0, dewpoint_c: 0, dewpoint_f: 0, will_it_rain: 0, chance_of_rain: 0, will_it_snow: 0, chance_of_snow: 0, vis_km: 0, vis_miles: 0, gust_mph: 0, gust_kph: 0, uv: 0, }, ], }, ], }, }; ================================================ FILE: .config/ags/lib/types/dropdownmenu.d.ts ================================================ import { WindowProps } from 'types/widgets/window'; import { GtkWidget, Transition } from './widget'; import { Binding } from 'types/service'; export type DropdownMenuProps = { name: string; child: GtkWidget; layout?: string; transition?: Transition | Binding; exclusivity?: Exclusivity; fixed?: boolean; } & WindowProps; ================================================ FILE: .config/ags/lib/types/filechooser.d.ts ================================================ export type Config = { [key: string]: string | number | boolean | object; }; ================================================ FILE: .config/ags/lib/types/globals.d.ts ================================================ export type MousePos = { source: string; pos: number[]; }; ================================================ FILE: .config/ags/lib/types/gpustat.d.ts ================================================ export type GPU_Stat_Process = { username: string; command: string; full_command: string[]; gpu_memory_usage: number; cpu_percent: number; cpu_memory_usage: number; pid: number; }; export type GPU_Stat = { index: number; uuid: string; name: string; 'temperature.gpu': number; 'fan.speed': number; 'utilization.gpu': number; 'utilization.enc': number; 'utilization.dec': number; 'power.draw': number; 'enforced.power.limit': number; 'memory.used': number; 'memory.total': number; processes: Process[]; }; ================================================ FILE: .config/ags/lib/types/mpris.d.ts ================================================ export type LoopStatus = 'none' | 'track' | 'playlist'; export type PlaybackStatus = 'playing' | 'paused' | 'stopped'; ================================================ FILE: .config/ags/lib/types/network.d.ts ================================================ import { WIFI_STATUS_MAP } from 'globals/network'; export type AccessPoint = { bssid: string | null; address: string | null; lastSeen: number; ssid: string | null; active: boolean; strength: number; frequency: number; iconName: string | undefined; }; export type WifiStatus = keyof typeof WIFI_STATUS_MAP; export type WifiIcon = '󰤩' | '󰤨' | '󰤪' | '󰤨' | '󰤩' | '󰤮' | '󰤨' | '󰤥' | '󰤢' | '󰤟' | '󰤯'; ================================================ FILE: .config/ags/lib/types/notification.d.ts ================================================ import icons from 'modules/icons/index'; export interface NotificationArgs { appName?: string; body?: string; iconName?: string; id?: number; summary?: string; urgency?: Urgency; category?: string; timeout?: number; transient?: boolean; } export type NotificationIcon = keyof typeof icons.notifications; ================================================ FILE: .config/ags/lib/types/options.d.ts ================================================ import { Opt } from 'lib/option'; import { Variable } from 'types/variable'; import { defaultColorMap } from './defaults/options'; export type MkOptionsResult = { configFile: string; array: () => Opt[]; reset: () => Promise; resetTheme: () => Promise; handler: (deps: string[], callback: () => void) => void; }; export type RecursiveOptionsObject = { [key: string]: RecursiveOptionsObject | Opt | Opt | Opt; }; export type BarLocation = 'top' | 'bottom'; export type Unit = 'imperial' | 'metric'; export type PowerOptions = 'sleep' | 'reboot' | 'logout' | 'shutdown'; export type NotificationAnchor = | 'top' | 'top right' | 'top left' | 'bottom' | 'bottom right' | 'bottom left' | 'left' | 'right'; export type OSDAnchor = 'top left' | 'top' | 'top right' | 'right' | 'bottom right' | 'bottom' | 'bottom left' | 'left'; export type BarButtonStyles = 'default' | 'split' | 'wave' | 'wave2'; export type ThemeExportData = { filePath: string; themeOnly: boolean; }; export type RowProps = { opt: Opt; title: string; note?: string; type?: | 'number' | 'color' | 'float' | 'object' | 'string' | 'enum' | 'boolean' | 'img' | 'wallpaper' | 'export' | 'import' | 'config_import' | 'font'; enums?: T[]; max?: number; min?: number; disabledBinding?: Variable; exportData?: ThemeExportData; subtitle?: string | VarType | Opt; subtitleLink?: string; dependencies?: string[]; increment?: number; }; export type OSDOrientation = 'horizontal' | 'vertical'; export type HexColor = `#${string}`; export type WindowLayer = 'top' | 'bottom' | 'overlay' | 'background'; export type ActiveWsIndicator = 'underline' | 'highlight' | 'color'; export type MatugenColors = { background: HexColor; error: HexColor; error_container: HexColor; inverse_on_surface: HexColor; inverse_primary: HexColor; inverse_surface: HexColor; on_background: HexColor; on_error: HexColor; on_error_container: HexColor; on_primary: HexColor; on_primary_container: HexColor; on_primary_fixed: HexColor; on_primary_fixed_variant: HexColor; on_secondary: HexColor; on_secondary_container: HexColor; on_secondary_fixed: HexColor; on_secondary_fixed_variant: HexColor; on_surface: HexColor; on_surface_variant: HexColor; on_tertiary: HexColor; on_tertiary_container: HexColor; on_tertiary_fixed: HexColor; on_tertiary_fixed_variant: HexColor; outline: HexColor; outline_variant: HexColor; primary: HexColor; primary_container: HexColor; primary_fixed: HexColor; primary_fixed_dim: HexColor; scrim: HexColor; secondary: HexColor; secondary_container: HexColor; secondary_fixed: HexColor; secondary_fixed_dim: HexColor; shadow: HexColor; surface: HexColor; surface_bright: HexColor; surface_container: HexColor; surface_container_high: HexColor; surface_container_highest: HexColor; surface_container_low: HexColor; surface_container_lowest: HexColor; surface_dim: HexColor; surface_variant: HexColor; tertiary: HexColor; tertiary_container: HexColor; tertiary_fixed: HexColor; tertiary_fixed_dim: HexColor; }; export type MatugenVariation = { rosewater: HexColor; flamingo: HexColor; pink: HexColor; mauve: HexColor; red: HexColor; maroon: HexColor; peach: HexColor; yellow: HexColor; green: HexColor; teal: HexColor; sky: HexColor; sapphire: HexColor; blue: HexColor; lavender: HexColor; text: HexColor; subtext1: HexColor; subtext2: HexColor; overlay2: HexColor; overlay1: HexColor; overlay0: HexColor; surface2: HexColor; surface1: HexColor; surface0: HexColor; base2: HexColor; base: HexColor; mantle: HexColor; crust: HexColor; notifications_closer: HexColor; notifications_background: HexColor; dashboard_btn_text: HexColor; red2: HexColor; peach2: HexColor; pink2: HexColor; mantle2: HexColor; surface1_2: HexColor; surface0_2: HexColor; overlay1_2: HexColor; text2: HexColor; lavender2: HexColor; crust2: HexColor; maroon2: HexColor; mauve2: HexColor; green2: HexColor; surface2_2: HexColor; sky2: HexColor; teal2: HexColor; yellow2: HexColor; pink3: HexColor; red3: HexColor; mantle3: HexColor; surface0_3: HexColor; surface2_3: HexColor; overlay1_3: HexColor; lavender3: HexColor; mauve3: HexColor; green3: HexColor; sky3: HexColor; teal3: HexColor; yellow3: HexColor; maroon3: HexColor; crust3: HexColor; notifications_closer?: HexColor; notifications_background?: HexColor; dashboard_btn_text?: HexColor; }; export type MatugenScheme = | 'content' | 'expressive' | 'fidelity' | 'fruit-salad' | 'monochrome' | 'neutral' | 'rainbow' | 'tonal-spot'; export type MatugenVariations = | 'standard_1' | 'standard_2' | 'standard_3' | 'monochrome_1' | 'monochrome_2' | 'monochrome_3' | 'vivid_1' | 'vivid_2' | 'vivid_3'; type MatugenTheme = 'light' | 'dark'; export type ColorMapKey = keyof typeof defaultColorMap; export type ColorMapValue = (typeof defaultColorMap)[ColorMapKey]; export type ScalingPriority = 'gdk' | 'hyprland' | 'both'; ================================================ FILE: .config/ags/lib/types/popupwindow.d.ts ================================================ import { Widget } from 'types/widgets/widget'; import { WindowProps } from 'types/widgets/window'; import { Transition } from './widget'; export type PopupWindowProps = { name: string; child: Widget; layout?: Layouts; transition?: Transition | Binding; exclusivity?: Exclusivity; } & WindowProps; export type LayoutFunction = ( name: string, child: Widget, transition: Transition, ) => { center: () => Widget; top: () => Widget; 'top-right': () => Widget; 'top-center': () => Widget; 'top-left': () => Widget; 'bottom-left': () => Widget; 'bottom-center': () => Widget; 'bottom-right': () => Widget; }; export type Layouts = | 'center' | 'top' | 'top-right' | 'top-center' | 'top-left' | 'bottom-left' | 'bottom-center' | 'bottom-right'; ================================================ FILE: .config/ags/lib/types/power.d.ts ================================================ export type Action = 'sleep' | 'reboot' | 'logout' | 'shutdown'; ================================================ FILE: .config/ags/lib/types/powerprofiles.d.ts ================================================ import PowerProfiles from 'types/service/powerprofiles.js'; export type PowerProfiles = InstanceType; export type PowerProfile = 'power-saver' | 'balanced' | 'performance'; export type PowerProfileObject = { [key: string]: string; }; ================================================ FILE: .config/ags/lib/types/systray.d.ts ================================================ ================================================ FILE: .config/ags/lib/types/utils.d.ts ================================================ import { substitutes } from 'lib/icons'; import { EventArgs } from './widget'; type SubstituteKeys = keyof typeof substitutes; export type ThrottleFn = (cmd: string, args: EventArgs, fn?: (output: string) => void) => void; export type ThrottleFnCallback = ((output: string) => void) | undefined; ================================================ FILE: .config/ags/lib/types/variable.d.ts ================================================ export type Bind = OriginalBinding, unknown>; ================================================ FILE: .config/ags/lib/types/volume.d.ts ================================================ export type VolumeIcons = { [index: number]: string; }; ================================================ FILE: .config/ags/lib/types/weather.d.ts ================================================ import { weatherIcons } from 'modules/icons/weather'; export type UnitType = 'imperial' | 'metric'; export type Weather = { location: Location; current: Current; forecast: Forecast; }; export type Current = { last_updated_epoch?: number; last_updated?: string; temp_c: number; temp_f: number; is_day: number; condition: Condition; wind_mph: number; wind_kph: number; wind_degree: number; wind_dir: string; pressure_mb: number; pressure_in: number; precip_mm: number; precip_in: number; humidity: number; cloud: number; feelslike_c: number; feelslike_f: number; windchill_c: number; windchill_f: number; heatindex_c: number; heatindex_f: number; dewpoint_c: number; dewpoint_f: number; vis_km: number; vis_miles: number; uv: number; gust_mph: number; gust_kph: number; time_epoch?: number; time?: string; snow_cm?: number; will_it_rain?: number; chance_of_rain?: number; will_it_snow?: number; chance_of_snow?: number; }; export type Condition = { text: string; icon: string; code: number; }; export type Forecast = { forecastday: Forecastday[]; }; export type Forecastday = { date: string; date_epoch: number; day: Day; astro: Astro; hour: Current[]; }; export type Astro = { sunrise: string; sunset: string; moonrise: string; moonset: string; moon_phase: string; moon_illumination: number; is_moon_up: number; is_sun_up: number; }; export type Day = { maxtemp_c: number; maxtemp_f: number; mintemp_c: number; mintemp_f: number; avgtemp_c: number; avgtemp_f: number; maxwind_mph: number; maxwind_kph: number; totalprecip_mm: number; totalprecip_in: number; totalsnow_cm: number; avgvis_km: number; avgvis_miles: number; avghumidity: number; daily_will_it_rain: number; daily_chance_of_rain: number; daily_will_it_snow: number; daily_chance_of_snow: number; condition: Condition; uv: number; }; export type Location = { name: string; region: string; country: string; lat: number; lon: number; tz_id: string; localtime_epoch: number; localtime: string; }; export type TemperatureIconColorMap = { [key: number]: string; }; export type WeatherIconTitle = keyof typeof weatherIcons; export type WeatherIcon = (typeof weatherIcons)[WeatherIconTitle]; ================================================ FILE: .config/ags/lib/types/widget.d.ts ================================================ import Gtk from 'types/@girs/gtk-3.0/gtk-3.0'; import Box from 'types/widgets/box'; export type Exclusivity = 'normal' | 'ignore' | 'exclusive'; export type Anchor = 'left' | 'right' | 'top' | 'down'; export type Transition = 'none' | 'crossfade' | 'slide_right' | 'slide_left' | 'slide_up' | 'slide_down'; export type Layouts = | 'center' | 'top' | 'top-right' | 'top-center' | 'top-left' | 'bottom-left' | 'bottom-center' | 'bottom-right'; export type Attribute = unknown; export type Child = Gtk.Widget; export type GtkWidget = Gtk.Widget; export type BoxWidget = Box; export type GButton = Gtk.Button; export type GBox = Gtk.Box; export type GLabel = Gtk.Label; export type GCenterBox = Gtk.Box; export type EventHandler = (self: Self, event: Gdk.Event) => boolean | unknown; export type EventArgs = { clicked: Button; event: Gdk.Event }; ================================================ FILE: .config/ags/lib/types/workspace.d.ts ================================================ export type WorkspaceRule = { workspaceString: string; monitor: string; }; export type WorkspaceMap = { [key: string]: number[]; }; export type MonitorMap = { [key: number]: string; }; export type WorkspaceIcons = { [key: string]: string; }; export type WorkspaceIconsColored = { [key: string]: { color: string; icon: string; }; }; export type WorkspaceIconMap = WorkspaceIcons | WorkspaceIconsColored; ================================================ FILE: .config/ags/lib/utils.ts ================================================ /* eslint-disable @typescript-eslint/no-explicit-any */ import { type Application } from 'types/service/applications'; import { NotificationAnchor } from './types/options'; import { OSDAnchor } from 'lib/types/options'; import icons, { substitutes } from './icons'; import Gtk from 'gi://Gtk?version=3.0'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib?version=2.0'; import GdkPixbuf from 'gi://GdkPixbuf'; import { NotificationArgs } from 'types/utils/notify'; import { SubstituteKeys } from './types/utils'; import { Window } from 'types/@girs/gtk-3.0/gtk-3.0.cjs'; import { namedColors } from './constants/colors'; export type Binding = import('types/service').Binding; /** * @returns substitute icon || name || fallback icon */ export function icon(name: string | null, fallback = icons.missing): string { const validateSubstitute = (name: string): name is SubstituteKeys => name in substitutes; if (!name) return fallback || ''; if (GLib.file_test(name, GLib.FileTest.EXISTS)) return name; let icon: string = name; if (validateSubstitute(name)) { icon = substitutes[name]; } if (Utils.lookUpIcon(icon)) return icon; print(`no icon substitute "${icon}" for "${name}", fallback: "${fallback}"`); return fallback; } /** * @returns execAsync(["bash", "-c", cmd]) */ export async function bash(strings: TemplateStringsArray | string, ...values: unknown[]): Promise { const cmd = typeof strings === 'string' ? strings : strings.flatMap((str, i) => str + `${values[i] ?? ''}`).join(''); return Utils.execAsync(['bash', '-c', cmd]).catch((err) => { console.error(cmd, err); return ''; }); } /** * @returns execAsync(cmd) */ export async function sh(cmd: string | string[]): Promise { return Utils.execAsync(cmd).catch((err) => { console.error(typeof cmd === 'string' ? cmd : cmd.join(' '), err); return ''; }); } export function forMonitors(widget: (monitor: number) => Gtk.Window): Window[] { const n = Gdk.Display.get_default()?.get_n_monitors() || 1; return range(n, 0).flatMap(widget); } /** * @returns [start...length] */ export function range(length: number, start = 1): number[] { return Array.from({ length }, (_, i) => i + start); } /** * @returns true if all of the `bins` are found */ export function dependencies(...bins: string[]): boolean { const missing = bins.filter((bin) => Utils.exec({ cmd: `which ${bin}`, out: () => false, err: () => true, }), ); if (missing.length > 0) { console.warn(Error(`missing dependencies: ${missing.join(', ')}`)); Notify({ summary: 'Dependencies not found!', body: `The following dependencies are missing: ${missing.join(', ')}`, iconName: icons.ui.warning, timeout: 7000, }); } return missing.length === 0; } /** * run app detached */ export function launchApp(app: Application): void { const exe = app.executable .split(/\s+/) .filter((str) => !str.startsWith('%') && !str.startsWith('@')) .join(' '); bash(`${exe} &`); app.frequency += 1; } /** * to use with drag and drop */ export function createSurfaceFromWidget(widget: Gtk.Widget): GdkPixbuf.Pixbuf { // eslint-disable-next-line @typescript-eslint/no-explicit-any const cairo = imports.gi.cairo as any; const alloc = widget.get_allocation(); const surface = new cairo.ImageSurface(cairo.Format.ARGB32, alloc.width, alloc.height); const cr = new cairo.Context(surface); cr.setSourceRGBA(255, 255, 255, 0); cr.rectangle(0, 0, alloc.width, alloc.height); cr.fill(); widget.draw(cr); return surface; } /** * Ensure that the provided filepath is a valid image */ export const isAnImage = (imgFilePath: string): boolean => { try { GdkPixbuf.Pixbuf.new_from_file(imgFilePath); return true; } catch (error) { console.error(error); return false; } }; export const Notify = (notifPayload: NotificationArgs): void => { let command = 'notify-send'; command += ` "${notifPayload.summary} "`; if (notifPayload.body) command += ` "${notifPayload.body}" `; if (notifPayload.appName) command += ` -a "${notifPayload.appName}"`; if (notifPayload.iconName) command += ` -i "${notifPayload.iconName}"`; if (notifPayload.urgency) command += ` -u "${notifPayload.urgency}"`; if (notifPayload.timeout !== undefined) command += ` -t ${notifPayload.timeout}`; if (notifPayload.category) command += ` -c "${notifPayload.category}"`; if (notifPayload.transient) command += ` -e`; if (notifPayload.id !== undefined) command += ` -r ${notifPayload.id}`; Utils.execAsync(command); }; export const getPosition = (pos: NotificationAnchor | OSDAnchor): ('top' | 'bottom' | 'left' | 'right')[] => { const positionMap: { [key: string]: ('top' | 'bottom' | 'left' | 'right')[] } = { top: ['top'], 'top right': ['top', 'right'], 'top left': ['top', 'left'], bottom: ['bottom'], 'bottom right': ['bottom', 'right'], 'bottom left': ['bottom', 'left'], right: ['right'], left: ['left'], }; return positionMap[pos] || ['top']; }; export const isValidGjsColor = (color: string): boolean => { const colorLower = color.toLowerCase().trim(); if (namedColors.has(colorLower)) { return true; } const hexColorRegex = /^#(?:[a-fA-F0-9]{3,4}|[a-fA-F0-9]{6,8})$/; const rgbRegex = /^rgb\(\s*(\d{1,3}%?\s*,\s*){2}\d{1,3}%?\s*\)$/; const rgbaRegex = /^rgba\(\s*(\d{1,3}%?\s*,\s*){3}(0|1|0?\.\d+)\s*\)$/; if (hexColorRegex.test(color)) { return true; } if (rgbRegex.test(colorLower) || rgbaRegex.test(colorLower)) { return true; } return false; }; export const capitalizeFirstLetter = (str: string): string => { return str.charAt(0).toUpperCase() + str.slice(1); }; ================================================ FILE: .config/ags/lib/variables.ts ================================================ import GLib from 'gi://GLib'; import { DateTime } from 'types/@girs/glib-2.0/glib-2.0.cjs'; export const clock = Variable(GLib.DateTime.new_now_local(), { poll: [1000, (): DateTime => GLib.DateTime.new_now_local()], }); export const uptime = Variable(0, { poll: [60_000, 'cat /proc/uptime', (line): number => Number.parseInt(line.split('.')[0]) / 60], }); export const distro = { id: GLib.get_os_info('ID'), logo: GLib.get_os_info('LOGO'), }; ================================================ FILE: .config/ags/main.ts ================================================ import 'lib/session'; import 'scss/style'; import 'globals/useTheme'; import 'globals/dropdown.js'; import 'globals/utilities'; import { Bar } from 'modules/bar/Bar'; import MenuWindows from './modules/menus/main.js'; import SettingsDialog from 'widget/settings/SettingsDialog'; import Notifications from './modules/notifications/index.js'; import { forMonitors } from 'lib/utils'; import OSD from 'modules/osd/index'; App.config({ onConfigParsed: () => Utils.execAsync(`python3 ${App.configDir}/services/bluetooth.py`), windows: [...MenuWindows, Notifications(), SettingsDialog(), ...forMonitors(Bar), OSD()], closeWindowDelay: { sideright: 350, launcher: 350, bar0: 350, }, }); ================================================ FILE: .config/ags/modules/bar/Bar.ts ================================================ const hyprland = await Service.import('hyprland'); import { Menu, Workspaces, ClientTitle, Media, Notifications, Volume, Network, Bluetooth, BatteryLabel, Clock, SysTray, // Custom Modules Ram, Cpu, Storage, Netstat, KbInput, Updates, Submap, Weather, Power, } from './Exports'; import { BarItemBox as WidgetContainer } from '../shared/barItemBox.js'; import options from 'options'; import Gdk from 'gi://Gdk?version=3.0'; import Button from 'types/widgets/button.js'; import Gtk from 'types/@girs/gtk-3.0/gtk-3.0.js'; import './SideEffects'; import { WindowLayer } from 'lib/types/options.js'; import { Attribute, Child } from 'lib/types/widget.js'; import Window from 'types/widgets/window.js'; const { layouts } = options.bar; const { location } = options.theme.bar; export type BarWidget = keyof typeof widget; type Section = | 'battery' | 'dashboard' | 'workspaces' | 'windowtitle' | 'media' | 'notifications' | 'volume' | 'network' | 'bluetooth' | 'clock' | 'ram' | 'cpu' | 'storage' | 'netstat' | 'kbinput' | 'updates' | 'submap' | 'weather' | 'power' | 'systray'; type Layout = { left: Section[]; middle: Section[]; right: Section[]; }; type BarLayout = { [key: string]: Layout; }; const getLayoutForMonitor = (monitor: number, layouts: BarLayout): Layout => { const matchingKey = Object.keys(layouts).find((key) => key === monitor.toString()); const wildcard = Object.keys(layouts).find((key) => key === '*'); if (matchingKey) { return layouts[matchingKey]; } if (wildcard) { return layouts[wildcard]; } return { left: ['dashboard', 'workspaces', 'windowtitle'], middle: ['media'], right: ['volume', 'network', 'bluetooth', 'battery', 'systray', 'clock', 'notifications'], }; }; const widget = { battery: (): Button => WidgetContainer(BatteryLabel()), dashboard: (): Button => WidgetContainer(Menu()), workspaces: (monitor: number): Button => WidgetContainer(Workspaces(monitor)), windowtitle: (): Button => WidgetContainer(ClientTitle()), media: (): Button => WidgetContainer(Media()), notifications: (): Button => WidgetContainer(Notifications()), volume: (): Button => WidgetContainer(Volume()), network: (): Button => WidgetContainer(Network()), bluetooth: (): Button => WidgetContainer(Bluetooth()), clock: (): Button => WidgetContainer(Clock()), systray: (): Button => WidgetContainer(SysTray()), ram: (): Button => WidgetContainer(Ram()), cpu: (): Button => WidgetContainer(Cpu()), storage: (): Button => WidgetContainer(Storage()), netstat: (): Button => WidgetContainer(Netstat()), kbinput: (): Button => WidgetContainer(KbInput()), updates: (): Button => WidgetContainer(Updates()), submap: (): Button => WidgetContainer(Submap()), weather: (): Button => WidgetContainer(Weather()), power: (): Button => WidgetContainer(Power()), }; type GdkMonitors = { [key: string]: { key: string; model: string; used: boolean; }; }; function getGdkMonitors(): GdkMonitors { const display = Gdk.Display.get_default(); if (display === null) { console.error('Failed to get Gdk display.'); return {}; } const numGdkMonitors = display.get_n_monitors(); const gdkMonitors: GdkMonitors = {}; for (let i = 0; i < numGdkMonitors; i++) { const curMonitor = display.get_monitor(i); if (curMonitor === null) { console.warn(`Monitor at index ${i} is null.`); continue; } const model = curMonitor.get_model() || ''; const geometry = curMonitor.get_geometry(); const scaleFactor = curMonitor.get_scale_factor(); const key = `${model}_${geometry.width}x${geometry.height}_${scaleFactor}`; gdkMonitors[i] = { key, model, used: false }; } return gdkMonitors; } /** * NOTE: Some more funky stuff being done by GDK. * We render windows/bar based on the monitor ID. So if you have 3 monitors, then your * monitor IDs will be [0, 1, 2]. Hyprland will NEVER change what ID belongs to what monitor. * * So if hyprland determines id 0 = DP-1, even after you unplug, shut off or restart your monitor, * the id 0 will ALWAYS be DP-1. * * However, GDK (the righteous genius that it is) will change the order of ID anytime your monitor * setup is changed. So if you unplug your monitor and plug it back it, it now becomes the last id. * So if DP-1 was id 0 and you unplugged it, it will reconfigure to id 2. This sucks because now * there's a mismtach between what GDK determines the monitor is at id 2 and what Hyprland determines * is at id 2. * * So for that reason, we need to redirect the input `monitor` that the Bar module takes in, to the * proper Hyprland monitor. So when monitor id 0 comes in, we need to find what the id of that monitor * is being determined as by Hyprland so the bars show up on the right monitors. * * Since GTK3 doesn't contain connection names and only monitor models, we have to make the best guess * in the case that there are multiple models in the same resolution with the same scale. We find the * 'right' monitor by checking if the model matches along with the resolution and scale. If monitor at * ID 0 for GDK is being reported as 'MSI MAG271CQR' we find the same model in the Hyprland monitor list * and check if the resolution and scaling is the same... if it is then we determine it's a match. * * The edge-case that we just can't handle is if you have the same monitors in the same resolution at the same * scale. So if you've got 2 'MSI MAG271CQR' monitors at 2560x1440 at scale 1, then we just match the first * monitor in the list as the first match and then the second 'MSI MAG271CQR' as a match in the 2nd iteration. * You may have the bar showing up on the wrong one in this case because we don't know what the connector id * is of either of these monitors (DP-1, DP-2) which are unique values - as these are only in GTK4. * * Keep in mind though, this is ONLY an issue if you change your monitor setup by plugging in a new one, restarting * an existing one or shutting it off. * * If your monitors aren't changed in the current session you're in then none of this safeguarding is relevant. * * Fun stuff really... :facepalm: */ const gdkMonitorIdToHyprlandId = (monitor: number, usedHyprlandMonitors: Set): number => { const gdkMonitors = getGdkMonitors(); if (Object.keys(gdkMonitors).length === 0) { console.error('No GDK monitors were found.'); return monitor; } // Get the GDK monitor for the given monitor index const gdkMonitor = gdkMonitors[monitor]; // First pass: Strict matching including the monitor index (i.e., hypMon.id === monitor + resolution+scale criteria) const directMatch = hyprland.monitors.find((hypMon) => { const hyprlandKey = `${hypMon.model}_${hypMon.width}x${hypMon.height}_${hypMon.scale}`; return gdkMonitor.key.startsWith(hyprlandKey) && !usedHyprlandMonitors.has(hypMon.id) && hypMon.id === monitor; }); if (directMatch) { usedHyprlandMonitors.add(directMatch.id); return directMatch.id; } // Second pass: Relaxed matching without considering the monitor index const hyprlandMonitor = hyprland.monitors.find((hypMon) => { const hyprlandKey = `${hypMon.model}_${hypMon.width}x${hypMon.height}_${hypMon.scale}`; return gdkMonitor.key.startsWith(hyprlandKey) && !usedHyprlandMonitors.has(hypMon.id); }); if (hyprlandMonitor) { usedHyprlandMonitors.add(hyprlandMonitor.id); return hyprlandMonitor.id; } // Fallback: Find the first available monitor ID that hasn't been used const fallbackMonitor = hyprland.monitors.find((hypMon) => !usedHyprlandMonitors.has(hypMon.id)); if (fallbackMonitor) { usedHyprlandMonitors.add(fallbackMonitor.id); return fallbackMonitor.id; } // Ensure we return a valid monitor ID that actually exists for (let i = 0; i < hyprland.monitors.length; i++) { if (!usedHyprlandMonitors.has(i)) { usedHyprlandMonitors.add(i); return i; } } // As a last resort, return the original monitor index if no unique monitor can be found console.warn(`Returning original monitor index as a last resort: ${monitor}`); return monitor; }; export const Bar = (() => { const usedHyprlandMonitors = new Set(); return (monitor: number): Window => { const hyprlandMonitor = gdkMonitorIdToHyprlandId(monitor, usedHyprlandMonitors); return Widget.Window({ name: `bar-${hyprlandMonitor}`, class_name: 'bar', monitor, visible: true, anchor: location.bind('value').as((ln) => [ln, 'left', 'right']), exclusivity: 'exclusive', layer: Utils.merge( [options.theme.bar.layer.bind('value'), options.tear.bind('value')], (barLayer: WindowLayer, tear: boolean) => { if (tear && barLayer === 'overlay') { return 'top'; } return barLayer; }, ), child: Widget.Box({ class_name: 'bar-panel-container', child: Widget.CenterBox({ class_name: 'bar-panel', css: 'padding: 1px', startWidget: Widget.Box({ class_name: 'box-left', hexpand: true, setup: (self) => { self.hook(layouts, (self) => { const foundLayout = getLayoutForMonitor(hyprlandMonitor, layouts.value as BarLayout); self.children = foundLayout.left .filter((mod) => Object.keys(widget).includes(mod)) .map((w) => widget[w](hyprlandMonitor) as Button); }); }, }), centerWidget: Widget.Box({ class_name: 'box-center', hpack: 'center', setup: (self) => { self.hook(layouts, (self) => { const foundLayout = getLayoutForMonitor(hyprlandMonitor, layouts.value as BarLayout); self.children = foundLayout.middle .filter((mod) => Object.keys(widget).includes(mod)) .map((w) => widget[w](hyprlandMonitor) as Button); }); }, }), endWidget: Widget.Box({ class_name: 'box-right', hpack: 'end', setup: (self) => { self.hook(layouts, (self) => { const foundLayout = getLayoutForMonitor(hyprlandMonitor, layouts.value as BarLayout); self.children = foundLayout.right .filter((mod) => Object.keys(widget).includes(mod)) .map((w) => widget[w](hyprlandMonitor) as Button); }); }, }), }), }), }); }; })(); ================================================ FILE: .config/ags/modules/bar/Exports.ts ================================================ import { Menu } from './menu/index'; import { Workspaces } from './workspaces/index'; import { ClientTitle } from './window_title/index'; import { Media } from './media/index'; import { Notifications } from './notifications/index'; import { Volume } from './volume/index'; import { Network } from './network/index'; import { Bluetooth } from './bluetooth/index'; import { BatteryLabel } from './battery/index'; import { Clock } from './clock/index'; import { SysTray } from './systray/index'; // Custom Modules import { Ram } from '../../customModules/ram/index'; import { Cpu } from '../../customModules/cpu/index'; import { Storage } from 'customModules/storage/index'; import { Netstat } from 'customModules/netstat/index'; import { KbInput } from 'customModules/kblayout/index'; import { Updates } from 'customModules/updates/index'; import { Submap } from 'customModules/submap/index'; import { Weather } from 'customModules/weather/index'; import { Power } from 'customModules/power/index'; export { Menu, Workspaces, ClientTitle, Media, Notifications, Volume, Network, Bluetooth, BatteryLabel, Clock, SysTray, // Custom Modules Ram, Cpu, Storage, Netstat, KbInput, Updates, Submap, Weather, Power, }; ================================================ FILE: .config/ags/modules/bar/SideEffects.ts ================================================ import options from 'options'; const { showIcon, showTime } = options.bar.clock; showIcon.connect('changed', () => { if (!showTime.value && !showIcon.value) { showTime.value = true; } }); showTime.connect('changed', () => { if (!showTime.value && !showIcon.value) { showIcon.value = true; } }); const { label, icon } = options.bar.windowtitle; label.connect('changed', () => { if (!label.value && !icon.value) { icon.value = true; } }); icon.connect('changed', () => { if (!label.value && !icon.value) { label.value = true; } }); ================================================ FILE: .config/ags/modules/bar/battery/index.ts ================================================ const battery = await Service.import('battery'); import Gdk from 'gi://Gdk?version=3.0'; import { openMenu } from '../utils.js'; import options from 'options'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { label: show_label, rightClick, middleClick, scrollUp, scrollDown, hideLabelWhenFull } = options.bar.battery; const BatteryLabel = (): BarBoxChild => { const isVis = Variable(battery.available); const batIcon = Utils.merge( [battery.bind('percent'), battery.bind('charging'), battery.bind('charged')], (batPercent: number, batCharging, batCharged) => { if (batCharged) return `battery-level-100-charged-symbolic`; else return `battery-level-${Math.floor(batPercent / 10) * 10}${batCharging ? '-charging' : ''}-symbolic`; }, ); battery.connect('changed', ({ available }) => { isVis.value = available; }); const formatTime = (seconds: number): Record => { const hours = Math.floor(seconds / 3600); const minutes = Math.floor((seconds % 3600) / 60); return { hours, minutes }; }; const generateTooltip = (timeSeconds: number, isCharging: boolean, isCharged: boolean): string => { if (isCharged) { return 'Fully Charged!!!'; } const { hours, minutes } = formatTime(timeSeconds); if (isCharging) { return `${hours} hours ${minutes} minutes until full`; } else { return `${hours} hours ${minutes} minutes left`; } }; return { component: Widget.Box({ className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), show_label.bind('value')], (style, showLabel) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `battery-container ${styleMap[style]} ${!showLabel ? 'no-label' : ''}`; }, ), visible: battery.bind('available'), tooltip_text: battery.bind('time_remaining').as((t) => t.toString()), children: Utils.merge( [ battery.bind('available'), show_label.bind('value'), battery.bind('charged'), hideLabelWhenFull.bind('value'), ], (batAvail, showLabel, isCharged, hideWhenFull) => { if (batAvail && showLabel) { return [ Widget.Icon({ class_name: 'bar-button-icon battery', icon: batIcon, }), ...(hideWhenFull && isCharged ? [] : [ Widget.Label({ class_name: 'bar-button-label battery', label: battery.bind('percent').as((p) => `${Math.floor(p)}%`), }), ]), ]; } else if (batAvail && !showLabel) { return [ Widget.Icon({ class_name: 'bar-button-icon battery', icon: batIcon, }), ]; } else { return []; } }, ), setup: (self) => { self.hook(battery, () => { if (battery.available) { self.tooltip_text = generateTooltip(battery.time_remaining, battery.charging, battery.charged); } }); }, }), isVis, boxClass: 'battery', props: { setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, onPrimaryClick: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'energymenu'); }, }, }; }; export { BatteryLabel }; ================================================ FILE: .config/ags/modules/bar/bluetooth/index.ts ================================================ const bluetooth = await Service.import('bluetooth'); import Gdk from 'gi://Gdk?version=3.0'; import options from 'options'; import { openMenu } from '../utils.js'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { label, rightClick, middleClick, scrollDown, scrollUp } = options.bar.bluetooth; const Bluetooth = (): BarBoxChild => { const btIcon = Widget.Label({ label: bluetooth.bind('enabled').as((v) => (v ? '󰂯' : '󰂲')), class_name: 'bar-button-icon bluetooth txt-icon bar', }); const btText = Widget.Label({ label: Utils.merge([bluetooth.bind('enabled'), bluetooth.bind('connected_devices')], (btEnabled, btDevices) => { return btEnabled && btDevices.length ? ` Connected (${btDevices.length})` : btEnabled ? 'On' : 'Off'; }), class_name: 'bar-button-label bluetooth', }); return { component: Widget.Box({ className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), label.bind('value')], (style, showLabel) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `bluetooth-container ${styleMap[style]} ${!showLabel ? 'no-label' : ''}`; }, ), children: options.bar.bluetooth.label.bind('value').as((showLabel) => { if (showLabel) { return [btIcon, btText]; } return [btIcon]; }), }), isVisible: true, boxClass: 'bluetooth', props: { setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, on_primary_click: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'bluetoothmenu'); }, }, }; }; export { Bluetooth }; ================================================ FILE: .config/ags/modules/bar/clock/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; import GLib from 'gi://GLib'; import { openMenu } from '../utils.js'; import options from 'options'; import { DateTime } from 'types/@girs/glib-2.0/glib-2.0.cjs'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { format, icon, showIcon, showTime, rightClick, middleClick, scrollUp, scrollDown } = options.bar.clock; const { style } = options.theme.bar.buttons; const date = Variable(GLib.DateTime.new_now_local(), { poll: [1000, (): DateTime => GLib.DateTime.new_now_local()], }); const time = Utils.derive([date, format], (c, f) => c.format(f) || ''); const Clock = (): BarBoxChild => { const clockTime = Widget.Label({ class_name: 'bar-button-label clock bar', label: time.bind(), }); const clockIcon = Widget.Label({ label: icon.bind('value'), class_name: 'bar-button-icon clock txt-icon bar', }); return { component: Widget.Box({ className: Utils.merge( [style.bind('value'), showIcon.bind('value'), showTime.bind('value')], (btnStyle, shwIcn, shwLbl) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `clock-container ${styleMap[btnStyle]} ${!shwLbl ? 'no-label' : ''} ${!shwIcn ? 'no-icon' : ''}`; }, ), children: Utils.merge([showIcon.bind('value'), showTime.bind('value')], (shIcn, shTm) => { if (shIcn && !shTm) { return [clockIcon]; } else if (shTm && !shIcn) { return [clockTime]; } return [clockIcon, clockTime]; }), }), isVisible: true, boxClass: 'clock', props: { setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, on_primary_click: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'calendarmenu'); }, }, }; }; export { Clock }; ================================================ FILE: .config/ags/modules/bar/media/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; const mpris = await Service.import('mpris'); import { openMenu } from '../utils.js'; import options from 'options'; import { getCurrentPlayer } from 'lib/shared/media.js'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand } from 'customModules/utils.js'; const { show_artist, truncation, truncation_size, show_label, show_active_only, rightClick, middleClick } = options.bar.media; const Media = (): BarBoxChild => { const activePlayer = Variable(mpris.players[0]); const isVis = Variable(!show_active_only.value); show_active_only.connect('changed', () => { isVis.value = !show_active_only.value || mpris.players.length > 0; }); mpris.connect('changed', () => { const curPlayer = getCurrentPlayer(activePlayer.value); activePlayer.value = curPlayer; isVis.value = !show_active_only.value || mpris.players.length > 0; }); const getIconForPlayer = (playerName: string): string => { const windowTitleMap = [ ['Firefox', '󰈹'], ['Microsoft Edge', '󰇩'], ['Discord', ''], ['Plex', '󰚺'], ['Spotify', '󰓇'], ['(.*)', '󰝚'], ]; const foundMatch = windowTitleMap.find((wt) => RegExp(wt[0], 'i').test(playerName)); return foundMatch ? foundMatch[1] : '󰝚'; }; const songIcon = Variable(''); const mediaLabel = Utils.watch('Media', [mpris, show_artist, truncation, truncation_size, show_label], () => { if (activePlayer.value && show_label.value) { const { track_title, identity, track_artists } = activePlayer.value; songIcon.value = getIconForPlayer(identity); const trackArtist = show_artist.value ? ` - ${track_artists.join(', ')}` : ``; const truncatedLabel = truncation.value ? `${track_title + trackArtist}`.substring(0, truncation_size.value) : `${track_title + trackArtist}`; return track_title.length === 0 ? `No media playing...` : truncatedLabel.length < truncation_size.value || !truncation.value ? `${truncatedLabel}` : `${truncatedLabel.substring(0, truncatedLabel.length - 3)}...`; } else { songIcon.value = getIconForPlayer(activePlayer.value?.identity || ''); return `Media`; } }); return { component: Widget.Box({ visible: false, child: Widget.Box({ className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), show_label.bind('value')], (style) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `media-container ${styleMap[style]}`; }, ), child: Widget.Box({ children: [ Widget.Label({ class_name: 'bar-button-icon media txt-icon bar', label: songIcon.bind('value').as((v) => v || '󰝚'), }), Widget.Label({ class_name: 'bar-button-label media', label: mediaLabel, }), ], }), }), }), isVis, boxClass: 'media', props: { on_scroll_up: () => activePlayer.value?.next(), on_scroll_down: () => activePlayer.value?.previous(), on_primary_click: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'mediamenu'); }, onSecondaryClick: (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }, onMiddleClick: (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }, }, }; }; export { Media }; ================================================ FILE: .config/ags/modules/bar/menu/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; import { openMenu } from '../utils.js'; import options from 'options'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { rightClick, middleClick, scrollUp, scrollDown } = options.bar.launcher; const Menu = (): BarBoxChild => { return { component: Widget.Box({ className: Utils.merge([options.theme.bar.buttons.style.bind('value')], (style) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `dashboard ${styleMap[style]}`; }), child: Widget.Label({ class_name: 'bar-menu_label bar-button_icon txt-icon bar', label: options.bar.launcher.icon.bind('value'), }), }), isVisible: true, boxClass: 'dashboard', props: { on_primary_click: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'dashboardmenu'); }, setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, }, }; }; export { Menu }; ================================================ FILE: .config/ags/modules/bar/network/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; const network = await Service.import('network'); import options from 'options'; import { openMenu } from '../utils.js'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { label: networkLabel, truncation, truncation_size, rightClick, middleClick, scrollDown, scrollUp, } = options.bar.network; const Network = (): BarBoxChild => { return { component: Widget.Box({ vpack: 'fill', vexpand: true, className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), networkLabel.bind('value')], (style, showLabel) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `network-container ${styleMap[style]}${!showLabel ? ' no-label' : ''}`; }, ), children: [ Widget.Icon({ class_name: 'bar-button-icon network-icon', icon: Utils.merge( [network.bind('primary'), network.bind('wifi'), network.bind('wired')], (pmry, wfi, wrd) => { if (pmry === 'wired') { return wrd.icon_name; } return wfi.icon_name; }, ), }), Widget.Box({ child: Utils.merge( [ network.bind('primary'), network.bind('wifi'), networkLabel.bind('value'), truncation.bind('value'), truncation_size.bind('value'), ], (pmry, wfi, showLbl, trunc, tSize) => { if (!showLbl) { return Widget.Box(); } if (pmry === 'wired') { return Widget.Label({ class_name: 'bar-button-label network-label', label: 'Wired'.substring(0, tSize), }); } return Widget.Label({ class_name: 'bar-button-label network-label', label: wfi.ssid ? `${trunc ? wfi.ssid.substring(0, tSize) : wfi.ssid}` : '--', }); }, ), }), ], }), isVisible: true, boxClass: 'network', props: { on_primary_click: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'networkmenu'); }, setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, }, }; }; export { Network }; ================================================ FILE: .config/ags/modules/bar/notifications/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; import { openMenu } from '../utils.js'; import options from 'options'; import { filterNotifications } from 'lib/shared/notifications.js'; import { BarBoxChild } from 'lib/types/bar.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { show_total, rightClick, middleClick, scrollUp, scrollDown, hideCountWhenZero } = options.bar.notifications; const { ignore } = options.notifications; const notifs = await Service.import('notifications'); export const Notifications = (): BarBoxChild => { return { component: Widget.Box({ hpack: 'start', className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), show_total.bind('value')], (style, showTotal) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `notifications-container ${styleMap[style]} ${!showTotal ? 'no-label' : ''}`; }, ), child: Widget.Box({ hpack: 'start', class_name: 'bar-notifications', children: Utils.merge( [ notifs.bind('notifications'), notifs.bind('dnd'), show_total.bind('value'), ignore.bind('value'), hideCountWhenZero.bind('value'), ], (notif, dnd, showTotal, ignoredNotifs, hideCountForZero) => { const filteredNotifications = filterNotifications(notif, ignoredNotifs); const notifIcon = Widget.Label({ hpack: 'center', class_name: 'bar-button-icon notifications txt-icon bar', label: dnd ? '󰂛' : filteredNotifications.length > 0 ? '󱅫' : '󰂚', }); const notifLabel = Widget.Label({ hpack: 'center', class_name: 'bar-button-label notifications', label: filteredNotifications.length.toString(), }); if (showTotal) { if (hideCountForZero && filteredNotifications.length === 0) { return [notifIcon]; } return [notifIcon, notifLabel]; } return [notifIcon]; }, ), }), }), isVisible: true, boxClass: 'notifications', props: { on_primary_click: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'notificationsmenu'); }, setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, }, }; }; ================================================ FILE: .config/ags/modules/bar/systray/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; import { BarBoxChild, SelfButton } from 'lib/types/bar'; import { Notify } from 'lib/utils'; const systemtray = await Service.import('systemtray'); import options from 'options'; const { ignore } = options.bar.systray; const SysTray = (): BarBoxChild => { const isVis = Variable(false); const items = Utils.merge([systemtray.bind('items'), ignore.bind('value')], (items, ignored) => { const filteredTray = items.filter(({ id }) => !ignored.includes(id)); isVis.value = filteredTray.length > 0; return filteredTray.map((item) => { return Widget.Button({ cursor: 'pointer', child: Widget.Icon({ class_name: 'systray-icon', icon: item.bind('icon'), }), on_primary_click: (_: SelfButton, event: Gdk.Event) => item.activate(event), on_secondary_click: (_, event) => item.openMenu(event), onMiddleClick: () => Notify({ summary: 'App Name', body: item.id }), tooltip_markup: item.bind('tooltip_markup'), }); }); }); return { component: Widget.Box({ class_name: 'systray-container', children: items, }), isVisible: true, boxClass: 'systray', isVis, props: {}, }; }; export { SysTray }; ================================================ FILE: .config/ags/modules/bar/utils.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; import { Attribute, Child } from 'lib/types/widget'; import { calculateMenuPosition } from 'modules/menus/shared/dropdown/locationHandler/index'; import Button from 'types/widgets/button'; export const closeAllMenus = (): void => { const menuWindows = App.windows .filter((w) => { if (w.name) { return /.*menu/.test(w.name); } return false; }) .map((w) => w.name); menuWindows.forEach((w) => { if (w) { App.closeWindow(w); } }); }; export const openMenu = async (clicked: Button, event: Gdk.Event, window: string): Promise => { /* * NOTE: We have to make some adjustments so the menu pops up relatively * to the center of the button clicked. We don't want the menu to spawn * offcenter depending on which edge of the button you click on. * ------------- * To fix this, we take the x coordinate of the click within the button's bounds. * If you click the left edge of a 100 width button, then the x axis will be 0 * and if you click the right edge then the x axis will be 100. * ------------- * Then we divide the width of the button by 2 to get the center of the button and then get * the offset by subtracting the clicked x coordinate. Then we can apply that offset * to the x coordinate of the click relative to the screen to get the center of the * icon click. */ const middleOfButton = Math.floor(clicked.get_allocated_width() / 2); const xAxisOfButtonClick = clicked.get_pointer()[0]; const middleOffset = middleOfButton - xAxisOfButtonClick; const clickPos = event.get_root_coords(); const adjustedXCoord = clickPos[1] + middleOffset; const coords = [adjustedXCoord, clickPos[2]]; try { await calculateMenuPosition(coords, window); } catch (error) { console.error(`Error calculating menu position: ${error}`); } closeAllMenus(); App.toggleWindow(window); }; ================================================ FILE: .config/ags/modules/bar/volume/index.ts ================================================ import Gdk from 'gi://Gdk?version=3.0'; const audio = await Service.import('audio'); import { openMenu } from '../utils.js'; import options from 'options'; import { Binding } from 'lib/utils.js'; import { VolumeIcons } from 'lib/types/volume.js'; import { BarBoxChild } from 'lib/types/bar.js'; import { Bind } from 'lib/types/variable.js'; import Button from 'types/widgets/button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils.js'; const { rightClick, middleClick, scrollUp, scrollDown } = options.bar.volume; const Volume = (): BarBoxChild => { const icons: VolumeIcons = { 101: '󰕾', 66: '󰕾', 34: '󰖀', 1: '󰕿', 0: '󰝟', }; const getIcon = (): Bind => { const icon: Binding = Utils.merge( [audio.speaker.bind('is_muted'), audio.speaker.bind('volume')], (isMuted, vol) => { if (isMuted) return 0; const foundVol = [101, 66, 34, 1, 0].find((threshold) => threshold <= vol * 100); if (foundVol !== undefined) { return foundVol; } return 101; }, ); return icon.as((i: number) => (i !== undefined ? icons[i] : icons[101])); }; const volIcn = Widget.Label({ hexpand: true, label: getIcon(), class_name: 'bar-button-icon volume txt-icon bar', }); const volPct = Widget.Label({ hexpand: true, label: audio.speaker.bind('volume').as((v) => `${Math.round(v * 100)}%`), class_name: 'bar-button-label volume', }); return { component: Widget.Box({ hexpand: true, vexpand: true, className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), options.bar.volume.label.bind('value')], (style, showLabel) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `volume-container ${styleMap[style]} ${!showLabel ? 'no-label' : ''}`; }, ), children: options.bar.volume.label.bind('value').as((showLabel) => { if (showLabel) { return [volIcn, volPct]; } return [volIcn]; }), }), isVisible: true, boxClass: 'volume', props: { onPrimaryClick: (clicked: Button, event: Gdk.Event): void => { openMenu(clicked, event, 'audiomenu'); }, setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, }, }; }; export { Volume }; ================================================ FILE: .config/ags/modules/bar/window_title/index.ts ================================================ const hyprland = await Service.import('hyprland'); import { BarBoxChild } from 'lib/types/bar'; import options from 'options'; import { Attribute, Child } from 'lib/types/widget'; import { ActiveClient } from 'types/service/hyprland'; import Label from 'types/widgets/label'; import { runAsyncCommand, throttledScrollHandler } from 'customModules/utils'; import Button from 'types/widgets/button'; import Gdk from 'types/@girs/gdk-3.0/gdk-3.0'; const { leftClick, rightClick, middleClick, scrollDown, scrollUp } = options.bar.windowtitle; const filterTitle = (windowtitle: ActiveClient): Record => { const windowTitleMap = [ // user provided values ...options.bar.windowtitle.title_map.value, // Original Entries ['kitty', '󰄛', 'Kitty Terminal'], ['firefox', '󰈹', 'Firefox'], ['microsoft-edge', '󰇩', 'Edge'], ['discord', '', 'Discord'], ['vesktop', '', 'Vesktop'], ['org.kde.dolphin', '', 'Dolphin'], ['plex', '󰚺', 'Plex'], ['steam', '', 'Steam'], ['spotify', '󰓇', 'Spotify'], ['ristretto', '󰋩', 'Ristretto'], ['obsidian', '󱓧', 'Obsidian'], // Browsers ['google-chrome', '', 'Google Chrome'], ['brave-browser', '󰖟', 'Brave Browser'], ['chromium', '', 'Chromium'], ['opera', '', 'Opera'], ['vivaldi', '󰖟', 'Vivaldi'], ['waterfox', '󰖟', 'Waterfox'], ['thorium', '󰖟', 'Waterfox'], ['tor-browser', '', 'Tor Browser'], ['floorp', '󰈹', 'Floorp'], // Terminals ['gnome-terminal', '', 'GNOME Terminal'], ['konsole', '', 'Konsole'], ['alacritty', '', 'Alacritty'], ['wezterm', '', 'Wezterm'], ['foot', '󰽒', 'Foot Terminal'], ['tilix', '', 'Tilix'], ['xterm', '', 'XTerm'], ['urxvt', '', 'URxvt'], ['st', '', 'st Terminal'], // Development Tools ['code', '󰨞', 'Visual Studio Code'], ['vscode', '󰨞', 'VS Code'], ['sublime-text', '', 'Sublime Text'], ['atom', '', 'Atom'], ['android-studio', '󰀴', 'Android Studio'], ['intellij-idea', '', 'IntelliJ IDEA'], ['pycharm', '󱃖', 'PyCharm'], ['webstorm', '󱃖', 'WebStorm'], ['phpstorm', '󱃖', 'PhpStorm'], ['eclipse', '', 'Eclipse'], ['netbeans', '', 'NetBeans'], ['docker', '', 'Docker'], ['vim', '', 'Vim'], ['neovim', '', 'Neovim'], ['neovide', '', 'Neovide'], ['emacs', '', 'Emacs'], // Communication Tools ['slack', '󰒱', 'Slack'], ['telegram-desktop', '', 'Telegram'], ['org.telegram.desktop', '', 'Telegram'], ['whatsapp', '󰖣', 'WhatsApp'], ['teams', '󰊻', 'Microsoft Teams'], ['skype', '󰒯', 'Skype'], ['thunderbird', '', 'Thunderbird'], // File Managers ['nautilus', '󰝰', 'Files (Nautilus)'], ['thunar', '󰝰', 'Thunar'], ['pcmanfm', '󰝰', 'PCManFM'], ['nemo', '󰝰', 'Nemo'], ['ranger', '󰝰', 'Ranger'], ['doublecmd', '󰝰', 'Double Commander'], ['krusader', '󰝰', 'Krusader'], // Media Players ['vlc', '󰕼', 'VLC Media Player'], ['mpv', '', 'MPV'], ['rhythmbox', '󰓃', 'Rhythmbox'], // Graphics Tools ['gimp', '', 'GIMP'], ['inkscape', '', 'Inkscape'], ['krita', '', 'Krita'], ['blender', '󰂫', 'Blender'], // Video Editing ['kdenlive', '', 'Kdenlive'], // Games and Gaming Platforms ['lutris', '󰺵', 'Lutris'], ['heroic', '󰺵', 'Heroic Games Launcher'], ['minecraft', '󰍳', 'Minecraft'], ['csgo', '󰺵', 'CS:GO'], ['dota2', '󰺵', 'Dota 2'], // Office and Productivity ['evernote', '', 'Evernote'], ['sioyek', '', 'Sioyek'], // Cloud Services and Sync ['dropbox', '󰇣', 'Dropbox'], // Desktop ['^$', '󰇄', 'Desktop'], // Fallback icon ['(.+)', '󰣆', `${windowtitle.class.charAt(0).toUpperCase() + windowtitle.class.slice(1)}`], ]; const foundMatch = windowTitleMap.find((wt) => RegExp(wt[0]).test(windowtitle.class.toLowerCase())); // return the default icon if no match is found or // if the array element matched is not of size 3 if (!foundMatch || foundMatch.length !== 3) { return { icon: windowTitleMap[windowTitleMap.length - 1][1], label: windowTitleMap[windowTitleMap.length - 1][2], }; } return { icon: foundMatch[1], label: foundMatch[2], }; }; const getTitle = (client: ActiveClient, useCustomTitle: boolean, useClassName: boolean): string => { if (useCustomTitle) return filterTitle(client).label; if (useClassName) return client.class; const title = client.title; // If the title is empty or only filled with spaces, fallback to the class name if (title.length === 0 || title.match(/^ *$/)) { return client.class; } return title; }; const truncateTitle = (title: string, max_size: number): string => { if (max_size > 0 && title.length > max_size) { return title.substring(0, max_size).trim() + '...'; } return title; }; const ClientTitle = (): BarBoxChild => { const { custom_title, class_name, label, icon, truncation, truncation_size } = options.bar.windowtitle; return { component: Widget.Box({ className: Utils.merge( [options.theme.bar.buttons.style.bind('value'), label.bind('value')], (style, showLabel) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style3', }; return `windowtitle-container ${styleMap[style]} ${!showLabel ? 'no-label' : ''}`; }, ), children: Utils.merge( [ hyprland.active.bind('client'), custom_title.bind('value'), class_name.bind('value'), label.bind('value'), icon.bind('value'), truncation.bind('value'), truncation_size.bind('value'), ], (client, useCustomTitle, useClassName, showLabel, showIcon, truncate, truncationSize) => { const children: Label[] = []; if (showIcon) { children.push( Widget.Label({ class_name: 'bar-button-icon windowtitle txt-icon bar', label: filterTitle(client).icon, }), ); } if (showLabel) { children.push( Widget.Label({ class_name: `bar-button-label windowtitle ${showIcon ? '' : 'no-icon'}`, label: truncateTitle( getTitle(client, useCustomTitle, useClassName), truncate ? truncationSize : -1, ), }), ); } return children; }, ), }), isVisible: true, boxClass: 'windowtitle', props: { setup: (self: Button): void => { self.hook(options.bar.scrollSpeed, () => { const throttledHandler = throttledScrollHandler(options.bar.scrollSpeed.value); self.on_primary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(leftClick.value, { clicked, event }); }; self.on_secondary_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(rightClick.value, { clicked, event }); }; self.on_middle_click = (clicked: Button, event: Gdk.Event): void => { runAsyncCommand(middleClick.value, { clicked, event }); }; self.on_scroll_up = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollUp.value, { clicked, event }); }; self.on_scroll_down = (clicked: Button, event: Gdk.Event): void => { throttledHandler(scrollDown.value, { clicked, event }); }; }); }, }, }; }; export { ClientTitle }; ================================================ FILE: .config/ags/modules/bar/workspaces/helpers.ts ================================================ const hyprland = await Service.import('hyprland'); import { MonitorMap, WorkspaceMap, WorkspaceRule } from 'lib/types/workspace'; import options from 'options'; import { Variable } from 'types/variable'; const { workspaces, reverse_scroll, ignored } = options.bar.workspaces; export const getWorkspacesForMonitor = (curWs: number, wsRules: WorkspaceMap, monitor: number): boolean => { if (!wsRules || !Object.keys(wsRules).length) { return true; } const monitorMap: MonitorMap = {}; const workspaceMonitorList = hyprland?.workspaces?.map((m) => ({ id: m.monitorID, name: m.monitor })); const monitors = [ ...new Map([...workspaceMonitorList, ...hyprland.monitors].map((item) => [item.id, item])).values(), ]; monitors.forEach((m) => (monitorMap[m.id] = m.name)); const currentMonitorName = monitorMap[monitor]; const monitorWSRules = wsRules[currentMonitorName]; if (monitorWSRules === undefined) { return true; } return monitorWSRules.includes(curWs); }; export const getWorkspaceRules = (): WorkspaceMap => { try { const rules = Utils.exec('hyprctl workspacerules -j'); const workspaceRules: WorkspaceMap = {}; JSON.parse(rules).forEach((rule: WorkspaceRule) => { const workspaceNum = parseInt(rule.workspaceString, 10); if (isNaN(workspaceNum)) { return; } if (Object.hasOwnProperty.call(workspaceRules, rule.monitor)) { workspaceRules[rule.monitor].push(workspaceNum); } else { workspaceRules[rule.monitor] = [workspaceNum]; } }); return workspaceRules; } catch (err) { console.error(err); return {}; } }; export const getCurrentMonitorWorkspaces = (monitor: number): number[] => { if (hyprland.monitors.length === 1) { return Array.from({ length: workspaces.value }, (_, i) => i + 1); } const monitorWorkspaces = getWorkspaceRules(); const monitorMap: MonitorMap = {}; hyprland.monitors.forEach((m) => (monitorMap[m.id] = m.name)); const currentMonitorName = monitorMap[monitor]; return monitorWorkspaces[currentMonitorName]; }; type ThrottledScrollHandlers = { throttledScrollUp: () => void; throttledScrollDown: () => void; }; export const isWorkspaceIgnored = (ignoredWorkspaces: Variable, workspaceNumber: number): boolean => { if (ignoredWorkspaces.value === '') return false; const ignoredWsRegex = new RegExp(ignoredWorkspaces.value); return ignoredWsRegex.test(workspaceNumber.toString()); }; const navigateWorkspace = ( direction: 'next' | 'prev', currentMonitorWorkspaces: Variable, activeWorkspaces: boolean, ignoredWorkspaces: Variable, ): void => { const workspacesList = activeWorkspaces ? hyprland.workspaces.filter((ws) => hyprland.active.monitor.id === ws.monitorID).map((ws) => ws.id) : currentMonitorWorkspaces.value || Array.from({ length: workspaces.value }, (_, i) => i + 1); if (workspacesList.length === 0) return; const currentIndex = workspacesList.indexOf(hyprland.active.workspace.id); const step = direction === 'next' ? 1 : -1; let newIndex = (currentIndex + step + workspacesList.length) % workspacesList.length; let attempts = 0; while (attempts < workspacesList.length) { const targetWS = workspacesList[newIndex]; if (!isWorkspaceIgnored(ignoredWorkspaces, targetWS)) { hyprland.messageAsync(`dispatch workspace ${targetWS}`); return; } newIndex = (newIndex + step + workspacesList.length) % workspacesList.length; attempts++; } }; export const goToNextWS = ( currentMonitorWorkspaces: Variable, activeWorkspaces: boolean, ignoredWorkspaces: Variable, ): void => { navigateWorkspace('next', currentMonitorWorkspaces, activeWorkspaces, ignoredWorkspaces); }; export const goToPrevWS = ( currentMonitorWorkspaces: Variable, activeWorkspaces: boolean, ignoredWorkspaces: Variable, ): void => { navigateWorkspace('prev', currentMonitorWorkspaces, activeWorkspaces, ignoredWorkspaces); }; export function throttle void>(func: T, limit: number): T { let inThrottle: boolean; return function (this: ThisParameterType, ...args: Parameters) { if (!inThrottle) { func.apply(this, args); inThrottle = true; setTimeout(() => { inThrottle = false; }, limit); } } as T; } export const createThrottledScrollHandlers = ( scrollSpeed: number, currentMonitorWorkspaces: Variable, activeWorkspaces: boolean = false, ): ThrottledScrollHandlers => { const throttledScrollUp = throttle(() => { if (reverse_scroll.value) { goToPrevWS(currentMonitorWorkspaces, activeWorkspaces, ignored); } else { goToNextWS(currentMonitorWorkspaces, activeWorkspaces, ignored); } }, 200 / scrollSpeed); const throttledScrollDown = throttle(() => { if (reverse_scroll.value) { goToNextWS(currentMonitorWorkspaces, activeWorkspaces, ignored); } else { goToPrevWS(currentMonitorWorkspaces, activeWorkspaces, ignored); } }, 200 / scrollSpeed); return { throttledScrollUp, throttledScrollDown }; }; ================================================ FILE: .config/ags/modules/bar/workspaces/index.ts ================================================ import options from 'options'; import { createThrottledScrollHandlers, getCurrentMonitorWorkspaces } from './helpers'; import { BarBoxChild, SelfButton } from 'lib/types/bar'; import { occupiedWses } from './variants/occupied'; import { defaultWses } from './variants/default'; const { workspaces, scroll_speed } = options.bar.workspaces; const Workspaces = (monitor = -1): BarBoxChild => { const currentMonitorWorkspaces = Variable(getCurrentMonitorWorkspaces(monitor)); workspaces.connect('changed', () => { currentMonitorWorkspaces.value = getCurrentMonitorWorkspaces(monitor); }); return { component: Widget.Box({ class_name: 'workspaces-box-container', child: options.bar.workspaces.hideUnoccupied.bind('value').as((hideUnoccupied) => { return hideUnoccupied ? occupiedWses(monitor) : defaultWses(monitor); }), }), isVisible: true, boxClass: 'workspaces', props: { setup: (self: SelfButton): void => { Utils.merge( [scroll_speed.bind('value'), options.bar.workspaces.hideUnoccupied.bind('value')], (scroll_speed, hideUnoccupied) => { const { throttledScrollUp, throttledScrollDown } = createThrottledScrollHandlers( scroll_speed, currentMonitorWorkspaces, hideUnoccupied, ); self.on_scroll_up = throttledScrollUp; self.on_scroll_down = throttledScrollDown; }, ); }, }, }; }; export { Workspaces }; ================================================ FILE: .config/ags/modules/bar/workspaces/utils.ts ================================================ import { WorkspaceIconMap } from 'lib/types/workspace'; import { isValidGjsColor } from 'lib/utils'; import options from 'options'; import { Monitor } from 'types/service/hyprland'; const hyprland = await Service.import('hyprland'); const { monochrome, background } = options.theme.bar.buttons; const { background: wsBackground, active } = options.theme.bar.buttons.workspaces; const { showWsIcons, showAllActive, numbered_active_indicator: activeIndicator } = options.bar.workspaces; const isWorkspaceActiveOnMonitor = (monitor: number, monitors: Monitor[], i: number): boolean => { return showAllActive.value && monitors[monitor]?.activeWorkspace?.id === i; }; const getWsIcon = (wsIconMap: WorkspaceIconMap, i: number): string => { const iconEntry = wsIconMap[i]; if (!iconEntry) { return `${i}`; } const hasIcon = typeof iconEntry === 'object' && 'icon' in iconEntry && iconEntry.icon !== ''; if (typeof iconEntry === 'string' && iconEntry !== '') { return iconEntry; } if (hasIcon) { return iconEntry.icon; } return `${i}`; }; export const getWsColor = ( wsIconMap: WorkspaceIconMap, i: number, smartHighlight: boolean, monitor: number, monitors: Monitor[], ): string => { const iconEntry = wsIconMap[i]; const hasColor = typeof iconEntry === 'object' && 'color' in iconEntry && isValidGjsColor(iconEntry.color); if (!iconEntry) { return ''; } if ( showWsIcons.value && smartHighlight && activeIndicator.value === 'highlight' && (hyprland.active.workspace.id === i || isWorkspaceActiveOnMonitor(monitor, monitors, i)) ) { const iconColor = monochrome.value ? background : wsBackground; const iconBackground = hasColor && isValidGjsColor(iconEntry.color) ? iconEntry.color : active.value; const colorCss = `color: ${iconColor};`; const backgroundCss = `background: ${iconBackground};`; return colorCss + backgroundCss; } if (hasColor && isValidGjsColor(iconEntry.color)) { return `color: ${iconEntry.color}; border-bottom-color: ${iconEntry.color};`; } return ''; }; export const renderClassnames = ( showIcons: boolean, showNumbered: boolean, numberedActiveIndicator: string, showWsIcons: boolean, smartHighlight: boolean, monitor: number, monitors: Monitor[], i: number, ): string => { if (showIcons) { return 'workspace-icon txt-icon bar'; } if (showNumbered || showWsIcons) { const numActiveInd = hyprland.active.workspace.id === i || isWorkspaceActiveOnMonitor(monitor, monitors, i) ? numberedActiveIndicator : ''; const wsIconClass = showWsIcons ? 'txt-icon' : ''; const smartHighlightClass = smartHighlight ? 'smart-highlight' : ''; const className = `workspace-number can_${numberedActiveIndicator} ${numActiveInd} ${wsIconClass} ${smartHighlightClass}`; return className.trim(); } return 'default'; }; export const renderLabel = ( showIcons: boolean, available: string, active: string, occupied: string, workspaceMask: boolean, showWsIcons: boolean, wsIconMap: WorkspaceIconMap, i: number, index: number, monitor: number, monitors: Monitor[], ): string => { if (showIcons) { if (hyprland.active.workspace.id === i || isWorkspaceActiveOnMonitor(monitor, monitors, i)) { return active; } if ((hyprland.getWorkspace(i)?.windows || 0) > 0) { return occupied; } if (monitor !== -1) { return available; } } if (showWsIcons) { return getWsIcon(wsIconMap, i); } return workspaceMask ? `${index + 1}` : `${i}`; }; ================================================ FILE: .config/ags/modules/bar/workspaces/variants/default.ts ================================================ const hyprland = await Service.import('hyprland'); import options from 'options'; import { getWorkspaceRules, getWorkspacesForMonitor, isWorkspaceIgnored } from '../helpers'; import { range } from 'lib/utils'; import { BoxWidget } from 'lib/types/widget'; import { getWsColor, renderClassnames, renderLabel } from '../utils'; import { WorkspaceIconMap } from 'lib/types/workspace'; import { Monitor } from 'types/service/hyprland'; const { workspaces, monitorSpecific, workspaceMask, spacing, ignored } = options.bar.workspaces; export const defaultWses = (monitor: number): BoxWidget => { return Widget.Box({ children: Utils.merge( [workspaces.bind('value'), monitorSpecific.bind('value'), ignored.bind('value')], (workspaces: number, monitorSpecific: boolean) => { return range(workspaces || 8) .filter((workspaceNumber) => { if (!monitorSpecific) { return true; } const workspaceRules = getWorkspaceRules(); return ( getWorkspacesForMonitor(workspaceNumber, workspaceRules, monitor) && !isWorkspaceIgnored(ignored, workspaceNumber) ); }) .sort((a, b) => { return a - b; }) .map((i, index) => { return Widget.Button({ class_name: 'workspace-button', on_primary_click: () => { hyprland.messageAsync(`dispatch workspace ${i}`); }, child: Widget.Label({ attribute: i, vpack: 'center', css: Utils.merge( [ spacing.bind('value'), options.bar.workspaces.showWsIcons.bind('value'), options.bar.workspaces.workspaceIconMap.bind('value'), options.theme.matugen.bind('value'), options.theme.bar.buttons.workspaces.smartHighlight.bind('value'), hyprland.bind('monitors'), ], ( sp: number, showWsIcons: boolean, workspaceIconMap: WorkspaceIconMap, matugen: boolean, smartHighlight: boolean, monitors: Monitor[], ) => { return ( `margin: 0rem ${0.375 * sp}rem;` + `${showWsIcons && !matugen ? getWsColor(workspaceIconMap, i, smartHighlight, monitor, monitors) : ''}` ); }, ), class_name: Utils.merge( [ options.bar.workspaces.show_icons.bind('value'), options.bar.workspaces.show_numbered.bind('value'), options.bar.workspaces.numbered_active_indicator.bind('value'), options.bar.workspaces.showWsIcons.bind('value'), options.theme.bar.buttons.workspaces.smartHighlight.bind('value'), hyprland.bind('monitors'), options.bar.workspaces.icons.available.bind('value'), options.bar.workspaces.icons.active.bind('value'), ], ( showIcons: boolean, showNumbered: boolean, numberedActiveIndicator: string, showWsIcons: boolean, smartHighlight: boolean, monitors: Monitor[], ) => { return renderClassnames( showIcons, showNumbered, numberedActiveIndicator, showWsIcons, smartHighlight, monitor, monitors, i, ); }, ), label: Utils.merge( [ options.bar.workspaces.show_icons.bind('value'), options.bar.workspaces.icons.available.bind('value'), options.bar.workspaces.icons.active.bind('value'), options.bar.workspaces.icons.occupied.bind('value'), options.bar.workspaces.workspaceIconMap.bind('value'), options.bar.workspaces.showWsIcons.bind('value'), workspaceMask.bind('value'), hyprland.bind('monitors'), ], ( showIcons: boolean, available: string, active: string, occupied: string, wsIconMap: WorkspaceIconMap, showWsIcons: boolean, workspaceMask: boolean, monitors: Monitor[], ) => { return renderLabel( showIcons, available, active, occupied, workspaceMask, showWsIcons, wsIconMap, i, index, monitor, monitors, ); }, ), setup: (self) => { self.hook(hyprland, () => { self.toggleClassName('active', hyprland.active.workspace.id === i); self.toggleClassName('occupied', (hyprland.getWorkspace(i)?.windows || 0) > 0); }); }, }), }); }); }, ), }); }; ================================================ FILE: .config/ags/modules/bar/workspaces/variants/occupied.ts ================================================ const hyprland = await Service.import('hyprland'); import options from 'options'; import { getWorkspaceRules, getWorkspacesForMonitor, isWorkspaceIgnored } from '../helpers'; import { Monitor, Workspace } from 'types/service/hyprland'; import { getWsColor, renderClassnames, renderLabel } from '../utils'; import { range } from 'lib/utils'; import { BoxWidget } from 'lib/types/widget'; import { WorkspaceIconMap } from 'lib/types/workspace'; const { workspaces, monitorSpecific, workspaceMask, spacing, ignored, showAllActive } = options.bar.workspaces; export const occupiedWses = (monitor: number): BoxWidget => { return Widget.Box({ children: Utils.merge( [ monitorSpecific.bind('value'), hyprland.bind('workspaces'), workspaceMask.bind('value'), workspaces.bind('value'), options.bar.workspaces.show_icons.bind('value'), options.bar.workspaces.icons.available.bind('value'), options.bar.workspaces.icons.active.bind('value'), options.bar.workspaces.icons.occupied.bind('value'), options.bar.workspaces.show_numbered.bind('value'), options.bar.workspaces.numbered_active_indicator.bind('value'), spacing.bind('value'), options.bar.workspaces.workspaceIconMap.bind('value'), options.bar.workspaces.showWsIcons.bind('value'), options.theme.matugen.bind('value'), options.theme.bar.buttons.workspaces.smartHighlight.bind('value'), hyprland.bind('monitors'), ignored.bind('value'), showAllActive.bind('value'), ], ( monitorSpecific: boolean, wkSpaces: Workspace[], workspaceMask: boolean, totalWkspcs: number, showIcons: boolean, available: string, active: string, occupied: string, showNumbered: boolean, numberedActiveIndicator: string, spacing: number, wsIconMap: WorkspaceIconMap, showWsIcons: boolean, matugen: boolean, smartHighlight: boolean, monitors: Monitor[], ) => { const activeId = hyprland.active.workspace.id; let allWkspcs = range(totalWkspcs || 8); const activeWorkspaces = wkSpaces.map((w) => w.id); const workspaceRules = getWorkspaceRules(); // Sometimes hyprland doesn't have all the monitors in the list // so we complement it with monitors from the workspace list const workspaceMonitorList = hyprland?.workspaces?.map((m) => ({ id: m.monitorID, name: m.monitor, })); const curMonitor = hyprland.monitors.find((m) => m.id === monitor) || workspaceMonitorList.find((m) => m.id === monitor); const workspacesWithRules = Object.keys(workspaceRules).reduce((acc: number[], k: string) => { return [...acc, ...workspaceRules[k]]; }, [] as number[]); const activesForMonitor = activeWorkspaces.filter((w) => { if ( curMonitor && Object.hasOwnProperty.call(workspaceRules, curMonitor.name) && workspacesWithRules.includes(w) ) { return workspaceRules[curMonitor.name].includes(w); } return true; }); if (monitorSpecific) { const wrkspcsInRange = range(totalWkspcs).filter((w) => { return getWorkspacesForMonitor(w, workspaceRules, monitor); }); allWkspcs = [...new Set([...activesForMonitor, ...wrkspcsInRange])]; } else { allWkspcs = [...new Set([...allWkspcs, ...activeWorkspaces])]; } return allWkspcs .sort((a, b) => { return a - b; }) .map((i, index) => { if (isWorkspaceIgnored(ignored, i)) { return Widget.Box(); } return Widget.Button({ class_name: 'workspace-button', on_primary_click: () => { hyprland.messageAsync(`dispatch workspace ${i}`); }, child: Widget.Label({ attribute: i, vpack: 'center', css: `margin: 0rem ${0.375 * spacing}rem;` + `${showWsIcons && !matugen ? getWsColor(wsIconMap, i, smartHighlight, monitor, monitors) : ''}`, class_name: renderClassnames( showIcons, showNumbered, numberedActiveIndicator, showWsIcons, smartHighlight, monitor, monitors, i, ), label: renderLabel( showIcons, available, active, occupied, workspaceMask, showWsIcons, wsIconMap, i, index, monitor, monitors, ), setup: (self) => { self.toggleClassName('active', activeId === i); self.toggleClassName('occupied', (hyprland.getWorkspace(i)?.windows || 0) > 0); }, }), }); }); }, ), }); }; ================================================ FILE: .config/ags/modules/icons/index.ts ================================================ export const substitutes = { 'transmission-gtk': 'transmission', 'blueberry.py': 'blueberry', Caprine: 'facebook-messenger', 'com.raggesilver.BlackBox-symbolic': 'terminal-symbolic', 'org.wezfurlong.wezterm-symbolic': 'terminal-symbolic', 'audio-headset-bluetooth': 'audio-headphones-symbolic', 'audio-card-analog-usb': 'audio-speakers-symbolic', 'audio-card-analog-pci': 'audio-card-symbolic', 'preferences-system': 'emblem-system-symbolic', 'com.github.Aylur.ags-symbolic': 'controls-symbolic', 'com.github.Aylur.ags': 'controls-symbolic', }; export default { missing: 'image-missing-symbolic', nix: { nix: 'nix-snowflake-symbolic', }, app: { terminal: 'terminal-symbolic', }, fallback: { executable: 'application-x-executable', notification: 'dialog-information-symbolic', video: 'video-x-generic-symbolic', audio: 'audio-x-generic-symbolic', }, ui: { close: 'window-close-symbolic', colorpicker: 'color-select-symbolic', info: 'info-symbolic', link: 'external-link-symbolic', lock: 'system-lock-screen-symbolic', menu: 'open-menu-symbolic', refresh: 'view-refresh-symbolic', search: 'system-search-symbolic', settings: 'emblem-system-symbolic', themes: 'preferences-desktop-theme-symbolic', tick: 'object-select-symbolic', time: 'hourglass-symbolic', toolbars: 'toolbars-symbolic', warning: 'dialog-warning-symbolic', arrow: { right: 'pan-end-symbolic', left: 'pan-start-symbolic', down: 'pan-down-symbolic', up: 'pan-up-symbolic', }, }, audio: { mic: { muted: 'microphone-disabled-symbolic', low: 'microphone-sensitivity-low-symbolic', medium: 'microphone-sensitivity-medium-symbolic', high: 'microphone-sensitivity-high-symbolic', }, volume: { muted: 'audio-volume-muted-symbolic', low: 'audio-volume-low-symbolic', medium: 'audio-volume-medium-symbolic', high: 'audio-volume-high-symbolic', overamplified: 'audio-volume-overamplified-symbolic', }, type: { headset: 'audio-headphones-symbolic', speaker: 'audio-speakers-symbolic', card: 'audio-card-symbolic', }, mixer: 'mixer-symbolic', }, powerprofile: { balanced: 'power-profile-balanced-symbolic', 'power-saver': 'power-profile-power-saver-symbolic', performance: 'power-profile-performance-symbolic', }, asusctl: { profile: { Balanced: 'power-profile-balanced-symbolic', Quiet: 'power-profile-power-saver-symbolic', Performance: 'power-profile-performance-symbolic', }, mode: { Integrated: 'processor-symbolic', Hybrid: 'controller-symbolic', }, }, battery: { charging: 'battery-flash-symbolic', warning: 'battery-empty-symbolic', }, bluetooth: { enabled: 'bluetooth-active-symbolic', disabled: 'bluetooth-disabled-symbolic', }, brightness: { indicator: 'display-brightness-symbolic', keyboard: 'keyboard-brightness-symbolic', screen: 'display-brightness-symbolic', }, powermenu: { sleep: 'weather-clear-night-symbolic', reboot: 'system-reboot-symbolic', logout: 'system-log-out-symbolic', shutdown: 'system-shutdown-symbolic', }, recorder: { recording: 'media-record-symbolic', }, notifications: { noisy: 'org.gnome.Settings-notifications-symbolic', silent: 'notifications-disabled-symbolic', message: 'chat-bubbles-symbolic', }, trash: { full: 'user-trash-full-symbolic', empty: 'user-trash-symbolic', }, mpris: { shuffle: { enabled: 'media-playlist-shuffle-symbolic', disabled: 'media-playlist-consecutive-symbolic', }, loop: { none: 'media-playlist-repeat-symbolic', track: 'media-playlist-repeat-song-symbolic', playlist: 'media-playlist-repeat-symbolic', }, playing: 'media-playback-pause-symbolic', paused: 'media-playback-start-symbolic', stopped: 'media-playback-start-symbolic', prev: 'media-skip-backward-symbolic', next: 'media-skip-forward-symbolic', }, system: { cpu: 'org.gnome.SystemMonitor-symbolic', ram: 'drive-harddisk-solidstate-symbolic', temp: 'temperature-symbolic', }, color: { dark: 'dark-mode-symbolic', light: 'light-mode-symbolic', }, weather: { warning: 'dialog-warning-symbolic', sunny: 'weather-clear-symbolic', clear: 'weather-clear-night-symbolic', partly_cloudy: 'weather-few-clouds-symbolic', partly_cloudy_night: 'weather-few-clouds-night-symbolic', cloudy: 'weather-overcast-symbolic', overcast: 'weather-overcast-symbolic', mist: 'weather-overcast-symbolic', patchy_rain_nearby: 'weather-showers-scattered-symbolic', patchy_rain_possible: 'weather-showers-scattered-symbolic', patchy_snow_possible: 'weather-snow-symbolic', patchy_sleet_possible: 'weather-snow-symbolic', patchy_freezing_drizzle_possible: 'weather-showers-scattered-symbolic', thundery_outbreaks_possible: 'weather-overcast-symbolic', blowing_snow: 'weather-snow-symbolic', blizzard: 'weather-snow-symbolic', fog: 'weather-fog-symbolic', freezing_fog: 'weather-fog-symbolic', patchy_light_drizzle: 'weather-showers-scattered-symbolic', light_drizzle: 'weather-showers-symbolic', freezing_drizzle: 'weather-showers-symbolic', heavy_freezing_drizzle: 'weather-showers-symbolic', patchy_light_rain: 'weather-showers-scattered-symbolic', light_rain: 'weather-showers-symbolic', moderate_rain_at_times: 'weather-showers-symbolic', moderate_rain: 'weather-showers-symbolic', heavy_rain_at_times: 'weather-showers-symbolic', heavy_rain: 'weather-showers-symbolic', light_freezing_rain: 'weather-showers-symbolic', moderate_or_heavy_freezing_rain: 'weather-showers-symbolic', light_sleet: 'weather-snow-symbolic', moderate_or_heavy_sleet: 'weather-snow-symbolic', patchy_light_snow: 'weather-snow-symbolic', light_snow: 'weather-snow-symbolic', patchy_moderate_snow: 'weather-snow-symbolic', moderate_snow: 'weather-snow-symbolic', patchy_heavy_snow: 'weather-snow-symbolic', heavy_snow: 'weather-snow-symbolic', ice_pellets: 'weather-showers-symbolic', light_rain_shower: 'weather-showers-symbolic', moderate_or_heavy_rain_shower: 'weather-showers-symbolic', torrential_rain_shower: 'weather-showers-symbolic', light_sleet_showers: 'weather-showers-symbolic', moderate_or_heavy_sleet_showers: 'weather-showers-symbolic', light_snow_showers: 'weather-snow-symbolic', moderate_or_heavy_snow_showers: 'weather-snow-symbolic', light_showers_of_ice_pellets: 'weather-showers-symbolic', moderate_or_heavy_showers_of_ice_pellets: 'weather-showers-symbolic', patchy_light_rain_with_thunder: 'weather-showers-scattered-symbolic', moderate_or_heavy_rain_with_thunder: 'weather-showers-symbolic', patchy_light_snow_with_thunder: 'weather-snow-symbolic', moderate_or_heavy_snow_with_thunder: 'weather-snow-symbolic', }, } as const; ================================================ FILE: .config/ags/modules/icons/weather.ts ================================================ export const weatherIcons = { warning: '󰼯', sunny: '󰖙', clear: '󰖔', partly_cloudy: '󰖕', partly_cloudy_night: '󰼱', cloudy: '󰖐', overcast: '󰖕', mist: '󰖑', patchy_rain_nearby: '󰼳', patchy_rain_possible: '󰼳', patchy_snow_possible: '󰼴', patchy_sleet_possible: '󰙿', patchy_freezing_drizzle_possible: '󰙿', thundery_outbreaks_possible: '󰙾', blowing_snow: '󰼶', blizzard: '󰼶', fog: '󰖑', freezing_fog: '󰖑', patchy_light_drizzle: '󰼳', light_drizzle: '󰼳', freezing_drizzle: '󰙿', heavy_freezing_drizzle: '󰙿', patchy_light_rain: '󰼳', light_rain: '󰼳', moderate_rain_at_times: '󰖗', moderate_rain: '󰼳', heavy_rain_at_times: '󰖖', heavy_rain: '󰖖', light_freezing_rain: '󰙿', moderate_or_heavy_freezing_rain: '󰙿', light_sleet: '󰙿', moderate_or_heavy_sleet: '󰙿', patchy_light_snow: '󰼴', light_snow: '󰼴', patchy_moderate_snow: '󰼴', moderate_snow: '󰼶', patchy_heavy_snow: '󰼶', heavy_snow: '󰼶', ice_pellets: '󰖒', light_rain_shower: '󰖖', moderate_or_heavy_rain_shower: '󰖖', torrential_rain_shower: '󰖖', light_sleet_showers: '󰼵', moderate_or_heavy_sleet_showers: '󰼵', light_snow_showers: '󰼵', moderate_or_heavy_snow_showers: '󰼵', light_showers_of_ice_pellets: '󰖒', moderate_or_heavy_showers_of_ice_pellets: '󰖒', patchy_light_rain_with_thunder: '󰙾', moderate_or_heavy_rain_with_thunder: '󰙾', patchy_light_snow_with_thunder: '󰼶', moderate_or_heavy_snow_with_thunder: '󰼶', } as const; ================================================ FILE: .config/ags/modules/menus/audio/active/SelectedInput.ts ================================================ const audio = await Service.import('audio'); import { getIcon } from '../utils.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; const renderActiveInput = (): Box[] => { return [ Widget.Box({ class_name: 'menu-slider-container input', children: [ Widget.Button({ vexpand: false, vpack: 'end', setup: (self) => { const updateClass = (): void => { const mic = audio.microphone; const className = `menu-active-button input ${mic.is_muted ? 'muted' : ''}`; self.class_name = className; }; self.hook(audio.microphone, updateClass, 'notify::is-muted'); }, on_primary_click: () => (audio.microphone.is_muted = !audio.microphone.is_muted), child: Widget.Icon({ class_name: 'menu-active-icon input', setup: (self) => { const updateIcon = (): void => { const isMicMuted = audio.microphone.is_muted !== null ? audio.microphone.is_muted : true; if (audio.microphone.volume > 0) { self.icon = getIcon(audio.microphone.volume, isMicMuted)['mic']; } else { self.icon = getIcon(100, true)['mic']; } }; self.hook(audio.microphone, updateIcon, 'notify::volume'); self.hook(audio.microphone, updateIcon, 'notify::is-muted'); }, }), }), Widget.Box({ vertical: true, children: [ Widget.Label({ class_name: 'menu-active input', hpack: 'start', truncate: 'end', wrap: true, label: audio.bind('microphone').as((v) => { return v.description === null ? 'No input device found...' : v.description; }), }), Widget.Slider({ value: audio.microphone.bind('volume').as((v) => v), class_name: 'menu-active-slider menu-slider inputs', draw_value: false, hexpand: true, min: 0, max: 1, onChange: ({ value }) => (audio.microphone.volume = value), }), ], }), Widget.Label({ class_name: 'menu-active-percentage input', vpack: 'end', label: audio.microphone.bind('volume').as((v) => `${Math.round(v * 100)}%`), }), ], }), ]; }; export { renderActiveInput }; ================================================ FILE: .config/ags/modules/menus/audio/active/SelectedPlayback.ts ================================================ const audio = await Service.import('audio'); import { getIcon } from '../utils.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; const renderActivePlayback = (): Box[] => { return [ Widget.Box({ class_name: 'menu-slider-container playback', children: [ Widget.Button({ vexpand: false, vpack: 'end', setup: (self) => { const updateClass = (): void => { const spkr = audio.speaker; const className = `menu-active-button playback ${spkr.is_muted ? 'muted' : ''}`; self.class_name = className; }; self.hook(audio.speaker, updateClass, 'notify::is-muted'); }, on_primary_click: () => (audio.speaker.is_muted = !audio.speaker.is_muted), child: Widget.Icon({ class_name: 'menu-active-icon playback', setup: (self) => { const updateIcon = (): void => { const isSpeakerMuted = audio.speaker.is_muted !== null ? audio.speaker.is_muted : true; self.icon = getIcon(audio.speaker.volume, isSpeakerMuted)['spkr']; }; self.hook(audio.speaker, updateIcon, 'notify::volume'); self.hook(audio.speaker, updateIcon, 'notify::is-muted'); }, }), }), Widget.Box({ vertical: true, children: [ Widget.Label({ class_name: 'menu-active playback', hpack: 'start', truncate: 'end', expand: true, wrap: true, label: audio.bind('speaker').as((v) => v.description || ''), }), Widget.Slider({ value: audio['speaker'].bind('volume'), class_name: 'menu-active-slider menu-slider playback', draw_value: false, hexpand: true, min: 0, max: 1, onChange: ({ value }) => (audio.speaker.volume = value), }), ], }), Widget.Label({ vpack: 'end', class_name: 'menu-active-percentage playback', label: audio.speaker.bind('volume').as((v) => `${Math.round(v * 100)}%`), }), ], }), ]; }; export { renderActivePlayback }; ================================================ FILE: .config/ags/modules/menus/audio/active/index.ts ================================================ import { renderActiveInput } from './SelectedInput.js'; import { renderActivePlayback } from './SelectedPlayback.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; const activeDevices = (): Box => { return Widget.Box({ class_name: 'menu-section-container volume', vertical: true, children: [ Widget.Box({ class_name: 'menu-label-container volume selected', hpack: 'fill', child: Widget.Label({ class_name: 'menu-label audio volume', hexpand: true, hpack: 'start', label: 'Volume', }), }), Widget.Box({ class_name: 'menu-items-section selected', vertical: true, children: [ Widget.Box({ class_name: 'menu-active-container playback', vertical: true, children: renderActivePlayback(), }), Widget.Box({ class_name: 'menu-active-container input', vertical: true, children: renderActiveInput(), }), ], }), ], }); }; export { activeDevices }; ================================================ FILE: .config/ags/modules/menus/audio/available/InputDevices.ts ================================================ const audio = await Service.import('audio'); import { InputDevices } from 'lib/types/audio'; import { Stream } from 'types/service/audio'; const renderInputDevices = (inputDevices: Stream[]): InputDevices => { if (inputDevices.length === 0) { return [ Widget.Button({ class_name: `menu-unfound-button input`, child: Widget.Box({ children: [ Widget.Box({ hpack: 'start', children: [ Widget.Label({ class_name: 'menu-button-name input', label: 'No input devices found...', }), ], }), ], }), }), ]; } return inputDevices.map((device) => { return Widget.Button({ on_primary_click: () => (audio.microphone = device), class_name: `menu-button audio input ${device}`, child: Widget.Box({ children: [ Widget.Box({ hpack: 'start', children: [ Widget.Label({ wrap: true, class_name: audio.microphone .bind('description') .as((v) => device.description === v ? 'menu-button-icon active input txt-icon' : 'menu-button-icon input txt-icon', ), label: '', }), Widget.Label({ truncate: 'end', wrap: true, class_name: audio.microphone .bind('description') .as((v) => device.description === v ? 'menu-button-name active input' : 'menu-button-name input', ), label: device.description, }), ], }), ], }), }); }); }; export { renderInputDevices }; ================================================ FILE: .config/ags/modules/menus/audio/available/PlaybackDevices.ts ================================================ const audio = await Service.import('audio'); import { PlaybackDevices } from 'lib/types/audio'; import { Stream } from 'types/service/audio'; const renderPlaybacks = (playbackDevices: Stream[]): PlaybackDevices => { return playbackDevices.map((device) => { if (device.description === 'Dummy Output') { return Widget.Box({ class_name: 'menu-unfound-button playback', child: Widget.Box({ children: [ Widget.Label({ class_name: 'menu-button-name playback', label: 'No playback devices found...', }), ], }), }); } return Widget.Button({ class_name: `menu-button audio playback ${device}`, on_primary_click: () => (audio.speaker = device), child: Widget.Box({ children: [ Widget.Box({ hpack: 'start', children: [ Widget.Label({ truncate: 'end', wrap: true, class_name: audio.speaker .bind('description') .as((v) => device.description === v ? 'menu-button-icon active playback txt-icon' : 'menu-button-icon playback txt-icon', ), label: '', }), Widget.Label({ truncate: 'end', wrap: true, class_name: audio.speaker .bind('description') .as((v) => device.description === v ? 'menu-button-name active playback' : 'menu-button-name playback', ), label: device.description, }), ], }), ], }), }); }); }; export { renderPlaybacks }; ================================================ FILE: .config/ags/modules/menus/audio/available/index.ts ================================================ const audio = await Service.import('audio'); import { BoxWidget } from 'lib/types/widget.js'; import { renderInputDevices } from './InputDevices.js'; import { renderPlaybacks } from './PlaybackDevices.js'; const availableDevices = (): BoxWidget => { return Widget.Box({ vertical: true, children: [ Widget.Box({ class_name: 'menu-section-container playback', vertical: true, children: [ Widget.Box({ class_name: 'menu-label-container playback', hpack: 'fill', child: Widget.Label({ class_name: 'menu-label audio playback', hexpand: true, hpack: 'start', label: 'Playback Devices', }), }), Widget.Box({ class_name: 'menu-items-section playback', vertical: true, children: [ Widget.Box({ class_name: 'menu-container playback', vertical: true, children: [ Widget.Box({ vertical: true, children: audio.bind('speakers').as((v) => renderPlaybacks(v)), }), ], }), ], }), Widget.Box({ class_name: 'menu-label-container input', hpack: 'fill', child: Widget.Label({ class_name: 'menu-label audio input', hexpand: true, hpack: 'start', label: 'Input Devices', }), }), Widget.Box({ class_name: 'menu-items-section input', vertical: true, children: [ Widget.Box({ class_name: 'menu-container input', vertical: true, children: [ Widget.Box({ vertical: true, children: audio.bind('microphones').as((v) => renderInputDevices(v)), }), ], }), ], }), ], }), ], }); }; export { availableDevices }; ================================================ FILE: .config/ags/modules/menus/audio/index.ts ================================================ import Window from 'types/widgets/window.js'; import DropdownMenu from '../shared/dropdown/index.js'; import { activeDevices } from './active/index.js'; import { availableDevices } from './available/index.js'; import { Attribute, Child } from 'lib/types/widget.js'; import options from 'options.js'; export default (): Window => { return DropdownMenu({ name: 'audiomenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'menu-items audio', hpack: 'fill', hexpand: true, child: Widget.Box({ vertical: true, hpack: 'fill', hexpand: true, class_name: 'menu-items-container audio', children: [activeDevices(), availableDevices()], }), }), }); }; ================================================ FILE: .config/ags/modules/menus/audio/utils.ts ================================================ const speakerIcons = { 101: 'audio-volume-overamplified-symbolic', 66: 'audio-volume-high-symbolic', 34: 'audio-volume-medium-symbolic', 1: 'audio-volume-low-symbolic', 0: 'audio-volume-muted-symbolic', } as const; const inputIcons = { 101: 'microphone-sensitivity-high-symbolic', 66: 'microphone-sensitivity-high-symbolic', 34: 'microphone-sensitivity-medium-symbolic', 1: 'microphone-sensitivity-low-symbolic', 0: 'microphone-disabled-symbolic', }; type IconVolumes = keyof typeof speakerIcons; const getIcon = (audioVol: number, isMuted: boolean): Record => { const thresholds: IconVolumes[] = [101, 66, 34, 1, 0]; const icon = isMuted ? 0 : thresholds.find((threshold) => threshold <= audioVol * 100) || 0; return { spkr: speakerIcons[icon], mic: inputIcons[icon], }; }; export { getIcon }; ================================================ FILE: .config/ags/modules/menus/bluetooth/devices/connectedControls.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import { BluetoothDevice } from 'types/service/bluetooth'; const connectedControls = (dev: BluetoothDevice, connectedDevices: BluetoothDevice[]): BoxWidget => { if (!connectedDevices.includes(dev.address)) { return Widget.Box({}); } return Widget.Box({ vpack: 'start', class_name: 'bluetooth-controls', children: [ Widget.Button({ class_name: 'menu-icon-button unpair bluetooth', child: Widget.Label({ tooltip_text: dev.paired ? 'Unpair' : 'Pair', class_name: 'menu-icon-button-label unpair bluetooth txt-icon', label: dev.paired ? '' : '', }), on_primary_click: () => Utils.execAsync([ 'bash', '-c', `bluetoothctl ${dev.paired ? 'unpair' : 'pair'} ${dev.address}`, ]).catch((err) => console.error(`bluetoothctl ${dev.paired ? 'unpair' : 'pair'} ${dev.address}`, err), ), }), Widget.Button({ class_name: 'menu-icon-button disconnect bluetooth', child: Widget.Label({ tooltip_text: dev.connected ? 'Disconnect' : 'Connect', class_name: 'menu-icon-button-label disconnect bluetooth txt-icon', label: dev.connected ? '󱘖' : '', }), on_primary_click: () => dev.setConnection(!dev.connected), }), Widget.Button({ class_name: 'menu-icon-button untrust bluetooth', child: Widget.Label({ tooltip_text: dev.trusted ? 'Untrust' : 'Trust', class_name: 'menu-icon-button-label untrust bluetooth txt-icon', label: dev.trusted ? '' : '󱖡', }), on_primary_click: () => Utils.execAsync([ 'bash', '-c', `bluetoothctl ${dev.trusted ? 'untrust' : 'trust'} ${dev.address}`, ]).catch((err) => console.error(`bluetoothctl ${dev.trusted ? 'untrust' : 'trust'} ${dev.address}`, err), ), }), Widget.Button({ class_name: 'menu-icon-button delete bluetooth', child: Widget.Label({ tooltip_text: 'Forget', class_name: 'menu-icon-button-label delete bluetooth txt-icon', label: '󰆴', }), on_primary_click: () => { Utils.execAsync(['bash', '-c', `bluetoothctl remove ${dev.address}`]).catch((err) => console.error('Bluetooth Remove', err), ); }, }), ], }); }; export { connectedControls }; ================================================ FILE: .config/ags/modules/menus/bluetooth/devices/devicelist.ts ================================================ import { Bluetooth } from 'types/service/bluetooth.js'; import Box from 'types/widgets/box.js'; import { connectedControls } from './connectedControls.js'; import { getBluetoothIcon } from '../utils.js'; import Gtk from 'types/@girs/gtk-3.0/gtk-3.0.js'; import { Attribute, Child } from 'lib/types/widget.js'; const devices = (bluetooth: Bluetooth, self: Box): Box => { return self.hook(bluetooth, () => { if (!bluetooth.enabled) { return (self.child = Widget.Box({ class_name: 'bluetooth-items', vertical: true, expand: true, vpack: 'center', hpack: 'center', children: [ Widget.Label({ class_name: 'bluetooth-disabled dim', hexpand: true, label: 'Bluetooth is disabled', }), ], })); } const availableDevices = bluetooth.devices .filter((btDev) => btDev.name !== null) .sort((a, b) => { if (a.connected || a.paired) { return -1; } if (b.connected || b.paired) { return 1; } return b.name - a.name; }); const conDevNames = availableDevices.filter((d) => d.connected || d.paired).map((d) => d.address); if (!availableDevices.length) { return (self.child = Widget.Box({ class_name: 'bluetooth-items', vertical: true, expand: true, vpack: 'center', hpack: 'center', children: [ Widget.Label({ class_name: 'no-bluetooth-devices dim', hexpand: true, label: 'No devices currently found', }), Widget.Label({ class_name: 'search-bluetooth-label dim', hexpand: true, label: "Press '󰑐' to search", }), ], })); } return (self.child = Widget.Box({ vertical: true, children: availableDevices.map((device) => { return Widget.Box({ children: [ Widget.Button({ hexpand: true, class_name: `bluetooth-element-item ${device}`, on_primary_click: () => { if (!conDevNames.includes(device.address)) device.setConnection(true); }, child: Widget.Box({ hexpand: true, children: [ Widget.Box({ hexpand: true, hpack: 'start', class_name: 'menu-button-container', children: [ Widget.Label({ vpack: 'start', class_name: `menu-button-icon bluetooth ${conDevNames.includes(device.address) ? 'active' : ''} txt-icon`, label: getBluetoothIcon(`${device['icon_name']}-symbolic`), }), Widget.Box({ vertical: true, vpack: 'center', children: [ Widget.Label({ vpack: 'center', hpack: 'start', class_name: 'menu-button-name bluetooth', truncate: 'end', wrap: true, label: device.alias, }), Widget.Revealer({ hpack: 'start', reveal_child: device.connected || device.paired, child: Widget.Label({ hpack: 'start', class_name: 'connection-status dim', label: device.connected ? 'Connected' : 'Paired', }), }), ], }), ], }), Widget.Box({ hpack: 'end', children: device.connecting ? [ Widget.Spinner({ vpack: 'start', class_name: 'spinner bluetooth', }), ] : [], }), ], }), }), connectedControls(device, conDevNames), ], }); }), })); }); }; export { devices }; ================================================ FILE: .config/ags/modules/menus/bluetooth/devices/index.ts ================================================ const bluetooth = await Service.import('bluetooth'); import { label } from './label.js'; import { devices } from './devicelist.js'; import { BoxWidget } from 'lib/types/widget.js'; const Devices = (): BoxWidget => { return Widget.Box({ class_name: 'menu-section-container', vertical: true, children: [ label(bluetooth), Widget.Box({ class_name: 'menu-items-section', child: Widget.Box({ class_name: 'menu-content', vertical: true, setup: (self) => { devices(bluetooth, self); }, }), }), ], }); }; export { Devices }; ================================================ FILE: .config/ags/modules/menus/bluetooth/devices/label.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import { Bluetooth } from 'types/service/bluetooth'; const label = (bluetooth: Bluetooth): BoxWidget => { const searchInProgress = Variable(false); const startRotation = (): void => { searchInProgress.value = true; setTimeout(() => { searchInProgress.value = false; }, 10 * 1000); }; return Widget.Box({ class_name: 'menu-label-container', hpack: 'fill', vpack: 'start', children: [ Widget.Label({ class_name: 'menu-label', vpack: 'center', hpack: 'start', label: 'Bluetooth', }), Widget.Box({ class_name: 'controls-container', vpack: 'start', children: [ Widget.Switch({ class_name: 'menu-switch bluetooth', hexpand: true, hpack: 'end', active: bluetooth.bind('enabled'), on_activate: ({ active }) => { searchInProgress.value = false; Utils.execAsync(['bash', '-c', `bluetoothctl power ${active ? 'on' : 'off'}`]).catch( (err) => console.error(`bluetoothctl power ${active ? 'on' : 'off'}`, err), ); }, }), Widget.Separator({ class_name: 'menu-separator bluetooth', }), Widget.Button({ vpack: 'center', class_name: 'menu-icon-button search', on_primary_click: () => { startRotation(); Utils.execAsync(['bash', '-c', 'bluetoothctl --timeout 120 scan on']).catch((err) => { searchInProgress.value = false; console.error('bluetoothctl --timeout 120 scan on', err); }); }, child: Widget.Icon({ class_name: searchInProgress.bind('value').as((v) => (v ? 'spinning' : '')), icon: 'view-refresh-symbolic', }), }), ], }), ], }); }; export { label }; ================================================ FILE: .config/ags/modules/menus/bluetooth/index.ts ================================================ import Window from 'types/widgets/window.js'; import DropdownMenu from '../shared/dropdown/index.js'; import { Devices } from './devices/index.js'; import { Attribute, Child } from 'lib/types/widget.js'; import options from 'options.js'; export default (): Window => { return DropdownMenu({ name: 'bluetoothmenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'menu-items bluetooth', hpack: 'fill', hexpand: true, child: Widget.Box({ vertical: true, hpack: 'fill', hexpand: true, class_name: 'menu-items-container bluetooth', child: Devices(), }), }), }); }; ================================================ FILE: .config/ags/modules/menus/bluetooth/utils.ts ================================================ const getBluetoothIcon = (iconName: string): string => { const deviceIconMap = [ ['^audio-card*', '󰎄'], ['^audio-headphones*', '󰋋'], ['^audio-headset*', '󰋎'], ['^audio-input*', '󰍬'], ['^audio-speakers*', '󰓃'], ['^bluetooth*', '󰂯'], ['^camera*', '󰄀'], ['^computer*', '󰟀'], ['^input-gaming*', '󰍬'], ['^input-keyboard*', '󰌌'], ['^input-mouse*', '󰍽'], ['^input-tablet*', '󰓶'], ['^media*', '󱛟'], ['^modem*', '󱂇'], ['^network*', '󱂇'], ['^phone*', '󰄞'], ['^printer*', '󰐪'], ['^scanner*', '󰚫'], ['^video-camera*', '󰕧'], ]; const foundMatch = deviceIconMap.find((icon) => RegExp(icon[0]).test(iconName.toLowerCase())); return foundMatch ? foundMatch[1] : '󰂯'; }; export { getBluetoothIcon }; ================================================ FILE: .config/ags/modules/menus/calendar/calendar.ts ================================================ import { BoxWidget } from 'lib/types/widget'; const CalendarWidget = (): BoxWidget => { return Widget.Box({ class_name: 'calendar-menu-item-container calendar', hpack: 'fill', vpack: 'fill', expand: true, child: Widget.Box({ class_name: 'calendar-container-box', child: Widget.Calendar({ expand: true, hpack: 'fill', vpack: 'fill', class_name: 'calendar-menu-widget', showDayNames: true, showDetails: false, showHeading: true, }), }), }); }; export { CalendarWidget }; ================================================ FILE: .config/ags/modules/menus/calendar/index.ts ================================================ import DropdownMenu from 'modules/menus/shared/dropdown/index'; import { TimeWidget } from './time/index'; import { CalendarWidget } from './calendar'; import { WeatherWidget } from './weather/index'; import options from 'options'; import Window from 'types/widgets/window'; import { Attribute, Child } from 'lib/types/widget'; const { enabled: weatherEnabled } = options.menus.clock.weather; export default (): Window => { return DropdownMenu({ name: 'calendarmenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'calendar-menu-content', css: 'padding: 1px; margin: -1px;', vexpand: false, children: [ Widget.Box({ class_name: 'calendar-content-container', vertical: true, children: [ Widget.Box({ class_name: 'calendar-content-items', vertical: true, children: weatherEnabled.bind('value').as((isWeatherEnabled) => { return [TimeWidget(), CalendarWidget(), ...(isWeatherEnabled ? [WeatherWidget()] : [])]; }), }), ], }), ], }), }); }; ================================================ FILE: .config/ags/modules/menus/calendar/time/index.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import options from 'options'; const { military, hideSeconds } = options.menus.clock.time; const time = Variable('', { poll: [1000, 'date "+%I:%M:%S"'], }); const period = Variable('', { poll: [1000, 'date "+%p"'], }); const militaryTime = Variable('', { poll: [1000, 'date "+%H:%M:%S"'], }); const TimeWidget = (): BoxWidget => { return Widget.Box({ class_name: 'calendar-menu-item-container clock', hexpand: true, vpack: 'center', hpack: 'fill', child: Widget.Box({ hexpand: true, vpack: 'center', hpack: 'center', class_name: 'clock-content-items', children: Utils.merge( [military.bind('value'), hideSeconds.bind('value')], (is24hr: boolean, hideSeconds: boolean) => { if (!is24hr) { return [ Widget.Box({ hpack: 'center', children: [ Widget.Label({ class_name: 'clock-content-time', label: hideSeconds ? time.bind().as((str) => str.slice(0, -3)) : time.bind(), }), ], }), Widget.Box({ hpack: 'center', children: [ Widget.Label({ vpack: 'end', class_name: 'clock-content-period', label: period.bind(), }), ], }), ]; } return [ Widget.Box({ hpack: 'center', children: [ Widget.Label({ class_name: 'clock-content-time', label: hideSeconds ? militaryTime.bind().as((str) => str.slice(0, -3)) : militaryTime.bind(), }), ], }), ]; }, ), }), }); }; export { TimeWidget }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/hourly/icon/index.ts ================================================ import { Weather, WeatherIconTitle } from 'lib/types/weather.js'; import { Variable } from 'types/variable.js'; import { weatherIcons } from 'modules/icons/weather.js'; import { isValidWeatherIconTitle } from 'globals/weather'; import { BoxWidget } from 'lib/types/widget'; import { getNextEpoch } from '../utils'; export const HourlyIcon = (theWeather: Variable, hoursFromNow: number): BoxWidget => { const getIconQuery = (wthr: Weather): WeatherIconTitle => { const nextEpoch = getNextEpoch(wthr, hoursFromNow); const weatherAtEpoch = wthr.forecast.forecastday[0].hour.find((h) => h.time_epoch === nextEpoch); if (weatherAtEpoch === undefined) { return 'warning'; } let iconQuery = weatherAtEpoch.condition.text.trim().toLowerCase().replaceAll(' ', '_'); if (!weatherAtEpoch?.is_day && iconQuery === 'partly_cloudy') { iconQuery = 'partly_cloudy_night'; } if (isValidWeatherIconTitle(iconQuery)) { return iconQuery; } else { return 'warning'; } }; return Widget.Box({ hpack: 'center', child: theWeather.bind('value').as((w) => { const iconQuery = getIconQuery(w); const weatherIcn = weatherIcons[iconQuery] || weatherIcons['warning']; return Widget.Label({ hpack: 'center', class_name: 'hourly-weather-icon txt-icon', label: weatherIcn, }); }), }); }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/hourly/index.ts ================================================ import { Weather } from 'lib/types/weather'; import { Variable } from 'types/variable'; import { HourlyIcon } from './icon/index.js'; import { HourlyTemp } from './temperature/index.js'; import { HourlyTime } from './time/index.js'; import { BoxWidget } from 'lib/types/widget.js'; export const Hourly = (theWeather: Variable): BoxWidget => { return Widget.Box({ vertical: false, hexpand: true, hpack: 'fill', class_name: 'hourly-weather-container', children: [1, 2, 3, 4].map((hoursFromNow) => { return Widget.Box({ class_name: 'hourly-weather-item', hexpand: true, vertical: true, children: [ HourlyTime(theWeather, hoursFromNow), HourlyIcon(theWeather, hoursFromNow), HourlyTemp(theWeather, hoursFromNow), ], }); }), }); }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/hourly/temperature/index.ts ================================================ import { Weather } from 'lib/types/weather'; import { Variable } from 'types/variable'; import options from 'options'; import Label from 'types/widgets/label'; import { Child } from 'lib/types/widget'; import { getNextEpoch } from '../utils'; const { unit } = options.menus.clock.weather; export const HourlyTemp = (theWeather: Variable, hoursFromNow: number): Label => { return Widget.Label({ class_name: 'hourly-weather-temp', label: Utils.merge([theWeather.bind('value'), unit.bind('value')], (wthr, unt) => { if (!Object.keys(wthr).length) { return '-'; } const nextEpoch = getNextEpoch(wthr, hoursFromNow); const weatherAtEpoch = wthr.forecast.forecastday[0].hour.find((h) => h.time_epoch === nextEpoch); if (unt === 'imperial') { return `${weatherAtEpoch ? Math.ceil(weatherAtEpoch.temp_f) : '-'}° F`; } return `${weatherAtEpoch ? Math.ceil(weatherAtEpoch.temp_c) : '-'}° C`; }), }); }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/hourly/time/index.ts ================================================ import { Weather } from 'lib/types/weather'; import { Child } from 'lib/types/widget'; import { Variable } from 'types/variable'; import Label from 'types/widgets/label'; import { getNextEpoch } from '../utils'; export const HourlyTime = (theWeather: Variable, hoursFromNow: number): Label => { return Widget.Label({ class_name: 'hourly-weather-time', label: theWeather.bind('value').as((w) => { if (!Object.keys(w).length) { return '-'; } const nextEpoch = getNextEpoch(w, hoursFromNow); const dateAtEpoch = new Date(nextEpoch * 1000); let hours = dateAtEpoch.getHours(); const ampm = hours >= 12 ? 'PM' : 'AM'; hours = hours % 12 || 12; return `${hours}${ampm}`; }), }); }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/hourly/utils.ts ================================================ import { Weather } from 'lib/types/weather'; export const getNextEpoch = (wthr: Weather, hoursFromNow: number): number => { const currentEpoch = wthr.location.localtime_epoch; const epochAtHourStart = currentEpoch - (currentEpoch % 3600); let nextEpoch = 3600 * hoursFromNow + epochAtHourStart; const curHour = new Date(currentEpoch * 1000).getHours(); /* * NOTE: Since the API is only capable of showing the current day; if * the hours left in the day are less than 4 (aka spilling into the next day), * then rewind to contain the prediction within the current day. */ if (curHour > 19) { const hoursToRewind = curHour - 19; nextEpoch = 3600 * hoursFromNow + epochAtHourStart - hoursToRewind * 3600; } return nextEpoch; }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/icon/index.ts ================================================ import { Weather } from 'lib/types/weather'; import { Variable } from 'types/variable'; import { getWeatherStatusTextIcon } from 'globals/weather.js'; import { BoxWidget } from 'lib/types/widget'; export const TodayIcon = (theWeather: Variable): BoxWidget => { return Widget.Box({ vpack: 'center', hpack: 'start', class_name: 'calendar-menu-weather today icon container', child: Widget.Label({ class_name: 'calendar-menu-weather today icon txt-icon', label: theWeather.bind('value').as((w) => { return getWeatherStatusTextIcon(w); }), }), }); }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/index.ts ================================================ import { TodayIcon } from './icon/index.js'; import { TodayStats } from './stats/index.js'; import { TodayTemperature } from './temperature/index.js'; import { Hourly } from './hourly/index.js'; import { globalWeatherVar } from 'globals/weather.js'; import { BoxWidget } from 'lib/types/widget.js'; const WeatherWidget = (): BoxWidget => { return Widget.Box({ class_name: 'calendar-menu-item-container weather', child: Widget.Box({ class_name: 'weather-container-box', setup: (self) => { return (self.child = Widget.Box({ vertical: true, hexpand: true, children: [ Widget.Box({ class_name: 'calendar-menu-weather today', hexpand: true, children: [ TodayIcon(globalWeatherVar), TodayTemperature(globalWeatherVar), TodayStats(globalWeatherVar), ], }), Widget.Separator({ class_name: 'menu-separator weather', }), Hourly(globalWeatherVar), ], })); }, }), }); }; export { WeatherWidget }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/stats/index.ts ================================================ import { Weather } from 'lib/types/weather'; import { Variable } from 'types/variable'; import options from 'options'; import { Unit } from 'lib/types/options'; import { getRainChance, getWindConditions } from 'globals/weather'; import { BoxWidget } from 'lib/types/widget'; const { unit } = options.menus.clock.weather; export const TodayStats = (theWeather: Variable): BoxWidget => { return Widget.Box({ class_name: 'calendar-menu-weather today stats container', hpack: 'end', vpack: 'center', vertical: true, children: [ Widget.Box({ class_name: 'weather wind', children: [ Widget.Label({ class_name: 'weather wind icon txt-icon', label: '', }), Widget.Label({ class_name: 'weather wind label', label: Utils.merge( [theWeather.bind('value'), unit.bind('value')], (wthr: Weather, unt: Unit) => { return getWindConditions(wthr, unt); }, ), }), ], }), Widget.Box({ class_name: 'weather precip', children: [ Widget.Label({ class_name: 'weather precip icon txt-icon', label: '', }), Widget.Label({ class_name: 'weather precip label', label: theWeather.bind('value').as((v) => getRainChance(v)), }), ], }), ], }); }; ================================================ FILE: .config/ags/modules/menus/calendar/weather/temperature/index.ts ================================================ import { Weather } from 'lib/types/weather'; import { Variable } from 'types/variable'; import options from 'options'; import { getTemperature, getWeatherIcon } from 'globals/weather'; import { BoxWidget } from 'lib/types/widget'; const { unit } = options.menus.clock.weather; export const TodayTemperature = (theWeather: Variable): BoxWidget => { return Widget.Box({ hpack: 'center', vpack: 'center', vertical: true, children: [ Widget.Box({ hexpand: true, vpack: 'center', class_name: 'calendar-menu-weather today temp container', vertical: false, children: [ Widget.Box({ hexpand: true, hpack: 'center', children: [ Widget.Label({ class_name: 'calendar-menu-weather today temp label', label: Utils.merge([theWeather.bind('value'), unit.bind('value')], (wthr, unt) => { return getTemperature(wthr, unt); }), }), Widget.Label({ class_name: theWeather .bind('value') .as( (v) => `calendar-menu-weather today temp label icon txt-icon ${getWeatherIcon(Math.ceil(v.current.temp_f)).color}`, ), label: theWeather .bind('value') .as((v) => getWeatherIcon(Math.ceil(v.current.temp_f)).icon), }), ], }), ], }), Widget.Box({ hpack: 'center', child: Widget.Label({ max_width_chars: 17, truncate: 'end', lines: 2, class_name: theWeather .bind('value') .as( (v) => `calendar-menu-weather today condition label ${getWeatherIcon(Math.ceil(v.current.temp_f)).color}`, ), label: theWeather.bind('value').as((v) => v.current.condition.text), }), }), ], }); }; ================================================ FILE: .config/ags/modules/menus/dashboard/controls/index.ts ================================================ import { BoxWidget } from 'lib/types/widget'; const network = await Service.import('network'); const bluetooth = await Service.import('bluetooth'); const notifications = await Service.import('notifications'); const audio = await Service.import('audio'); const Controls = (): BoxWidget => { return Widget.Box({ class_name: 'dashboard-card controls-container', hpack: 'fill', vpack: 'fill', expand: true, children: [ Widget.Button({ tooltip_text: 'Toggle Wifi', expand: true, setup: (self) => { self.hook(network, () => { return (self.class_name = `dashboard-button wifi ${!network.wifi.enabled ? 'disabled' : ''}`); }); }, on_primary_click: () => network.toggleWifi(), child: Widget.Label({ class_name: 'txt-icon', setup: (self) => { self.hook(network, () => { return (self.label = network.wifi.enabled ? '󰤨' : '󰤭'); }); }, }), }), Widget.Button({ tooltip_text: 'Toggle Bluetooth', expand: true, class_name: bluetooth .bind('enabled') .as((btOn) => `dashboard-button bluetooth ${!btOn ? 'disabled' : ''}`), on_primary_click: () => bluetooth.toggle(), child: Widget.Label({ class_name: 'txt-icon', label: bluetooth.bind('enabled').as((btOn) => (btOn ? '󰂯' : '󰂲')), }), }), Widget.Button({ tooltip_text: 'Toggle Notifications', expand: true, class_name: notifications .bind('dnd') .as((dnd) => `dashboard-button notifications ${dnd ? 'disabled' : ''}`), on_primary_click: () => (notifications.dnd = !notifications.dnd), child: Widget.Label({ class_name: 'txt-icon', label: notifications.bind('dnd').as((dnd) => (dnd ? '󰂛' : '󰂚')), }), }), Widget.Button({ tooltip_text: 'Toggle Mute (Playback)', expand: true, on_primary_click: () => (audio.speaker.is_muted = !audio.speaker.is_muted), setup: (self) => { self.hook( audio.speaker, () => { return (self.class_name = `dashboard-button playback ${audio.speaker.is_muted ? 'disabled' : ''}`); }, 'notify::is-muted', ); }, child: Widget.Label({ class_name: 'txt-icon', setup: (self) => { self.hook( audio.speaker, () => { return (self.label = audio.speaker.is_muted ? '󰖁' : '󰕾'); }, 'notify::is-muted', ); }, }), }), Widget.Button({ tooltip_text: 'Toggle Mute (Microphone)', expand: true, on_primary_click: () => (audio.microphone.is_muted = !audio.microphone.is_muted), setup: (self) => { self.hook( audio.microphone, () => { return (self.class_name = `dashboard-button input ${audio.microphone.is_muted ? 'disabled' : ''}`); }, 'notify::is-muted', ); }, child: Widget.Label({ class_name: 'txt-icon', setup: (self) => { self.hook( audio.microphone, () => { return (self.label = audio.microphone.is_muted ? '󰍭' : '󰍬'); }, 'notify::is-muted', ); }, }), }), ], }); }; export { Controls }; ================================================ FILE: .config/ags/modules/menus/dashboard/directories/index.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import options from 'options'; const { left, right } = options.menus.dashboard.directories; const Directories = (): BoxWidget => { return Widget.Box({ class_name: 'dashboard-card directories-container', vpack: 'fill', hpack: 'fill', expand: true, children: [ Widget.Box({ vertical: true, expand: true, class_name: 'section right', children: [ Widget.Button({ hpack: 'start', expand: true, class_name: 'directory-link left top', on_primary_click: left.directory1.command.bind('value').as((cmd) => { return () => { App.closeWindow('dashboardmenu'); Utils.execAsync(cmd); }; }), child: Widget.Label({ hpack: 'start', label: left.directory1.label.bind('value'), }), }), Widget.Button({ expand: true, hpack: 'start', class_name: 'directory-link left middle', on_primary_click: left.directory2.command.bind('value').as((cmd) => { return () => { App.closeWindow('dashboardmenu'); Utils.execAsync(cmd); }; }), child: Widget.Label({ hpack: 'start', label: left.directory2.label.bind('value'), }), }), Widget.Button({ expand: true, hpack: 'start', class_name: 'directory-link left bottom', on_primary_click: left.directory3.command.bind('value').as((cmd) => { return () => { App.closeWindow('dashboardmenu'); Utils.execAsync(cmd); }; }), child: Widget.Label({ hpack: 'start', label: left.directory3.label.bind('value'), }), }), ], }), Widget.Box({ vertical: true, expand: true, class_name: 'section left', children: [ Widget.Button({ hpack: 'start', expand: true, class_name: 'directory-link right top', on_primary_click: right.directory1.command.bind('value').as((cmd) => { return () => { App.closeWindow('dashboardmenu'); Utils.execAsync(cmd); }; }), child: Widget.Label({ hpack: 'start', label: right.directory1.label.bind('value'), }), }), Widget.Button({ expand: true, hpack: 'start', class_name: 'directory-link right middle', on_primary_click: right.directory2.command.bind('value').as((cmd) => { return () => { App.closeWindow('dashboardmenu'); Utils.execAsync(cmd); }; }), child: Widget.Label({ hpack: 'start', label: right.directory2.label.bind('value'), }), }), Widget.Button({ expand: true, hpack: 'start', class_name: 'directory-link right bottom', on_primary_click: right.directory3.command.bind('value').as((cmd) => { return () => { App.closeWindow('dashboardmenu'); Utils.execAsync(cmd); }; }), child: Widget.Label({ hpack: 'start', label: right.directory3.label.bind('value'), }), }), ], }), ], }); }; export { Directories }; ================================================ FILE: .config/ags/modules/menus/dashboard/index.ts ================================================ import DropdownMenu from '../shared/dropdown/index.js'; import { Profile } from './profile/index.js'; import { Shortcuts } from './shortcuts/index.js'; import { Controls } from './controls/index.js'; import { Stats } from './stats/index.js'; import { Directories } from './directories/index.js'; import Window from 'types/widgets/window.js'; import { Attribute, Child } from 'lib/types/widget.js'; import options from 'options.js'; const { controls, shortcuts, stats, directories } = options.menus.dashboard; export default (): Window => { return DropdownMenu({ name: 'dashboardmenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'dashboard-menu-content', css: 'padding: 1px; margin: -1px;', vexpand: false, children: [ Widget.Box({ class_name: 'dashboard-content-container', vertical: true, children: Utils.merge( [ controls.enabled.bind('value'), shortcuts.enabled.bind('value'), stats.enabled.bind('value'), directories.enabled.bind('value'), ], (isControlsEnabled, isShortcutsEnabled, isStatsEnabled, isDirectoriesEnabled) => { return [ Widget.Box({ class_name: 'dashboard-content-items', vertical: true, children: [ Profile(), ...(isShortcutsEnabled ? [Shortcuts()] : []), ...(isControlsEnabled ? [Controls()] : []), ...(isDirectoriesEnabled ? [Directories()] : []), ...(isStatsEnabled ? [Stats()] : []), ], }), ]; }, ), }), ], }), }); }; ================================================ FILE: .config/ags/modules/menus/dashboard/profile/index.ts ================================================ import powermenu from '../../power/helpers/actions.js'; import { PowerOptions } from 'lib/types/options.js'; import GdkPixbuf from 'gi://GdkPixbuf'; import options from 'options'; import { BoxWidget, Child } from 'lib/types/widget.js'; import Label from 'types/widgets/label.js'; const { image, name } = options.menus.dashboard.powermenu.avatar; const { confirmation, shutdown, logout, sleep, reboot } = options.menus.dashboard.powermenu; const Profile = (): BoxWidget => { const handleClick = (action: PowerOptions): void => { const actions = { shutdown: shutdown.value, reboot: reboot.value, logout: logout.value, sleep: sleep.value, }; App.closeWindow('dashboardmenu'); if (!confirmation.value) { Utils.execAsync(actions[action]).catch((err) => console.error(`Failed to execute ${action} command. Error: ${err}`), ); } else { powermenu.action(action); } }; const getIconForButton = (txtIcon: string): Label => { return Widget.Label({ className: 'txt-icon', label: txtIcon, }); }; return Widget.Box({ class_name: 'profiles-container', hpack: 'fill', hexpand: true, children: [ Widget.Box({ class_name: 'profile-picture-container dashboard-card', hexpand: true, vertical: true, children: [ Widget.Box({ hpack: 'center', class_name: 'profile-picture', css: image.bind('value').as((i) => { try { GdkPixbuf.Pixbuf.new_from_file(i); return `background-image: url("${i}")`; } catch { return `background-image: url("${App.configDir}/assets/hyprpanel.png")`; } }), }), Widget.Label({ hpack: 'center', class_name: 'profile-name', label: name.bind('value').as((v) => { if (v === 'system') { return Utils.exec('bash -c whoami'); } return v; }), }), ], }), Widget.Box({ class_name: 'power-menu-container dashboard-card', vertical: true, vexpand: true, children: [ Widget.Button({ class_name: 'dashboard-button shutdown', on_clicked: () => handleClick('shutdown'), tooltip_text: 'Shut Down', vexpand: true, child: getIconForButton('󰐥'), }), Widget.Button({ class_name: 'dashboard-button restart', on_clicked: () => handleClick('reboot'), tooltip_text: 'Restart', vexpand: true, child: getIconForButton('󰜉'), }), Widget.Button({ class_name: 'dashboard-button lock', on_clicked: () => handleClick('logout'), tooltip_text: 'Log Out', vexpand: true, child: getIconForButton('󰿅'), }), Widget.Button({ class_name: 'dashboard-button sleep', on_clicked: () => handleClick('sleep'), tooltip_text: 'Sleep', vexpand: true, child: getIconForButton('󰤄'), }), ], }), ], }); }; export { Profile }; ================================================ FILE: .config/ags/modules/menus/dashboard/shortcuts/index.ts ================================================ const hyprland = await Service.import('hyprland'); import { Attribute, BoxWidget, Child } from 'lib/types/widget'; import options from 'options'; import { Variable as VarType } from 'types/variable'; import Box from 'types/widgets/box'; import Button from 'types/widgets/button'; import Label from 'types/widgets/label'; const { left, right } = options.menus.dashboard.shortcuts; const Shortcuts = (): BoxWidget => { const isRecording = Variable(false, { poll: [ 1000, `${App.configDir}/services/screen_record.sh status`, (out): boolean => { if (out === 'recording') { return true; } return false; }, ], }); const handleClick = (action: string, tOut: number = 250): void => { App.closeWindow('dashboardmenu'); setTimeout(() => { Utils.execAsync(action) .then((res) => { return res; }) .catch((err) => err); }, tOut); }; const recordingDropdown = Widget.Menu({ class_name: 'dropdown recording', hpack: 'fill', hexpand: true, setup: (self) => { const renderMonitorList = (): void => { const displays = hyprland.monitors.map((mon) => { return Widget.MenuItem({ label: `Display ${mon.name}`, on_activate: () => { App.closeWindow('dashboardmenu'); Utils.execAsync(`${App.configDir}/services/screen_record.sh start ${mon.name}`).catch( (err) => console.error(err), ); }, }); }); // NOTE: This is disabled since window recording isn't available on wayland // const apps = hyprland.clients.map((clt) => { // return Widget.MenuItem({ // label: `${clt.class.charAt(0).toUpperCase() + clt.class.slice(1)} (Workspace ${clt.workspace.name})`, // on_activate: () => { // App.closeWindow('dashboardmenu'); // Utils.execAsync( // `${App.configDir}/services/screen_record.sh start ${clt.focusHistoryID}`, // ).catch((err) => console.error(err)); // }, // }); // }); self.children = [ ...displays, // Disabled since window recording isn't available on wayland // ...apps ]; }; self.hook(hyprland, renderMonitorList, 'monitor-added'); self.hook(hyprland, renderMonitorList, 'monitor-removed'); }, }); type ShortcutFixed = { tooltip: string; command: string; icon: string; configurable: false; }; type ShortcutVariable = { tooltip: VarType; command: VarType; icon: VarType; configurable?: true; }; type Shortcut = ShortcutFixed | ShortcutVariable; const cmdLn = (sCut: ShortcutVariable): boolean => { return sCut.command.value.length > 0; }; const leftCardHidden = Variable( !(cmdLn(left.shortcut1) || cmdLn(left.shortcut2) || cmdLn(left.shortcut3) || cmdLn(left.shortcut4)), ); const createButton = (shortcut: Shortcut, className: string): Button, Attribute> => { if (shortcut.configurable !== false) { return Widget.Button({ vexpand: true, tooltip_text: shortcut.tooltip.value, class_name: className, on_primary_click: () => handleClick(shortcut.command.value), child: Widget.Label({ class_name: 'button-label txt-icon', label: shortcut.icon.value, }), }); } else { // handle non-configurable shortcut return Widget.Button({ vexpand: true, tooltip_text: shortcut.tooltip, class_name: className, on_primary_click: (_, event) => { if (shortcut.command === 'settings-dialog') { App.closeWindow('dashboardmenu'); App.toggleWindow('settings-dialog'); } else if (shortcut.command === 'record') { if (isRecording.value === true) { App.closeWindow('dashboardmenu'); return Utils.execAsync(`${App.configDir}/services/screen_record.sh stop`).catch((err) => console.error(err), ); } else { recordingDropdown.popup_at_pointer(event); } } }, child: Widget.Label({ class_name: 'button-label txt-icon', label: shortcut.icon, }), }); } }; const createButtonIfCommandExists = ( shortcut: Shortcut, className: string, command: string, ): Button, Attribute> | Box => { if (command.length > 0) { return createButton(shortcut, className); } return Widget.Box(); }; return Widget.Box({ class_name: 'shortcuts-container', hpack: 'fill', hexpand: true, children: [ Widget.Box({ child: Utils.merge( [ left.shortcut1.command.bind('value'), left.shortcut2.command.bind('value'), left.shortcut1.tooltip.bind('value'), left.shortcut2.tooltip.bind('value'), left.shortcut1.icon.bind('value'), left.shortcut2.icon.bind('value'), left.shortcut3.command.bind('value'), left.shortcut4.command.bind('value'), left.shortcut3.tooltip.bind('value'), left.shortcut4.tooltip.bind('value'), left.shortcut3.icon.bind('value'), left.shortcut4.icon.bind('value'), ], () => { const isVisibleLeft = cmdLn(left.shortcut1) || cmdLn(left.shortcut2); const isVisibleRight = cmdLn(left.shortcut3) || cmdLn(left.shortcut4); if (!isVisibleLeft && !isVisibleRight) { leftCardHidden.value = true; return Widget.Box(); } leftCardHidden.value = false; return Widget.Box({ class_name: 'container most-used dashboard-card', children: [ Widget.Box({ className: `card-button-section-container ${isVisibleRight && isVisibleLeft ? 'visible' : ''}`, child: isVisibleLeft ? Widget.Box({ vertical: true, hexpand: true, vexpand: true, children: [ createButtonIfCommandExists( left.shortcut1, `dashboard-button top-button ${cmdLn(left.shortcut2) ? 'paired' : ''}`, left.shortcut1.command.value, ), createButtonIfCommandExists( left.shortcut2, 'dashboard-button', left.shortcut2.command.value, ), ], }) : Widget.Box({ children: [], }), }), Widget.Box({ className: 'card-button-section-container', child: isVisibleRight ? Widget.Box({ vertical: true, hexpand: true, vexpand: true, children: [ createButtonIfCommandExists( left.shortcut3, `dashboard-button top-button ${cmdLn(left.shortcut4) ? 'paired' : ''}`, left.shortcut3.command.value, ), createButtonIfCommandExists( left.shortcut4, 'dashboard-button', left.shortcut4.command.value, ), ], }) : Widget.Box({ children: [], }), }), ], }); }, ), }), Widget.Box({ child: Utils.merge( [ right.shortcut1.command.bind('value'), right.shortcut1.tooltip.bind('value'), right.shortcut1.icon.bind('value'), right.shortcut3.command.bind('value'), right.shortcut3.tooltip.bind('value'), right.shortcut3.icon.bind('value'), leftCardHidden.bind('value'), isRecording.bind('value'), ], () => { return Widget.Box({ class_name: `container utilities dashboard-card ${!leftCardHidden.value ? 'paired' : ''}`, children: [ Widget.Box({ className: `card-button-section-container visible`, child: Widget.Box({ vertical: true, hexpand: true, vexpand: true, children: [ createButtonIfCommandExists( right.shortcut1, 'dashboard-button top-button paired', right.shortcut1.command.value, ), createButtonIfCommandExists( { tooltip: 'HyprPanel Configuration', command: 'settings-dialog', icon: '󰒓', configurable: false, }, 'dashboard-button', 'settings-dialog', ), ], }), }), Widget.Box({ className: 'card-button-section-container', child: Widget.Box({ vertical: true, hexpand: true, vexpand: true, children: [ createButtonIfCommandExists( right.shortcut3, 'dashboard-button top-button paired', right.shortcut3.command.value, ), createButtonIfCommandExists( { tooltip: 'Record Screen', command: 'record', icon: '󰑊', configurable: false, }, `dashboard-button record ${isRecording.value ? 'active' : ''}`, 'record', ), ], }), }), ], }); }, ), }), ], }); }; export { Shortcuts }; ================================================ FILE: .config/ags/modules/menus/dashboard/stats/index.ts ================================================ import options from 'options'; import Ram from 'services/Ram'; import { GPU_Stat } from 'lib/types/gpustat'; import { dependencies } from 'lib/utils'; import { BoxWidget } from 'lib/types/widget'; import Cpu from 'services/Cpu'; import Storage from 'services/Storage'; import { renderResourceLabel } from 'customModules/utils'; const { terminal } = options; const { enable_gpu, interval } = options.menus.dashboard.stats; const ramService = new Ram(); const cpuService = new Cpu(); const storageService = new Storage(); ramService.setShouldRound(true); storageService.setShouldRound(true); interval.connect('changed', () => { ramService.updateTimer(interval.value); cpuService.updateTimer(interval.value); storageService.updateTimer(interval.value); }); const handleClick = (): void => { App.closeWindow('dashboardmenu'); Utils.execAsync(`bash -c "${terminal} -e btop"`).catch((err) => `Failed to open btop: ${err}`); }; const Stats = (): BoxWidget => { const divide = ([total, free]: number[]): number => free / total; const gpu = Variable(0); const GPUStat = Widget.Box({ child: enable_gpu.bind('value').as((gpStat) => { if (!gpStat || !dependencies('gpustat')) { return Widget.Box(); } return Widget.Box({ vertical: true, children: [ Widget.Box({ class_name: 'stat gpu', hexpand: true, vpack: 'center', setup: (self) => { const getGpuUsage = (): void => { if (!enable_gpu.value) { gpu.value = 0; return; } Utils.execAsync('gpustat --json') .then((out) => { if (typeof out !== 'string') { return 0; } try { const data = JSON.parse(out); const totalGpu = 100; const usedGpu = data.gpus.reduce((acc: number, gpu: GPU_Stat) => { return acc + gpu['utilization.gpu']; }, 0) / data.gpus.length; gpu.value = divide([totalGpu, usedGpu]); } catch (e) { console.error('Error getting GPU stats:', e); gpu.value = 0; } }) .catch((err) => { console.error(`An error occurred while fetching GPU stats: ${err}`); }); }; self.poll(2000, getGpuUsage); Utils.merge([gpu.bind('value'), enable_gpu.bind('value')], (gpu, enableGpu) => { if (!enableGpu) { return (self.children = []); } return (self.children = [ Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.Label({ class_name: 'txt-icon', label: '󰢮', }), }), Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.LevelBar({ class_name: 'stats-bar', hexpand: true, vpack: 'center', value: gpu, }), }), ]); }); }, }), Widget.Box({ hpack: 'end', children: Utils.merge([gpu.bind('value'), enable_gpu.bind('value')], (gpuUsed, enableGpu) => { if (!enableGpu) { return []; } return [ Widget.Label({ class_name: 'stat-value gpu', label: `${Math.floor(gpuUsed * 100)}%`, }), ]; }), }), ], }); }), }); return Widget.Box({ class_name: 'dashboard-card stats-container', vertical: true, vpack: 'fill', hpack: 'fill', expand: true, children: [ Widget.Box({ vertical: true, children: [ Widget.Box({ class_name: 'stat cpu', hexpand: true, vpack: 'center', children: [ Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.Label({ class_name: 'txt-icon', label: '', }), }), Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.LevelBar({ class_name: 'stats-bar', hexpand: true, vpack: 'center', bar_mode: 'continuous', max_value: 1, value: cpuService.cpu.bind('value').as((cpuUsage) => Math.round(cpuUsage) / 100), }), }), ], }), Widget.Label({ hpack: 'end', class_name: 'stat-value cpu', label: cpuService.cpu.bind('value').as((cpuUsage) => `${Math.round(cpuUsage)}%`), }), ], }), Widget.Box({ vertical: true, children: [ Widget.Box({ class_name: 'stat ram', vpack: 'center', hexpand: true, children: [ Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.Label({ class_name: 'txt-icon', label: '', }), }), Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.LevelBar({ class_name: 'stats-bar', hexpand: true, vpack: 'center', value: ramService.ram.bind('value').as((ramUsage) => { return ramUsage.percentage / 100; }), }), }), ], }), Widget.Label({ hpack: 'end', class_name: 'stat-value ram', label: ramService.ram .bind('value') .as((ramUsage) => `${renderResourceLabel('used/total', ramUsage, true)}`), }), ], }), GPUStat, Widget.Box({ vertical: true, children: [ Widget.Box({ class_name: 'stat storage', hexpand: true, vpack: 'center', children: [ Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.Label({ class_name: 'txt-icon', label: '󰋊', }), }), Widget.Button({ on_primary_click: () => { handleClick(); }, child: Widget.LevelBar({ class_name: 'stats-bar', hexpand: true, vpack: 'center', value: storageService.storage .bind('value') .as((storageUsage) => storageUsage.percentage / 100), }), }), ], }), Widget.Label({ hpack: 'end', class_name: 'stat-value storage', label: storageService.storage .bind('value') .as((storageUsage) => `${renderResourceLabel('used/total', storageUsage, true)}`), }), ], }), ], }); }; export { Stats }; ================================================ FILE: .config/ags/modules/menus/energy/brightness/index.ts ================================================ import { BoxWidget } from 'lib/types/widget.js'; import brightness from '../../../../services/Brightness.js'; import icons from '../../../icons/index.js'; const Brightness = (): BoxWidget => { return Widget.Box({ class_name: 'menu-section-container brightness', vertical: true, children: [ Widget.Box({ class_name: 'menu-label-container', hpack: 'fill', child: Widget.Label({ class_name: 'menu-label', hexpand: true, hpack: 'start', label: 'Brightness', }), }), Widget.Box({ class_name: 'menu-items-section', vpack: 'fill', vexpand: true, vertical: true, child: Widget.Box({ class_name: 'brightness-container', children: [ Widget.Icon({ vexpand: true, vpack: 'center', class_name: 'brightness-slider-icon', icon: icons.brightness.screen, }), Widget.Slider({ vpack: 'center', vexpand: true, value: brightness.bind('screen'), class_name: 'menu-active-slider menu-slider brightness', draw_value: false, hexpand: true, min: 0, max: 1, onChange: ({ value }) => (brightness.screen = value), }), Widget.Label({ vpack: 'center', vexpand: true, class_name: 'brightness-slider-label', label: brightness.bind('screen').as((b) => `${Math.round(b * 100)}%`), }), ], }), }), ], }); }; export { Brightness }; ================================================ FILE: .config/ags/modules/menus/energy/index.ts ================================================ import DropdownMenu from '../shared/dropdown/index.js'; import { EnergyProfiles } from './profiles/index.js'; import { Brightness } from './brightness/index.js'; import { Attribute, Child } from 'lib/types/widget.js'; import Window from 'types/widgets/window.js'; import options from 'options.js'; export default (): Window => { return DropdownMenu({ name: 'energymenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'menu-items energy', hpack: 'fill', hexpand: true, child: Widget.Box({ vertical: true, hpack: 'fill', hexpand: true, class_name: 'menu-items-container energy', children: [Brightness(), EnergyProfiles()], }), }), }); }; ================================================ FILE: .config/ags/modules/menus/energy/profiles/index.ts ================================================ const powerProfiles = await Service.import('powerprofiles'); import { PowerProfile, PowerProfileObject, PowerProfiles } from 'lib/types/powerprofiles.js'; import { BoxWidget } from 'lib/types/widget.js'; import icons from '../../../icons/index.js'; import { uptime } from 'lib/variables.js'; const EnergyProfiles = (): BoxWidget => { const isValidProfile = (profile: string): profile is PowerProfile => profile === 'power-saver' || profile === 'balanced' || profile === 'performance'; function renderUptime(curUptime: number): string { const days = Math.floor(curUptime / (60 * 24)); const hours = Math.floor((curUptime % (60 * 24)) / 60); const minutes = Math.floor(curUptime % 60); return ` : ${days}d ${hours}h ${minutes}m`; } return Widget.Box({ class_name: 'menu-section-container energy', vertical: true, children: [ Widget.Box({ class_name: 'menu-label-container', hpack: 'fill', children: [ Widget.Label({ class_name: 'menu-label', hexpand: true, hpack: 'start', label: 'Power Profile', }), Widget.Label({ class_name: 'menu-label uptime', label: uptime.bind().as(renderUptime), tooltipText: 'Uptime', }), ], }), Widget.Box({ class_name: 'menu-items-section', vpack: 'fill', vexpand: true, vertical: true, children: powerProfiles.bind('profiles').as((profiles: PowerProfiles) => { return profiles.map((prof: PowerProfileObject) => { const profileLabels = { 'power-saver': 'Power Saver', balanced: 'Balanced', performance: 'Performance', }; const profileType = prof.Profile; if (!isValidProfile(profileType)) { return profileLabels.balanced; } return Widget.Button({ on_primary_click: () => { powerProfiles.active_profile = prof.Profile; }, class_name: powerProfiles.bind('active_profile').as((active) => { return `power-profile-item ${active === prof.Profile ? 'active' : ''}`; }), child: Widget.Box({ children: [ Widget.Icon({ class_name: 'power-profile-icon', icon: icons.powerprofile[profileType], }), Widget.Label({ class_name: 'power-profile-label', label: profileLabels[profileType], }), ], }), }); }); }), }), ], }); }; export { EnergyProfiles }; ================================================ FILE: .config/ags/modules/menus/main.ts ================================================ import PowerMenu from './power/index.js'; import Verification from './power/verification.js'; import AudioMenu from './audio/index.js'; import NetworkMenu from './network/index.js'; import BluetoothMenu from './bluetooth/index.js'; import MediaMenu from './media/index.js'; import NotificationsMenu from './notifications/index.js'; import CalendarMenu from './calendar/index.js'; import EnergyMenu from './energy/index.js'; import DashboardMenu from './dashboard/index.js'; import PowerDropdown from './powerDropdown/index.js'; export default [ PowerMenu(), Verification(), AudioMenu(), NetworkMenu(), BluetoothMenu(), MediaMenu(), NotificationsMenu(), CalendarMenu(), EnergyMenu(), DashboardMenu(), PowerDropdown(), ]; ================================================ FILE: .config/ags/modules/menus/media/components/bar.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import { Mpris, MprisPlayer } from 'types/service/mpris'; const media = await Service.import('mpris'); const Bar = (getPlayerInfo: (media: Mpris) => MprisPlayer): BoxWidget => { return Widget.Box({ class_name: 'media-indicator-current-progress-bar', hexpand: true, children: [ Widget.Box({ hexpand: true, child: Widget.Slider({ hexpand: true, tooltip_text: '--', class_name: 'menu-slider media progress', draw_value: false, on_change: ({ value }) => { const foundPlayer = getPlayerInfo(media); if (foundPlayer === undefined) { return; } return (foundPlayer.position = value * foundPlayer.length); }, setup: (self) => { const update = (): void => { const foundPlayer = getPlayerInfo(media); if (foundPlayer !== undefined) { const value = foundPlayer.length ? foundPlayer.position / foundPlayer.length : 0; self.value = value > 0 ? value : 0; } else { self.value = 0; } }; self.hook(media, update); self.poll(1000, update); const updateTooltip = (): void => { const foundPlayer = getPlayerInfo(media); if (foundPlayer === undefined) { self.tooltip_text = '00:00'; return; } const curHour = Math.floor(foundPlayer.position / 3600); const curMin = Math.floor((foundPlayer.position % 3600) / 60); const curSec = Math.floor(foundPlayer.position % 60); if (typeof foundPlayer.position === 'number' && foundPlayer.position >= 0) { const formatTime = (time: number): string => { return time.toString().padStart(2, '0'); }; const formatHour = (hour: number): string => { return hour > 0 ? formatTime(hour) + ':' : ''; }; self.tooltip_text = `${formatHour(curHour)}${formatTime(curMin)}:${formatTime(curSec)}`; } else { self.tooltip_text = `00:00`; } }; self.poll(1000, updateTooltip); self.hook(media, updateTooltip); }, }), }), ], }); }; export { Bar }; ================================================ FILE: .config/ags/modules/menus/media/components/controls.ts ================================================ import { MprisPlayer } from 'types/service/mpris.js'; import icons from '../../../icons/index.js'; import { LoopStatus, PlaybackStatus } from 'lib/types/mpris.js'; import { BoxWidget } from 'lib/types/widget.js'; const media = await Service.import('mpris'); const Controls = (getPlayerInfo: () => MprisPlayer): BoxWidget => { const isValidLoopStatus = (status: string): status is LoopStatus => ['none', 'track', 'playlist'].includes(status); const isValidPlaybackStatus = (status: string): status is PlaybackStatus => ['playing', 'paused', 'stopped'].includes(status); const isLoopActive = (player: MprisPlayer): string => { return player['loop_status'] !== null && ['track', 'playlist'].includes(player['loop_status'].toLowerCase()) ? 'active' : ''; }; const isShuffleActive = (player: MprisPlayer): string => { return player['shuffle_status'] !== null && player['shuffle_status'] ? 'active' : ''; }; return Widget.Box({ class_name: 'media-indicator-current-player-controls', vertical: true, children: [ Widget.Box({ class_name: 'media-indicator-current-controls', hpack: 'center', children: [ Widget.Box({ class_name: 'media-indicator-control shuffle', children: [ Widget.Button({ hpack: 'center', hasTooltip: true, setup: (self) => { self.hook(media, () => { const foundPlayer = getPlayerInfo(); if (foundPlayer === undefined) { self.tooltip_text = 'Unavailable'; self.class_name = 'media-indicator-control-button shuffle disabled'; return; } self.tooltip_text = foundPlayer.shuffle_status !== null ? foundPlayer.shuffle_status ? 'Shuffling' : 'Not Shuffling' : null; self.on_primary_click = (): void => { foundPlayer.shuffle(); }; self.class_name = `media-indicator-control-button shuffle ${isShuffleActive(foundPlayer)} ${foundPlayer.shuffle_status !== null ? 'enabled' : 'disabled'}`; }); }, child: Widget.Icon(icons.mpris.shuffle['enabled']), }), ], }), Widget.Box({ children: [ Widget.Button({ hpack: 'center', child: Widget.Icon(icons.mpris.prev), setup: (self) => { self.hook(media, () => { const foundPlayer = getPlayerInfo(); if (foundPlayer === undefined) { self.class_name = 'media-indicator-control-button prev disabled'; return; } self.on_primary_click = (): void => { foundPlayer.previous(); }; self.class_name = `media-indicator-control-button prev ${foundPlayer.can_go_prev !== null && foundPlayer.can_go_prev ? 'enabled' : 'disabled'}`; }); }, }), ], }), Widget.Box({ children: [ Widget.Button({ hpack: 'center', setup: (self) => { self.hook(media, () => { const foundPlayer = getPlayerInfo(); if (foundPlayer === undefined) { self.class_name = 'media-indicator-control-button play disabled'; return; } self.on_primary_click = (): void => { foundPlayer.playPause(); }; self.class_name = `media-indicator-control-button play ${foundPlayer.can_play !== null ? 'enabled' : 'disabled'}`; }); }, child: Widget.Icon({ icon: Utils.watch(icons.mpris.paused, media, 'changed', () => { const foundPlayer: MprisPlayer = getPlayerInfo(); if (foundPlayer === undefined) { return icons.mpris['paused']; } const playbackStatus = foundPlayer.play_back_status?.toLowerCase(); if (playbackStatus && isValidPlaybackStatus(playbackStatus)) { return icons.mpris[playbackStatus]; } else { return icons.mpris['paused']; } }), }), }), ], }), Widget.Box({ class_name: `media-indicator-control next`, children: [ Widget.Button({ hpack: 'center', child: Widget.Icon(icons.mpris.next), setup: (self) => { self.hook(media, () => { const foundPlayer = getPlayerInfo(); if (foundPlayer === undefined) { self.class_name = 'media-indicator-control-button next disabled'; return; } self.on_primary_click = (): void => { foundPlayer.next(); }; self.class_name = `media-indicator-control-button next ${foundPlayer.can_go_next !== null && foundPlayer.can_go_next ? 'enabled' : 'disabled'}`; }); }, }), ], }), Widget.Box({ class_name: 'media-indicator-control loop', children: [ Widget.Button({ hpack: 'center', setup: (self) => { self.hook(media, () => { const foundPlayer = getPlayerInfo(); if (foundPlayer === undefined) { self.tooltip_text = 'Unavailable'; self.class_name = 'media-indicator-control-button shuffle disabled'; return; } self.tooltip_text = foundPlayer.loop_status !== null ? foundPlayer.loop_status ? 'Shuffling' : 'Not Shuffling' : null; self.on_primary_click = (): void => { foundPlayer.loop(); }; self.class_name = `media-indicator-control-button loop ${isLoopActive(foundPlayer)} ${foundPlayer.loop_status !== null ? 'enabled' : 'disabled'}`; }); }, child: Widget.Icon({ setup: (self) => { self.hook(media, () => { const foundPlayer: MprisPlayer = getPlayerInfo(); if (foundPlayer === undefined) { self.icon = icons.mpris.loop['none']; return; } const loopStatus = foundPlayer.loop_status?.toLowerCase(); if (loopStatus && isValidLoopStatus(loopStatus)) { self.icon = icons.mpris.loop[loopStatus]; } else { self.icon = icons.mpris.loop['none']; } }); }, }), }), ], }), ], }), ], }); }; export { Controls }; ================================================ FILE: .config/ags/modules/menus/media/components/mediainfo.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import { MprisPlayer } from 'types/service/mpris'; const media = await Service.import('mpris'); const MediaInfo = (getPlayerInfo: () => MprisPlayer): BoxWidget => { return Widget.Box({ class_name: 'media-indicator-current-media-info', hpack: 'center', hexpand: true, vertical: true, children: [ Widget.Box({ class_name: 'media-indicator-current-song-name', hpack: 'center', children: [ Widget.Label({ truncate: 'end', max_width_chars: 31, wrap: true, class_name: 'media-indicator-current-song-name-label', setup: (self) => { self.hook(media, () => { const curPlayer = getPlayerInfo(); return (self.label = curPlayer !== undefined && curPlayer['track_title'].length ? curPlayer['track_title'] : 'No Media Currently Playing'); }); }, }), ], }), Widget.Box({ class_name: 'media-indicator-current-song-author', hpack: 'center', children: [ Widget.Label({ truncate: 'end', wrap: true, max_width_chars: 35, class_name: 'media-indicator-current-song-author-label', setup: (self) => { self.hook(media, () => { const curPlayer = getPlayerInfo(); const makeArtistList = (trackArtists: string[]): string => { if (trackArtists.length === 1 && !trackArtists[0].length) { return '-----'; } return trackArtists.join(', '); }; return (self.label = curPlayer !== undefined && curPlayer['track_artists'].length ? makeArtistList(curPlayer['track_artists']) : '-----'); }); }, }), ], }), Widget.Box({ class_name: 'media-indicator-current-song-album', hpack: 'center', children: [ Widget.Label({ truncate: 'end', wrap: true, max_width_chars: 40, class_name: 'media-indicator-current-song-album-label', setup: (self) => { self.hook(media, () => { const curPlayer = getPlayerInfo(); return (self.label = curPlayer !== undefined && curPlayer['track_album'].length ? curPlayer['track_album'] : '---'); }); }, }), ], }), ], }); }; export { MediaInfo }; ================================================ FILE: .config/ags/modules/menus/media/index.ts ================================================ import Window from 'types/widgets/window.js'; import DropdownMenu from '../shared/dropdown/index.js'; import { Media } from './media.js'; import { Attribute, Child } from 'lib/types/widget.js'; import options from 'options.js'; export default (): Window => { return DropdownMenu({ name: 'mediamenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'menu-items media', hpack: 'fill', hexpand: true, child: Widget.Box({ class_name: 'menu-items-container media', hpack: 'fill', hexpand: true, child: Media(), }), }), }); }; ================================================ FILE: .config/ags/modules/menus/media/media.ts ================================================ const media = await Service.import('mpris'); import { MediaInfo } from './components/mediainfo.js'; import { Controls } from './components/controls.js'; import { Bar } from './components/bar.js'; import { MprisPlayer } from 'types/service/mpris.js'; import options from 'options.js'; import { BoxWidget } from 'lib/types/widget.js'; const { tint, color } = options.theme.bar.menus.menu.media.card; const generateAlbumArt = (imageUrl: string): string => { const userTint = tint.value; const userHexColor = color.value; const r = parseInt(userHexColor.slice(1, 3), 16); const g = parseInt(userHexColor.slice(3, 5), 16); const b = parseInt(userHexColor.slice(5, 7), 16); const alpha = userTint / 100; const css = `background-image: linear-gradient( rgba(${r}, ${g}, ${b}, ${alpha}), rgba(${r}, ${g}, ${b}, ${alpha}), ${userHexColor} 65em ), url("${imageUrl}");`; return css; }; const Media = (): BoxWidget => { const curPlayer = Variable(''); media.connect('changed', () => { const statusOrder = { Playing: 1, Paused: 2, Stopped: 3, }; const isPlaying = media.players.find((p) => p['play_back_status'] === 'Playing'); const playerStillExists = media.players.some((p) => curPlayer.value === p['bus_name']); const nextPlayerUp = media.players.sort( (a, b) => statusOrder[a['play_back_status']] - statusOrder[b['play_back_status']], )[0].bus_name; if (isPlaying || !playerStillExists) { curPlayer.value = nextPlayerUp; } }); const getPlayerInfo = (): MprisPlayer => { return media.players.find((p) => p.bus_name === curPlayer.value) || media.players[0]; }; return Widget.Box({ class_name: 'menu-section-container', children: [ Widget.Box({ class_name: 'menu-items-section', vertical: false, child: Widget.Box({ class_name: 'menu-content', children: [ Widget.Box({ class_name: 'media-content', child: Widget.Box({ class_name: 'media-indicator-right-section', hpack: 'fill', hexpand: true, vertical: true, children: [MediaInfo(getPlayerInfo), Controls(getPlayerInfo), Bar(getPlayerInfo)], }), }), ], setup: (self) => { self.hook(media, () => { const curPlayer = getPlayerInfo(); if (curPlayer !== undefined) { self.css = generateAlbumArt(curPlayer.track_cover_url); } }); Utils.merge([color.bind('value'), tint.bind('value')], () => { const curPlayer = getPlayerInfo(); if (curPlayer !== undefined) { self.css = generateAlbumArt(curPlayer.track_cover_url); } }); }, }), }), ], }); }; export { Media }; ================================================ FILE: .config/ags/modules/menus/network/ethernet/index.ts ================================================ import { BoxWidget } from 'lib/types/widget'; const network = await Service.import('network'); const Ethernet = (): BoxWidget => { return Widget.Box({ class_name: 'menu-section-container ethernet', vertical: true, children: [ Widget.Box({ class_name: 'menu-label-container', hpack: 'fill', child: Widget.Label({ class_name: 'menu-label', hexpand: true, hpack: 'start', label: 'Ethernet', }), }), Widget.Box({ class_name: 'menu-items-section', vertical: true, child: Widget.Box({ class_name: 'menu-content', vertical: true, setup: (self) => { self.hook(network, () => { return (self.child = Widget.Box({ class_name: 'network-element-item', child: Widget.Box({ hpack: 'start', children: [ Widget.Icon({ class_name: `network-icon ethernet ${network.wired.state === 'activated' ? 'active' : ''}`, tooltip_text: network.wired.internet, icon: `${network.wired['icon_name']}`, }), Widget.Box({ class_name: 'connection-container', vertical: true, children: [ Widget.Label({ class_name: 'active-connection', hpack: 'start', truncate: 'end', wrap: true, label: `Ethernet Connection ${network.wired.state !== 'unknown' && typeof network.wired?.speed === 'number' ? `(${network.wired?.speed / 1000} Gbps)` : ''}`, }), Widget.Label({ hpack: 'start', class_name: 'connection-status dim', label: network.wired.internet.charAt(0).toUpperCase() + network.wired.internet.slice(1), }), ], }), ], }), })); }); }, }), }), ], }); }; export { Ethernet }; ================================================ FILE: .config/ags/modules/menus/network/index.ts ================================================ import Window from 'types/widgets/window.js'; import DropdownMenu from '../shared/dropdown/index.js'; import { Ethernet } from './ethernet/index.js'; import { Wifi } from './wifi/index.js'; import { Attribute, Child } from 'lib/types/widget.js'; import options from 'options.js'; export default (): Window => { return DropdownMenu({ name: 'networkmenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'menu-items network', child: Widget.Box({ vertical: true, hexpand: true, class_name: 'menu-items-container network', children: [Ethernet(), Wifi()], }), }), }); }; ================================================ FILE: .config/ags/modules/menus/network/utils.ts ================================================ import { WifiIcon } from 'lib/types/network'; const getWifiIcon = (iconName: string): WifiIcon => { const deviceIconMap: [string, WifiIcon][] = [ ['network-wireless-acquiring', '󰤩'], ['network-wireless-connected', '󰤨'], ['network-wireless-encrypted', '󰤪'], ['network-wireless-hotspot', '󰤨'], ['network-wireless-no-route', '󰤩'], ['network-wireless-offline', '󰤮'], ['network-wireless-signal-excellent', '󰤨'], ['network-wireless-signal-good', '󰤥'], ['network-wireless-signal-ok', '󰤢'], ['network-wireless-signal-weak', '󰤟'], ['network-wireless-signal-none', '󰤯'], ]; const foundMatch = deviceIconMap.find((icon) => RegExp(icon[0]).test(iconName.toLowerCase())); return foundMatch ? foundMatch[1] : '󰤨'; }; export { getWifiIcon }; ================================================ FILE: .config/ags/modules/menus/network/wifi/APStaging.ts ================================================ import { Network } from 'types/service/network'; import { Variable } from 'types/variable'; import { AccessPoint } from 'lib/types/network'; import Box from 'types/widgets/box'; import { Attribute, Child } from 'lib/types/widget'; const renderWapStaging = ( self: Box, network: Network, staging: Variable, connecting: Variable, ): void => { Utils.merge([network.bind('wifi'), staging.bind('value')], () => { if (!Object.keys(staging.value).length) { return (self.child = Widget.Box()); } return (self.child = Widget.Box({ class_name: 'network-element-item staging', vertical: true, children: [ Widget.Box({ hpack: 'fill', hexpand: true, children: [ Widget.Icon({ class_name: `network-icon wifi`, icon: `${staging.value.iconName}`, }), Widget.Box({ class_name: 'connection-container', hexpand: true, vertical: true, children: [ Widget.Label({ class_name: 'active-connection', hpack: 'start', truncate: 'end', wrap: true, label: staging.value.ssid, }), ], }), Widget.Revealer({ hpack: 'end', reveal_child: connecting.bind('value').as((c) => staging.value.bssid === c), child: Widget.Spinner({ class_name: 'spinner wap', }), }), ], }), Widget.Box({ class_name: 'network-password-input-container', hpack: 'fill', hexpand: true, children: [ Widget.Entry({ hpack: 'start', hexpand: true, visibility: false, class_name: 'network-password-input', placeholder_text: 'enter password', onAccept: (selfInp) => { connecting.value = staging.value.bssid || ''; Utils.execAsync( `nmcli dev wifi connect ${staging.value.bssid} password ${selfInp.text}`, ) .catch((err) => { connecting.value = ''; console.error(`Failed to connect to wifi: ${staging.value.ssid}... ${err}`); Utils.notify({ summary: 'Network', body: err, timeout: 5000, }); }) .then(() => { connecting.value = ''; staging.value = {} as AccessPoint; }); selfInp.text = ''; }, }), Widget.Button({ hpack: 'end', class_name: 'close-network-password-input-button', on_primary_click: () => { connecting.value = ''; staging.value = {} as AccessPoint; }, child: Widget.Icon({ class_name: 'close-network-password-input-icon', icon: 'window-close-symbolic', }), }), ], }), ], })); }); }; export { renderWapStaging }; ================================================ FILE: .config/ags/modules/menus/network/wifi/WirelessAPs.ts ================================================ import { Network } from 'types/service/network.js'; import { AccessPoint, WifiStatus } from 'lib/types/network.js'; import { Variable } from 'types/variable.js'; import { getWifiIcon } from '../utils.js'; import { WIFI_STATUS_MAP } from 'globals/network.js'; import { Attribute, Child } from 'lib/types/widget.js'; import Box from 'types/widgets/box.js'; const renderWAPs = ( self: Box, network: Network, staging: Variable, connecting: Variable, ): void => { const getIdBySsid = (ssid: string, nmcliOutput: string): string | undefined => { const lines = nmcliOutput.trim().split('\n'); for (const line of lines) { const columns = line.trim().split(/\s{2,}/); if (columns[0].includes(ssid)) { return columns[1]; } } }; const isValidWifiStatus = (status: string): status is WifiStatus => { return status in WIFI_STATUS_MAP; }; const getWifiStatus = (): string => { const wifiState = network.wifi.state?.toLowerCase(); if (wifiState && isValidWifiStatus(wifiState)) { return WIFI_STATUS_MAP[wifiState]; } return WIFI_STATUS_MAP['unknown']; }; self.hook(network, () => { Utils.merge([staging.bind('value'), connecting.bind('value')], () => { // NOTE: Sometimes the network service will yield a "this._device is undefined" when // trying to access the "access_points" property. So we must validate that // it's not 'undefined' // -- // Also this is an AGS bug that needs to be fixed // TODO: Remove @ts-ignore once AGS bug is fixed // @ts-expect-error to fix AGS bug let WAPs = network.wifi._device !== undefined ? network.wifi['access_points'] : []; const dedupeWAPs = (): AccessPoint[] => { const dedupMap: Record = {}; WAPs.forEach((item: AccessPoint) => { if (item.ssid !== null && !Object.hasOwnProperty.call(dedupMap, item.ssid)) { dedupMap[item.ssid] = item; } }); return Object.keys(dedupMap).map((itm) => dedupMap[itm]); }; WAPs = dedupeWAPs(); const isInStaging = (wap: AccessPoint): boolean => { if (Object.keys(staging.value).length === 0) { return false; } return wap.bssid === staging.value.bssid; }; const isDisconnecting = (wap: AccessPoint): boolean => { if (wap.ssid === network.wifi.ssid) { return network.wifi.state.toLowerCase() === 'deactivating'; } return false; }; const filteredWAPs = WAPs.filter((ap: AccessPoint) => { return ap.ssid !== 'Unknown' && !isInStaging(ap); }).sort((a: AccessPoint, b: AccessPoint) => { if (network.wifi.ssid === a.ssid) { return -1; } if (network.wifi.ssid === b.ssid) { return 1; } return b.strength - a.strength; }); if (filteredWAPs.length <= 0 && Object.keys(staging.value).length === 0) { return (self.child = Widget.Label({ class_name: 'waps-not-found dim', expand: true, hpack: 'center', vpack: 'center', label: 'No Wi-Fi Networks Found', })); } return (self.children = filteredWAPs.map((ap: AccessPoint) => { return Widget.Box({ children: [ Widget.Button({ on_primary_click: () => { if (ap.bssid === connecting.value || ap.active) { return; } connecting.value = ap.bssid || ''; Utils.execAsync(`nmcli device wifi connect ${ap.bssid}`) .then(() => { connecting.value = ''; staging.value = {} as AccessPoint; }) .catch((err) => { if (err.toLowerCase().includes('secrets were required, but not provided')) { staging.value = ap; } else { Utils.notify({ summary: 'Network', body: err, timeout: 5000, }); } connecting.value = ''; }); }, class_name: 'network-element-item', child: Widget.Box({ hexpand: true, children: [ Widget.Box({ hpack: 'start', hexpand: true, children: [ Widget.Label({ vpack: 'start', class_name: `network-icon wifi ${ap.ssid === network.wifi.ssid ? 'active' : ''} txt-icon`, label: getWifiIcon(`${ap['iconName']}`), }), Widget.Box({ class_name: 'connection-container', vpack: 'center', vertical: true, children: [ Widget.Label({ vpack: 'center', class_name: 'active-connection', hpack: 'start', truncate: 'end', wrap: true, label: ap.ssid, }), Widget.Revealer({ revealChild: ap.ssid === network.wifi.ssid, child: Widget.Label({ hpack: 'start', class_name: 'connection-status dim', label: getWifiStatus(), }), }), ], }), ], }), Widget.Revealer({ hpack: 'end', vpack: 'start', reveal_child: ap.bssid === connecting.value || isDisconnecting(ap), child: Widget.Spinner({ vpack: 'start', class_name: 'spinner wap', }), }), ], }), }), Widget.Revealer({ vpack: 'start', reveal_child: ap.bssid !== connecting.value && ap.active, child: Widget.Button({ tooltip_text: 'Delete/Forget Network', class_name: 'menu-icon-button network disconnect', on_primary_click: () => { connecting.value = ap.bssid || ''; Utils.execAsync('nmcli connection show --active').then(() => { Utils.execAsync('nmcli connection show --active').then((res) => { const connectionId = getIdBySsid(ap.ssid || '', res); if (connectionId === undefined) { console.error( `Error while forgetting "${ap.ssid}": Connection ID not found`, ); return; } Utils.execAsync(`nmcli connection delete ${connectionId} "${ap.ssid}"`) .then(() => (connecting.value = '')) .catch((err) => { connecting.value = ''; console.error(`Error while forgetting "${ap.ssid}": ${err}`); }); }); }); }, child: Widget.Label({ class_name: 'txt-icon delete-network', label: '󰚃', }), }), }), ], }); })); }); }); }; export { renderWAPs }; ================================================ FILE: .config/ags/modules/menus/network/wifi/index.ts ================================================ const network = await Service.import('network'); import { renderWAPs } from './WirelessAPs.js'; import { renderWapStaging } from './APStaging.js'; import { AccessPoint } from 'lib/types/network.js'; import { BoxWidget } from 'lib/types/widget.js'; const Staging = Variable({} as AccessPoint); const Connecting = Variable(''); const searchInProgress = Variable(false); const startRotation = (): void => { searchInProgress.value = true; setTimeout(() => { searchInProgress.value = false; }, 5 * 1000); }; const Wifi = (): BoxWidget => { return Widget.Box({ class_name: 'menu-section-container wifi', vertical: true, children: [ Widget.Box({ class_name: 'menu-label-container', hpack: 'fill', children: [ Widget.Label({ class_name: 'menu-label', hexpand: true, hpack: 'start', label: 'Wi-Fi', }), Widget.Switch({ class_name: 'menu-switch network', vpack: 'center', tooltip_text: 'Toggle Wifi', active: network.wifi.enabled, on_activate: () => { network.toggleWifi(); }, }), Widget.Button({ vpack: 'center', hpack: 'end', class_name: 'menu-icon-button search network', on_primary_click: () => { startRotation(); network.wifi.scan(); }, child: Widget.Icon({ class_name: searchInProgress.bind('value').as((v) => (v ? 'spinning' : '')), icon: 'view-refresh-symbolic', }), }), ], }), Widget.Box({ class_name: 'menu-items-section', vertical: true, children: [ Widget.Box({ class_name: 'wap-staging', setup: (self) => { renderWapStaging(self, network, Staging, Connecting); }, }), Widget.Box({ class_name: 'available-waps', vertical: true, setup: (self) => { renderWAPs(self, network, Staging, Connecting); }, }), ], }), ], }); }; export { Wifi }; ================================================ FILE: .config/ags/modules/menus/notifications/controls/index.ts ================================================ import { closeNotifications } from 'globals/notification'; import { BoxWidget } from 'lib/types/widget'; import { Notifications } from 'types/service/notifications'; import options from 'options'; const { clearDelay } = options.notifications; const Controls = (notifs: Notifications): BoxWidget => { return Widget.Box({ class_name: 'notification-menu-controls', expand: false, vertical: false, children: [ Widget.Box({ class_name: 'menu-label-container notifications', hpack: 'start', vpack: 'center', expand: true, children: [ Widget.Label({ class_name: 'menu-label notifications', label: 'Notifications', }), ], }), Widget.Box({ hpack: 'end', vpack: 'center', expand: false, children: [ Widget.Switch({ class_name: 'menu-switch notifications', vpack: 'center', active: notifs.bind('dnd').as((dnd: boolean) => !dnd), on_activate: ({ active }) => { notifs.dnd = !active; }, }), Widget.Box({ children: [ Widget.Separator({ hpack: 'center', vexpand: true, vertical: true, class_name: 'menu-separator notification-controls', }), Widget.Button({ className: 'clear-notifications-button', tooltip_text: 'Clear Notifications', on_primary_click: clearDelay.bind('value').as((delay) => { return () => { if (removingNotifications.value) { return; } return closeNotifications(notifs.notifications, delay); }; }), child: Widget.Label({ class_name: removingNotifications.bind('value').as((removing: boolean) => { return removing ? 'clear-notifications-label txt-icon removing' : 'clear-notifications-label txt-icon'; }), label: '', }), }), ], }), ], }), ], }); }; export { Controls }; ================================================ FILE: .config/ags/modules/menus/notifications/index.ts ================================================ import { Notification } from 'types/service/notifications.js'; import DropdownMenu from '../shared/dropdown/index.js'; const notifs = await Service.import('notifications'); import { Controls } from './controls/index.js'; import { NotificationCard } from './notification/index.js'; import { NotificationPager } from './pager/index.js'; import options from 'options'; import Window from 'types/widgets/window.js'; import { Attribute, Child } from 'lib/types/widget.js'; const { displayedTotal } = options.notifications; export default (): Window => { const curPage = Variable(1); Utils.merge( [curPage.bind('value'), displayedTotal.bind('value'), notifs.bind('notifications')], (currentPage: number, dispTotal: number, notifications: Notification[]) => { // If the page doesn't have enough notifications to display, go back // to the previous page. if (notifications.length <= (currentPage - 1) * dispTotal) { curPage.value = currentPage <= 1 ? 1 : currentPage - 1; } }, ); return DropdownMenu({ name: 'notificationsmenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'notification-menu-content', css: 'padding: 1px; margin: -1px;', hexpand: true, vexpand: false, children: [ Widget.Box({ class_name: 'notification-card-container menu', vertical: true, hexpand: false, vexpand: false, children: [Controls(notifs), NotificationCard(notifs, curPage), NotificationPager(curPage)], }), ], }), }); }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/actions/index.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import { Notification, Notifications } from 'types/service/notifications'; const Actions = (notif: Notification, notifs: Notifications): BoxWidget => { if (notif.actions !== undefined && notif.actions.length > 0) { return Widget.Box({ class_name: 'notification-card-actions menu', hexpand: true, vpack: 'end', children: notif.actions.map((action) => { return Widget.Button({ hexpand: true, class_name: 'notification-action-buttons menu', on_primary_click: () => { if (action.id.includes('scriptAction:-')) { App.closeWindow('notificationsmenu'); Utils.execAsync(`${action.id.replace('scriptAction:-', '')}`).catch((err) => console.error(err), ); notifs.CloseNotification(notif.id); } else { App.closeWindow('notificationsmenu'); notif.invoke(action.id); } }, child: Widget.Box({ hpack: 'center', hexpand: true, children: [ Widget.Label({ class_name: 'notification-action-buttons-label menu', hexpand: true, max_width_chars: 15, truncate: 'end', wrap: true, label: action.label, }), ], }), }); }), }); } return Widget.Box({ class_name: 'spacer', }); }; export { Actions }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/body/index.ts ================================================ import { BoxWidget } from 'lib/types/widget.js'; import { notifHasImg } from '../../utils.js'; import { Notification } from 'types/service/notifications'; export const Body = (notif: Notification): BoxWidget => { return Widget.Box({ vpack: 'start', hexpand: true, class_name: 'notification-card-body menu', children: [ Widget.Label({ hexpand: true, use_markup: true, xalign: 0, justification: 'left', truncate: 'end', lines: 2, max_width_chars: !notifHasImg(notif) ? 35 : 28, wrap: true, class_name: 'notification-card-body-label menu', label: notif['body'], }), ], }); }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/close/index.ts ================================================ import { Attribute } from 'lib/types/widget'; import { Notification, Notifications } from 'types/service/notifications'; import Button from 'types/widgets/button'; import Label from 'types/widgets/label'; export const CloseButton = (notif: Notification, notifs: Notifications): Button, Attribute> => { return Widget.Button({ class_name: 'close-notification-button menu', on_primary_click: () => { notifs.CloseNotification(notif.id); }, child: Widget.Label({ class_name: 'txt-icon notif-close', label: '󰅜', hpack: 'center', }), }); }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/header/icon.ts ================================================ import { Notification } from 'types/service/notifications.js'; import { NotificationIcon } from 'lib/types/notification.js'; import { getNotificationIcon } from 'globals/notification'; import { BoxWidget } from 'lib/types/widget'; const NotificationIcon = ({ app_entry = '', app_icon = '', app_name = '' }: Partial): BoxWidget => { return Widget.Box({ css: ` min-width: 2rem; min-height: 2rem; `, child: Widget.Icon({ class_name: 'notification-icon menu', icon: getNotificationIcon(app_name, app_icon, app_entry), }), }); }; export { NotificationIcon }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/header/index.ts ================================================ import GLib from 'gi://GLib'; import { Notification } from 'types/service/notifications'; import { NotificationIcon } from './icon.js'; import { notifHasImg } from '../../utils.js'; import options from 'options.js'; import { BoxWidget } from 'lib/types/widget.js'; const { military } = options.menus.clock.time; export const Header = (notif: Notification): BoxWidget => { const time = (time: number, format = '%I:%M %p'): string => { return GLib.DateTime.new_from_unix_local(time).format(military.value ? '%H:%M' : format) || '--:--'; }; return Widget.Box({ vertical: false, hexpand: true, children: [ Widget.Box({ class_name: 'notification-card-header menu', hpack: 'start', children: [NotificationIcon(notif)], }), Widget.Box({ class_name: 'notification-card-header menu', hexpand: true, vpack: 'start', children: [ Widget.Label({ class_name: 'notification-card-header-label menu', hpack: 'start', hexpand: true, vexpand: true, max_width_chars: !notifHasImg(notif) ? 34 : 22, truncate: 'end', wrap: true, label: notif['summary'], }), ], }), Widget.Box({ class_name: 'notification-card-header menu', hpack: 'end', vpack: 'start', hexpand: true, child: Widget.Label({ vexpand: true, class_name: 'notification-time', label: time(notif.time), }), }), ], }); }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/image/index.ts ================================================ import { Notification } from 'types/service/notifications'; import { notifHasImg } from '../../utils.js'; import { BoxWidget } from 'lib/types/widget.js'; const Image = (notif: Notification): BoxWidget => { if (notifHasImg(notif)) { return Widget.Box({ class_name: 'notification-card-image-container menu', hpack: 'center', vpack: 'center', vexpand: false, child: Widget.Box({ hpack: 'center', vexpand: false, class_name: 'notification-card-image menu', css: `background-image: url("${notif.image}")`, }), }); } return Widget.Box(); }; export { Image }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/index.ts ================================================ import { Notifications, Notification } from 'types/service/notifications'; import { notifHasImg } from '../utils.js'; import { Header } from './header/index.js'; import { Actions } from './actions/index.js'; import { Image } from './image/index.js'; import { Placeholder } from './placeholder/index.js'; import { Body } from './body/index.js'; import { CloseButton } from './close/index.js'; import options from 'options.js'; import { Variable } from 'types/variable.js'; import { filterNotifications } from 'lib/shared/notifications.js'; import Scrollable from 'types/widgets/scrollable.js'; import { Attribute, Child } from 'lib/types/widget.js'; const { displayedTotal, ignore } = options.notifications; const NotificationCard = (notifs: Notifications, curPage: Variable): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', child: Widget.Box({ class_name: 'menu-content-container notifications', hpack: 'center', vexpand: true, spacing: 0, vertical: true, setup: (self) => { Utils.merge( [ notifs.bind('notifications'), curPage.bind('value'), displayedTotal.bind('value'), ignore.bind('value'), ], (notifications, currentPage, dispTotal, ignoredNotifs) => { const filteredNotifications = filterNotifications(notifications, ignoredNotifs); const sortedNotifications = filteredNotifications.sort((a, b) => b.time - a.time); if (filteredNotifications.length <= 0) { return (self.children = [Placeholder(notifs)]); } const pageStart = (currentPage - 1) * dispTotal; const pageEnd = currentPage * dispTotal; return (self.children = sortedNotifications .slice(pageStart, pageEnd) .map((notif: Notification) => { return Widget.Box({ class_name: 'notification-card-content-container', children: [ Widget.Box({ class_name: 'notification-card menu', vpack: 'start', hexpand: true, vexpand: false, children: [ Image(notif), Widget.Box({ vpack: 'center', vertical: true, hexpand: true, class_name: `notification-card-content ${!notifHasImg(notif) ? 'noimg' : ' menu'}`, children: [Header(notif), Body(notif), Actions(notif, notifs)], }), ], }), CloseButton(notif, notifs), ], }); })); }, ); }, }), }); }; export { NotificationCard }; ================================================ FILE: .config/ags/modules/menus/notifications/notification/placeholder/index.ts ================================================ import { BoxWidget } from 'lib/types/widget'; import { Notifications } from 'types/service/notifications'; const Placeholder = (notifs: Notifications): BoxWidget => { return Widget.Box({ class_name: 'notification-label-container', vpack: 'fill', hpack: 'center', expand: true, child: Widget.Box({ vpack: 'center', vertical: true, expand: true, children: [ Widget.Label({ vpack: 'center', class_name: 'placeholder-label dim bell txt-icon', label: notifs.bind('dnd').as((dnd) => (dnd ? '󰂛' : '󰂚')), }), Widget.Label({ vpack: 'start', class_name: 'placehold-label dim message', label: "You're all caught up :)", }), ], }), }); }; export { Placeholder }; ================================================ FILE: .config/ags/modules/menus/notifications/pager/index.ts ================================================ const notifs = await Service.import('notifications'); import { BoxWidget } from 'lib/types/widget'; import options from 'options'; import { Notification } from 'types/service/notifications'; import { Variable } from 'types/variable'; const { displayedTotal } = options.notifications; const { show: showPager } = options.theme.bar.menus.menu.notifications.pager; export const NotificationPager = (curPage: Variable): BoxWidget => { return Widget.Box({ class_name: 'notification-menu-pager', hexpand: true, vexpand: false, children: Utils.merge( [ curPage.bind('value'), displayedTotal.bind('value'), notifs.bind('notifications'), showPager.bind('value'), ], (currentPage: number, dispTotal: number, _: Notification[], showPgr: boolean) => { if (showPgr === false || (currentPage === 1 && notifs.notifications.length <= dispTotal)) { return []; } return [ Widget.Button({ hexpand: true, hpack: 'start', class_name: `pager-button left ${currentPage <= 1 ? 'disabled' : ''}`, onPrimaryClick: () => { curPage.value = 1; }, child: Widget.Label({ className: 'pager-button-label', label: '', }), }), Widget.Button({ hexpand: true, hpack: 'start', class_name: `pager-button left ${currentPage <= 1 ? 'disabled' : ''}`, onPrimaryClick: () => { curPage.value = currentPage <= 1 ? 1 : currentPage - 1; }, child: Widget.Label({ className: 'pager-button-label', label: '', }), }), Widget.Label({ hexpand: true, hpack: 'center', class_name: 'pager-label', label: `${currentPage} / ${Math.ceil(notifs.notifications.length / dispTotal) || 1}`, }), Widget.Button({ hexpand: true, hpack: 'end', class_name: `pager-button right ${currentPage >= Math.ceil(notifs.notifications.length / dispTotal) ? 'disabled' : ''}`, onPrimaryClick: () => { const maxPage = Math.ceil(notifs.notifications.length / displayedTotal.value); curPage.value = currentPage >= maxPage ? currentPage : currentPage + 1; }, child: Widget.Label({ className: 'pager-button-label', label: '', }), }), Widget.Button({ hexpand: true, hpack: 'end', class_name: `pager-button right ${currentPage >= Math.ceil(notifs.notifications.length / dispTotal) ? 'disabled' : ''}`, onPrimaryClick: () => { const maxPage = Math.ceil(notifs.notifications.length / displayedTotal.value); curPage.value = maxPage; }, child: Widget.Label({ className: 'pager-button-label', label: '󰄾', }), }), ]; }, ), }); }; ================================================ FILE: .config/ags/modules/menus/notifications/utils.ts ================================================ import { Notification } from 'types/service/notifications'; const notifHasImg = (notif: Notification): boolean => { return notif.image !== undefined && notif.image.length ? true : false; }; export { notifHasImg }; ================================================ FILE: .config/ags/modules/menus/power/helpers/actions.ts ================================================ import { Action } from 'lib/types/power'; import options from 'options'; const { sleep, reboot, logout, shutdown } = options.menus.dashboard.powermenu; class PowerMenu extends Service { static { Service.register( this, {}, { title: ['string'], cmd: ['string'], }, ); } #title = ''; #cmd = ''; get title(): string { return this.#title; } action(action: Action): void { [this.#cmd, this.#title] = { sleep: [sleep.value, 'Sleep'], reboot: [reboot.value, 'Reboot'], logout: [logout.value, 'Log Out'], shutdown: [shutdown.value, 'Shutdown'], }[action]; this.notify('cmd'); this.notify('title'); this.emit('changed'); App.closeWindow('powermenu'); App.openWindow('verification'); } customAction(action: Action, cmnd: string): void { [this.#cmd, this.#title] = [cmnd, action]; this.notify('cmd'); this.notify('title'); this.emit('changed'); App.closeWindow('powermenu'); App.openWindow('verification'); } shutdown = (): void => { this.action('shutdown'); }; exec = (): void => { App.closeWindow('verification'); Utils.execAsync(this.#cmd); }; } const powermenu = new PowerMenu(); Object.assign(globalThis, { powermenu }); export default powermenu; ================================================ FILE: .config/ags/modules/menus/power/index.ts ================================================ import { Action } from 'lib/types/power.js'; import PopupWindow from '../shared/popup/index.js'; import powermenu from './helpers/actions.js'; import icons from '../../icons/index.js'; import Window from 'types/widgets/window.js'; import { Attribute, Child, GButton } from 'lib/types/widget.js'; import options from 'options.js'; const SysButton = (action: Action, label: string): GButton => Widget.Button({ class_name: `widget-button powermenu-button-${action}`, on_clicked: () => powermenu.action(action), child: Widget.Box({ vertical: true, class_name: 'system-button widget-box', children: [ Widget.Icon({ class_name: `system-button_icon ${action}`, icon: icons.powermenu[action], }), Widget.Label({ class_name: `system-button_label ${action}`, label, }), ], }), }); export default (): Window => PopupWindow({ name: 'powermenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'powermenu horizontal', children: [ SysButton('shutdown', 'SHUTDOWN'), SysButton('logout', 'LOG OUT'), SysButton('reboot', 'REBOOT'), SysButton('sleep', 'SLEEP'), ], }), }); ================================================ FILE: .config/ags/modules/menus/power/verification.ts ================================================ import Window from 'types/widgets/window.js'; import PopupWindow from '../shared/popup/index.js'; import powermenu from './helpers/actions.js'; import { Attribute, Child } from 'lib/types/widget.js'; export default (): Window => PopupWindow({ name: 'verification', transition: 'crossfade', child: Widget.Box({ class_name: 'verification', child: Widget.Box({ class_name: 'verification-content', expand: true, vertical: true, children: [ Widget.Box({ class_name: 'text-box', vertical: true, children: [ Widget.Label({ class_name: 'title', label: powermenu.bind('title').as((t) => t.toUpperCase()), }), Widget.Label({ class_name: 'desc', label: powermenu .bind('title') .as((p) => `Are you sure you want to ${p.toLowerCase()}?`), }), ], }), Widget.Box({ class_name: 'buttons horizontal', vexpand: true, vpack: 'end', homogeneous: true, children: [ Widget.Button({ class_name: 'verification-button bar-verification_yes', child: Widget.Label('Yes'), on_clicked: powermenu.exec, }), Widget.Button({ class_name: 'verification-button bar-verification_no', child: Widget.Label('No'), on_clicked: () => App.toggleWindow('verification'), }), ], }), ], }), }), }); ================================================ FILE: .config/ags/modules/menus/powerDropdown/button.ts ================================================ import { PowerOptions } from 'lib/types/options'; import options from 'options'; import powermenu from '../power/helpers/actions'; import { GButton } from 'lib/types/widget'; const { confirmation, shutdown, logout, sleep, reboot, showLabel } = options.menus.power; export const PowerButton = (action: PowerOptions): GButton => { const handleClick = (action: PowerOptions): void => { const actions = { shutdown: shutdown.value, reboot: reboot.value, logout: logout.value, sleep: sleep.value, }; App.closeWindow('powerdropdownmenu'); if (!confirmation.value) { Utils.execAsync(actions[action]).catch((err) => console.error(`Failed to execute ${action} command. Error: ${err}`), ); } else { powermenu.customAction(action, actions[action]); } }; const powerIconMap = { shutdown: '󰐥', reboot: '󰜉', logout: '󰿅', sleep: '󰤄', }; return Widget.Button({ className: showLabel.bind('value').as((shwLbl) => { return `power-menu-button ${action} ${!shwLbl ? 'no-label' : ''}`; }), on_clicked: () => handleClick(action), child: Widget.Box({ vertical: false, children: showLabel.bind('value').as((shwLbl) => { if (shwLbl) { return [ Widget.Label({ label: powerIconMap[action], className: `power-button-icon ${action}-icon txt-icon`, }), Widget.Label({ hpack: 'center', hexpand: true, label: action.charAt(0).toUpperCase() + action.slice(1), className: `power-button-label ${action}-label show-label`, }), ]; } return [ Widget.Label({ label: powerIconMap[action], className: `power-button-icon ${action}-icon no-label txt-icon`, }), ]; }), }), }); }; ================================================ FILE: .config/ags/modules/menus/powerDropdown/index.ts ================================================ import Window from 'types/widgets/window.js'; import DropdownMenu from '../shared/dropdown/index.js'; import { PowerButton } from './button.js'; import { Attribute, Child } from 'lib/types/widget.js'; import options from 'options.js'; export default (): Window => { return DropdownMenu({ name: 'powerdropdownmenu', transition: options.menus.transition.bind('value'), child: Widget.Box({ class_name: 'menu-items power-dropdown', child: Widget.Box({ vertical: true, hexpand: true, class_name: 'menu-items-container power-dropdown', children: [PowerButton('shutdown'), PowerButton('reboot'), PowerButton('logout'), PowerButton('sleep')], }), }), }); }; ================================================ FILE: .config/ags/modules/menus/shared/dropdown/eventBoxes/index.ts ================================================ import { Attribute, BoxWidget } from 'lib/types/widget'; import EventBox from 'types/widgets/eventbox'; import { BarLocation } from 'lib/types/options'; const createEventBox = (className: string, windowName: string): EventBox => { return Widget.EventBox({ class_name: className, hexpand: true, vexpand: false, can_focus: false, child: Widget.Box(), setup: (w) => { w.on('button-press-event', () => App.toggleWindow(windowName)); }, }); }; export const barEventMargins = ( windowName: string, location: BarLocation = 'top', ): [EventBox, EventBox] => { if (location === 'top') { return [ createEventBox('mid-eb event-top-padding-static', windowName), createEventBox('mid-eb event-top-padding', windowName), ]; } else { return [ createEventBox('mid-eb event-bottom-padding', windowName), createEventBox('mid-eb event-bottom-padding-static', windowName), ]; } }; ================================================ FILE: .config/ags/modules/menus/shared/dropdown/index.ts ================================================ import options from 'options'; import { DropdownMenuProps } from 'lib/types/dropdownmenu'; import { Attribute, Child, Exclusivity } from 'lib/types/widget'; import Window from 'types/widgets/window'; import { barEventMargins } from './eventBoxes/index'; import { globalEventBoxes } from 'globals/dropdown'; const { location } = options.theme.bar; // NOTE: We make the window visible for 2 seconds (on startup) so the child // elements can allocate their proper dimensions. // Otherwise the width that we rely on for menu positioning is set improperly // for the first time we open a menu of each type. const initRender = Variable(true); setTimeout(() => { initRender.value = false; }, 2000); export default ({ name, child, transition, exclusivity = 'ignore' as Exclusivity, ...props }: DropdownMenuProps): Window => Widget.Window({ name, class_names: [name, 'dropdown-menu'], setup: (w) => w.keybind('Escape', () => App.closeWindow(name)), visible: initRender.bind('value'), keymode: 'on-demand', exclusivity, layer: 'top', anchor: location.bind('value').as((ln) => [ln, 'left']), child: Widget.EventBox({ class_name: 'parent-event', on_primary_click: () => App.closeWindow(name), on_secondary_click: () => App.closeWindow(name), child: Widget.Box({ class_name: 'top-eb', vertical: true, children: [ Widget.Box({ className: 'event-box-container', children: location.bind('value').as((lcn) => { if (lcn === 'top') { return barEventMargins(name); } else { return []; } }), }), Widget.EventBox({ class_name: 'in-eb menu-event-box', on_primary_click: () => { return true; }, on_secondary_click: () => { return true; }, setup: (self) => { globalEventBoxes.value[name] = self; }, child: Widget.Box({ class_name: 'dropdown-menu-container', css: 'padding: 1px; margin: -1px;', child: Widget.Revealer({ revealChild: false, setup: (self) => self.hook(App, (_, wname, visible) => { if (wname === name) self.reveal_child = visible; }), transition, transitionDuration: options.menus.transitionTime.bind('value'), child: Widget.Box({ class_name: 'dropdown-menu-container', can_focus: true, children: [child], }), }), }), }), Widget.Box({ className: 'event-box-container', children: location.bind('value').as((lcn) => { if (lcn === 'bottom') { return barEventMargins(name); } else { return []; } }), }), ], }), }), ...props, }); ================================================ FILE: .config/ags/modules/menus/shared/dropdown/locationHandler/index.ts ================================================ const hyprland = await Service.import('hyprland'); import options from 'options'; import { bash } from 'lib/utils'; import { Widget as TWidget } from 'types/@girs/gtk-3.0/gtk-3.0.cjs'; import { Monitor } from 'types/service/hyprland'; import Box from 'types/widgets/box'; import EventBox from 'types/widgets/eventbox'; import Revealer from 'types/widgets/revealer'; import { globalEventBoxes } from 'globals/dropdown'; type NestedRevealer = Revealer, unknown>; type NestedBox = Box; type NestedEventBox = EventBox; const { location } = options.theme.bar; const { scalingPriority } = options; export const calculateMenuPosition = async (pos: number[], windowName: string): Promise => { const self = globalEventBoxes.value[windowName] as NestedEventBox; const curHyprlandMonitor = hyprland.monitors.find((m) => m.id === hyprland.active.monitor.id); const dropdownWidth = self.child.get_allocation().width; const dropdownHeight = self.child.get_allocation().height; let hyprScaling = 1; try { const monitorInfo = await bash('hyprctl monitors -j'); const parsedMonitorInfo = JSON.parse(monitorInfo); const foundMonitor = parsedMonitorInfo.find((monitor: Monitor) => monitor.id === hyprland.active.monitor.id); hyprScaling = foundMonitor?.scale || 1; } catch (error) { console.error(`Error parsing hyprland monitors: ${error}`); } let monWidth = curHyprlandMonitor?.width; let monHeight = curHyprlandMonitor?.height; if (monWidth === undefined || monHeight === undefined || hyprScaling === undefined) { return; } // If GDK Scaling is applied, then get divide width by scaling // to get the proper coordinates. // Ex: On a 2860px wide monitor... if scaling is set to 2, then the right // end of the monitor is the 1430th pixel. const gdkScale = Utils.exec('bash -c "echo $GDK_SCALE"'); if (scalingPriority.value === 'both') { const scale = parseFloat(gdkScale); monWidth = monWidth / scale; monHeight = monHeight / scale; monWidth = monWidth / hyprScaling; monHeight = monHeight / hyprScaling; } else if (/^\d+(.\d+)?$/.test(gdkScale) && scalingPriority.value === 'gdk') { const scale = parseFloat(gdkScale); monWidth = monWidth / scale; monHeight = monHeight / scale; } else { monWidth = monWidth / hyprScaling; monHeight = monHeight / hyprScaling; } // If monitor is vertical (transform = 1 || 3) swap height and width const isVertical = curHyprlandMonitor?.transform !== undefined ? curHyprlandMonitor.transform % 2 !== 0 : false; if (isVertical) { [monWidth, monHeight] = [monHeight, monWidth]; } let marginRight = monWidth - dropdownWidth / 2; marginRight = marginRight - pos[0]; let marginLeft = monWidth - dropdownWidth - marginRight; const minimumMargin = 0; if (marginRight < minimumMargin) { marginRight = minimumMargin; marginLeft = monWidth - dropdownWidth - minimumMargin; } if (marginLeft < minimumMargin) { marginLeft = minimumMargin; marginRight = monWidth - dropdownWidth - minimumMargin; } self.set_margin_left(marginLeft); self.set_margin_right(marginRight); if (location.value === 'top') { self.set_margin_top(0); self.set_margin_bottom(monHeight); } else { self.set_margin_bottom(0); self.set_margin_top(monHeight - dropdownHeight); } }; ================================================ FILE: .config/ags/modules/menus/shared/popup/index.ts ================================================ import { WINDOW_LAYOUTS } from 'globals/window'; import { LayoutFunction, Layouts, PopupWindowProps } from 'lib/types/popupwindow'; import { Attribute, Child, Exclusivity, GtkWidget, Transition } from 'lib/types/widget'; import Box from 'types/widgets/box'; import EventBox from 'types/widgets/eventbox'; import Window from 'types/widgets/window'; type Opts = { className: string; vexpand: boolean; }; export const Padding = (name: string, opts: Opts): EventBox, unknown> => Widget.EventBox({ class_name: opts?.className || '', hexpand: true, vexpand: typeof opts?.vexpand === 'boolean' ? opts.vexpand : true, can_focus: false, child: Widget.Box(), setup: (w) => w.on('button-press-event', () => App.toggleWindow(name)), }); const PopupRevealer = ( name: string, child: GtkWidget, transition = 'slide_down' as Transition, ): Box => Widget.Box( { css: 'padding: 1px;' }, Widget.Revealer({ transition, child: Widget.Box({ class_name: `window-content ${name}-window`, child, }), transitionDuration: 200, setup: (self) => self.hook(App, (_, wname, visible) => { if (wname === name) self.reveal_child = visible; }), }), ); const Layout: LayoutFunction = (name: string, child: GtkWidget, transition: Transition) => ({ center: () => Widget.CenterBox( {}, Padding(name, {} as Opts), Widget.CenterBox( { vertical: true }, Padding(name, {} as Opts), PopupRevealer(name, child, transition), Padding(name, {} as Opts), ), Padding(name, {} as Opts), ), top: () => Widget.CenterBox( {}, Padding(name, {} as Opts), Widget.Box({ vertical: true }, PopupRevealer(name, child, transition), Padding(name, {} as Opts)), Padding(name, {} as Opts), ), 'top-right': () => Widget.Box( {}, Padding(name, {} as Opts), Widget.Box( { hexpand: false, vertical: true, }, Padding(name, { vexpand: false, className: 'event-top-padding', }), PopupRevealer(name, child, transition), Padding(name, {} as Opts), ), ), 'top-center': () => Widget.Box( {}, Padding(name, {} as Opts), Widget.Box( { hexpand: false, vertical: true, }, Padding(name, { vexpand: false, className: 'event-top-padding', }), PopupRevealer(name, child, transition), Padding(name, {} as Opts), ), Padding(name, {} as Opts), ), 'top-left': () => Widget.Box( {}, Widget.Box( { hexpand: false, vertical: true, }, Padding(name, { vexpand: false, className: 'event-top-padding', }), PopupRevealer(name, child, transition), Padding(name, {} as Opts), ), Padding(name, {} as Opts), ), 'bottom-left': () => Widget.Box( {}, Widget.Box( { hexpand: false, vertical: true, }, Padding(name, {} as Opts), PopupRevealer(name, child, transition), ), Padding(name, {} as Opts), ), 'bottom-center': () => Widget.Box( {}, Padding(name, {} as Opts), Widget.Box( { hexpand: false, vertical: true, }, Padding(name, {} as Opts), PopupRevealer(name, child, transition), ), Padding(name, {} as Opts), ), 'bottom-right': () => Widget.Box( {}, Padding(name, {} as Opts), Widget.Box( { hexpand: false, vertical: true, }, Padding(name, {} as Opts), PopupRevealer(name, child, transition), ), ), }); const isValidLayout = (layout: string): layout is Layouts => { return WINDOW_LAYOUTS.includes(layout); }; export default ({ name, child, layout = 'center', transition = 'none', exclusivity = 'ignore' as Exclusivity, ...props }: PopupWindowProps): Window => { const layoutFn = isValidLayout(layout) ? layout : 'center'; const layoutWidget = Layout(name, child, transition)[layoutFn](); return Widget.Window({ name, class_names: [name, 'popup-window'], setup: (w) => w.keybind('Escape', () => App.closeWindow(name)), visible: false, keymode: 'on-demand', exclusivity, layer: 'top', anchor: ['top', 'bottom', 'right', 'left'], child: layoutWidget, ...props, }); }; ================================================ FILE: .config/ags/modules/notifications/actions/index.ts ================================================ import { Attribute, Child } from 'lib/types/widget'; import { Notification, Notifications } from 'types/service/notifications'; import Box from 'types/widgets/box'; const Action = (notif: Notification, notifs: Notifications): Box => { if (notif.actions !== undefined && notif.actions.length > 0) { return Widget.Box({ class_name: 'notification-card-actions', hexpand: true, vpack: 'end', children: notif.actions.map((action) => { return Widget.Button({ hexpand: true, class_name: 'notification-action-buttons', on_primary_click: () => { if (action.id.includes('scriptAction:-')) { Utils.execAsync(`${action.id.replace('scriptAction:-', '')}`).catch((err) => console.error(err), ); notifs.CloseNotification(notif.id); } else { notif.invoke(action.id); } }, child: Widget.Box({ hpack: 'center', hexpand: true, children: [ Widget.Label({ class_name: 'notification-action-buttons-label', hexpand: true, label: action.label, max_width_chars: 15, truncate: 'end', wrap: true, }), ], }), }); }), }); } return Widget.Box(); }; export { Action }; ================================================ FILE: .config/ags/modules/notifications/body/index.ts ================================================ import { Notification } from 'types/service/notifications'; import { notifHasImg } from '../../menus/notifications/utils.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; export const Body = (notif: Notification): Box => { return Widget.Box({ vpack: 'start', hexpand: true, class_name: 'notification-card-body', children: [ Widget.Label({ hexpand: true, use_markup: true, xalign: 0, justification: 'left', truncate: 'end', lines: 2, max_width_chars: !notifHasImg(notif) ? 35 : 28, wrap: true, class_name: 'notification-card-body-label', label: notif['body'], }), ], }); }; ================================================ FILE: .config/ags/modules/notifications/close/index.ts ================================================ import { Attribute, Child } from 'lib/types/widget'; import { Notification, Notifications } from 'types/service/notifications'; import Button from 'types/widgets/button'; import Label from 'types/widgets/label'; export const CloseButton = (notif: Notification, notifs: Notifications): Button, Attribute> => { return Widget.Button({ class_name: 'close-notification-button', on_primary_click: () => { notifs.CloseNotification(notif.id); }, child: Widget.Label({ class_name: 'txt-icon notif-close', label: '󰅜', hpack: 'center', }), }); }; ================================================ FILE: .config/ags/modules/notifications/header/icon.ts ================================================ import { Notification } from 'types/service/notifications.js'; import { getNotificationIcon } from 'globals/notification.js'; import Box from 'types/widgets/box'; import { Attribute, Child } from 'lib/types/widget'; const NotificationIcon = ({ app_entry = '', app_icon = '', app_name = '', }: Partial): Box => { return Widget.Box({ css: ` min-width: 2rem; min-height: 2rem; `, child: Widget.Icon({ class_name: 'notification-icon', icon: getNotificationIcon(app_name, app_icon, app_entry), }), }); }; export { NotificationIcon }; ================================================ FILE: .config/ags/modules/notifications/header/index.ts ================================================ import GLib from 'gi://GLib'; import { notifHasImg } from '../../menus/notifications/utils.js'; import { NotificationIcon } from './icon.js'; import { Notification } from 'types/service/notifications'; import options from 'options.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; const { military } = options.menus.clock.time; export const Header = (notif: Notification): Box => { const time = (time: number, format = '%I:%M %p'): string => { return GLib.DateTime.new_from_unix_local(time).format(military.value ? '%H:%M' : format) || '--'; }; return Widget.Box({ vertical: false, hexpand: true, children: [ Widget.Box({ class_name: 'notification-card-header', hpack: 'start', children: [NotificationIcon(notif)], }), Widget.Box({ class_name: 'notification-card-header', hexpand: true, hpack: 'start', vpack: 'start', children: [ Widget.Label({ class_name: 'notification-card-header-label', hpack: 'start', hexpand: true, vexpand: true, max_width_chars: !notifHasImg(notif) ? 30 : 19, truncate: 'end', wrap: true, label: notif['summary'], }), ], }), Widget.Box({ class_name: 'notification-card-header menu', hpack: 'end', vpack: 'start', hexpand: true, child: Widget.Label({ vexpand: true, class_name: 'notification-time', label: time(notif.time), }), }), ], }); }; ================================================ FILE: .config/ags/modules/notifications/image/index.ts ================================================ import { Notification } from 'types/service/notifications'; import { notifHasImg } from '../../menus/notifications/utils.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; const Image = (notif: Notification): Box => { if (notifHasImg(notif)) { return Widget.Box({ class_name: 'notification-card-image-container', hpack: 'center', vpack: 'center', vexpand: false, child: Widget.Box({ hpack: 'center', vexpand: false, class_name: 'notification-card-image', css: `background-image: url("${notif.image}")`, }), }); } return Widget.Box(); }; export { Image }; ================================================ FILE: .config/ags/modules/notifications/index.ts ================================================ const notifs = await Service.import('notifications'); import options from 'options'; import { notifHasImg } from '../menus/notifications/utils.js'; import { Image } from './image/index.js'; import { Action } from './actions/index.js'; import { Header } from './header/index.js'; import { Body } from './body/index.js'; import { CloseButton } from './close/index.js'; import { getPosition } from 'lib/utils.js'; import { filterNotifications } from 'lib/shared/notifications.js'; import { Notification } from 'types/service/notifications.js'; import Window from 'types/widgets/window.js'; import Box from 'types/widgets/box.js'; import { Attribute, Child } from 'lib/types/widget.js'; const hyprland = await Service.import('hyprland'); const { position, timeout, cache_actions, monitor, active_monitor, displayedTotal, ignore } = options.notifications; const curMonitor = Variable(monitor.value); hyprland.active.connect('changed', () => { curMonitor.value = hyprland.active.monitor.id; }); export default (): Window, unknown> => { Utils.merge([timeout.bind('value'), cache_actions.bind('value')], (timeout, doCaching) => { notifs.popupTimeout = timeout; notifs.cacheActions = doCaching; }); return Widget.Window({ name: 'notifications-window', class_name: 'notifications-window', monitor: Utils.merge( [curMonitor.bind('value'), monitor.bind('value'), active_monitor.bind('value')], (curMon, mon, activeMonitor) => { if (activeMonitor === true) { return curMon; } return mon; }, ), layer: options.tear.bind('value').as((tear) => (tear ? 'top' : 'overlay')), anchor: position.bind('value').as((v) => getPosition(v)), exclusivity: 'normal', child: Widget.Box({ class_name: 'notification-card-container', vertical: true, hexpand: true, setup: (self) => { Utils.merge( [notifs.bind('popups'), ignore.bind('value')], (notifications: Notification[], ignoredNotifs: string[]) => { const filteredNotifications = filterNotifications(notifications, ignoredNotifs); return (self.children = filteredNotifications.slice(0, displayedTotal.value).map((notif) => { return Widget.Box({ class_name: 'notification-card', vpack: 'start', hexpand: true, children: [ Image(notif), Widget.Box({ vpack: 'start', vertical: true, hexpand: true, class_name: `notification-card-content ${!notifHasImg(notif) ? 'noimg' : ''}`, children: [Header(notif), Body(notif), Action(notif, notifs)], }), CloseButton(notif, notifs), ], }); })); }, ); }, }), }); }; ================================================ FILE: .config/ags/modules/osd/bar/index.ts ================================================ import { OSDOrientation } from 'lib/types/options'; import brightness from 'services/Brightness'; import options from 'options'; import Box from 'types/widgets/box'; import { Attribute, Child } from 'lib/types/widget'; const audio = await Service.import('audio'); export const OSDBar = (ort: OSDOrientation): Box => { return Widget.Box({ class_name: 'osd-bar-container', children: [ Widget.LevelBar({ class_name: 'osd-bar', vertical: ort === 'vertical', inverted: ort === 'vertical', bar_mode: 'continuous', setup: (self) => { self.hook( brightness, () => { self.class_names = self.class_names.filter((c) => c !== 'overflow'); self.value = brightness.screen; }, 'notify::screen', ); self.hook( brightness, () => { self.class_names = self.class_names.filter((c) => c !== 'overflow'); self.value = brightness.kbd; }, 'notify::kbd', ); self.hook( audio.microphone, () => { self.toggleClassName('overflow', audio.microphone.volume > 1); self.value = audio.microphone.volume <= 1 ? audio.microphone.volume : audio.microphone.volume - 1; }, 'notify::volume', ); self.hook( audio.microphone, () => { self.toggleClassName( 'overflow', audio.microphone.volume > 1 && (!options.theme.osd.muted_zero.value || audio.microphone.is_muted === false), ); self.value = options.theme.osd.muted_zero.value && audio.microphone.is_muted !== false ? 0 : audio.microphone.volume <= 1 ? audio.microphone.volume : audio.microphone.volume - 1; }, 'notify::is-muted', ); self.hook( audio.speaker, () => { self.toggleClassName('overflow', audio.speaker.volume > 1); self.value = audio.speaker.volume <= 1 ? audio.speaker.volume : audio.speaker.volume - 1; }, 'notify::volume', ); self.hook( audio.speaker, () => { self.toggleClassName( 'overflow', audio.speaker.volume > 1 && (!options.theme.osd.muted_zero.value || audio.speaker.is_muted === false), ); self.value = options.theme.osd.muted_zero.value && audio.speaker.is_muted !== false ? 0 : audio.speaker.volume <= 1 ? audio.speaker.volume : audio.speaker.volume - 1; }, 'notify::is-muted', ); }, }), ], }); }; ================================================ FILE: .config/ags/modules/osd/icon/index.ts ================================================ import { Attribute, Child } from 'lib/types/widget'; import brightness from 'services/Brightness'; import Box from 'types/widgets/box'; const audio = await Service.import('audio'); export const OSDIcon = (): Box => { return Widget.Box({ class_name: 'osd-icon-container', hexpand: true, child: Widget.Label({ class_name: 'osd-icon txt-icon', hexpand: true, vexpand: true, hpack: 'center', vpack: 'center', setup: (self) => { self.hook( brightness, () => { self.label = '󱍖'; }, 'notify::screen', ); self.hook( brightness, () => { self.label = '󰥻'; }, 'notify::kbd', ); self.hook( audio.microphone, () => { self.label = audio.microphone.is_muted ? '󰍭' : '󰍬'; }, 'notify::volume', ); self.hook( audio.microphone, () => { self.label = audio.microphone.is_muted ? '󰍭' : '󰍬'; }, 'notify::is-muted', ); self.hook( audio.speaker, () => { self.label = audio.speaker.is_muted ? '󰝟' : '󰕾'; }, 'notify::volume', ); self.hook( audio.speaker, () => { self.label = audio.speaker.is_muted ? '󰝟' : '󰕾'; }, 'notify::is-muted', ); }, }), }); }; ================================================ FILE: .config/ags/modules/osd/index.ts ================================================ import options from 'options'; import brightness from 'services/Brightness'; import { OSDLabel } from './label/index'; import { OSDBar } from './bar/index'; import { OSDIcon } from './icon/index'; import { getPosition } from 'lib/utils'; import { Attribute, Child } from 'lib/types/widget'; import { Revealer } from 'resource:///com/github/Aylur/ags/widgets/revealer.js'; import { Window } from 'resource:///com/github/Aylur/ags/widgets/window.js'; const hyprland = await Service.import('hyprland'); const audio = await Service.import('audio'); const { enable, duration, orientation, location, active_monitor, monitor } = options.theme.osd; const curMonitor = Variable(monitor.value); hyprland.active.connect('changed', () => { curMonitor.value = hyprland.active.monitor.id; }); let count = 0; const handleRevealRevealer = (self: Revealer, property: 'reveal_child' | 'visible'): void => { if (!enable.value || property !== 'reveal_child') { return; } self.reveal_child = true; count++; Utils.timeout(duration.value, () => { count--; if (count === 0) { self.reveal_child = false; } }); }; const handleRevealWindow = (self: Window, property: 'reveal_child' | 'visible'): void => { if (!enable.value || property !== 'visible') { return; } self.visible = true; count++; Utils.timeout(duration.value, () => { count--; if (count === 0) { self.visible = false; } }); }; const handleReveal = ( self: Revealer | Window, property: 'reveal_child' | 'visible', ): void => { if (self instanceof Revealer) { handleRevealRevealer(self, property); } else if (self instanceof Window) { handleRevealWindow(self, property); } }; const renderOSD = (): Revealer => { return Widget.Revealer({ transition: 'crossfade', reveal_child: false, setup: (self) => { self.hook( brightness, () => { handleReveal(self, 'reveal_child'); }, 'notify::screen', ); self.hook( brightness, () => { handleReveal(self, 'reveal_child'); }, 'notify::kbd', ); self.hook( audio.microphone, () => { handleReveal(self, 'reveal_child'); }, 'notify::volume', ); self.hook( audio.microphone, () => { handleReveal(self, 'reveal_child'); }, 'notify::is-muted', ); self.hook( audio.speaker, () => { handleReveal(self, 'reveal_child'); }, 'notify::volume', ); self.hook( audio.speaker, () => { handleReveal(self, 'reveal_child'); }, 'notify::is-muted', ); }, child: Widget.Box({ class_name: 'osd-container', vertical: orientation.bind('value').as((ort) => ort === 'vertical'), children: orientation.bind('value').as((ort) => { if (ort === 'vertical') { return [OSDLabel(), OSDBar(ort), OSDIcon()]; } return [OSDIcon(), OSDBar(ort), OSDLabel()]; }), }), }); }; export default (): Window => Widget.Window({ monitor: Utils.merge( [curMonitor.bind('value'), monitor.bind('value'), active_monitor.bind('value')], (curMon, mon, activeMonitor) => { if (activeMonitor === true) { return curMon; } return mon; }, ), name: `indicator`, class_name: 'indicator', layer: options.tear.bind('value').as((tear) => (tear ? 'top' : 'overlay')), anchor: location.bind('value').as((v) => getPosition(v)), click_through: true, child: Widget.Box({ css: 'padding: 1px;', expand: true, child: renderOSD(), }), setup: (self) => { self.hook(enable, () => { handleReveal(self, 'visible'); }); self.hook( brightness, () => { handleReveal(self, 'visible'); }, 'notify::screen', ); self.hook( brightness, () => { handleReveal(self, 'visible'); }, 'notify::kbd', ); self.hook( audio.microphone, () => { handleReveal(self, 'visible'); }, 'notify::volume', ); self.hook( audio.microphone, () => { handleReveal(self, 'visible'); }, 'notify::is-muted', ); self.hook( audio.speaker, () => { handleReveal(self, 'visible'); }, 'notify::volume', ); self.hook( audio.speaker, () => { handleReveal(self, 'visible'); }, 'notify::is-muted', ); }, }); ================================================ FILE: .config/ags/modules/osd/label/index.ts ================================================ import brightness from 'services/Brightness'; import options from 'options'; import Box from 'types/widgets/box'; import { Attribute, Child } from 'lib/types/widget'; const audio = await Service.import('audio'); export const OSDLabel = (): Box => { return Widget.Box({ class_name: 'osd-label-container', hexpand: true, vexpand: true, child: Widget.Label({ class_name: 'osd-label', hexpand: true, vexpand: true, hpack: 'center', vpack: 'center', setup: (self) => { self.hook( brightness, () => { self.class_names = self.class_names.filter((c) => c !== 'overflow'); self.label = `${Math.round(brightness.screen * 100)}`; }, 'notify::screen', ); self.hook( brightness, () => { self.class_names = self.class_names.filter((c) => c !== 'overflow'); self.label = `${Math.round(brightness.kbd * 100)}`; }, 'notify::kbd', ); self.hook( audio.microphone, () => { self.toggleClassName('overflow', audio.microphone.volume > 1); self.label = `${Math.round(audio.microphone.volume * 100)}`; }, 'notify::volume', ); self.hook( audio.microphone, () => { self.toggleClassName( 'overflow', audio.microphone.volume > 1 && (!options.theme.osd.muted_zero.value || audio.microphone.is_muted === false), ); const inputVolume = options.theme.osd.muted_zero.value && audio.microphone.is_muted !== false ? 0 : Math.round(audio.microphone.volume * 100); self.label = `${inputVolume}`; }, 'notify::is-muted', ); self.hook( audio.speaker, () => { self.toggleClassName('overflow', audio.speaker.volume > 1); self.label = `${Math.round(audio.speaker.volume * 100)}`; }, 'notify::volume', ); self.hook( audio.speaker, () => { self.toggleClassName( 'overflow', audio.speaker.volume > 1 && (!options.theme.osd.muted_zero.value || audio.speaker.is_muted === false), ); const speakerVolume = options.theme.osd.muted_zero.value && audio.speaker.is_muted !== false ? 0 : Math.round(audio.speaker.volume * 100); self.label = `${speakerVolume}`; }, 'notify::is-muted', ); }, }), }); }; ================================================ FILE: .config/ags/modules/shared/barItemBox.ts ================================================ import { BarBoxChild } from 'lib/types/bar'; import { Bind } from 'lib/types/variable'; import { Attribute, GtkWidget } from 'lib/types/widget'; import options from 'options'; import Button from 'types/widgets/button'; export const BarItemBox = (child: BarBoxChild): Button => { const computeVisible = (): Bind | boolean => { if (child.isVis !== undefined) { return child.isVis.bind('value'); } return child.isVisible; }; return Widget.Button({ class_name: options.theme.bar.buttons.style.bind('value').as((style) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style4', }; const boxClassName = Object.hasOwnProperty.call(child, 'boxClass') ? child.boxClass : ''; return `bar_item_box_visible ${styleMap[style]} ${boxClassName}`; }), child: child.component, visible: computeVisible(), ...child.props, }); }; ================================================ FILE: .config/ags/nix/default.nix ================================================ { inputs, pkgs, system, stdenv, lib, writeShellScriptBin, bun, dart-sass, fd, accountsservice, btop, pipewire, bluez, bluez-tools, grimblast, gpu-screen-recorder, networkmanager, brightnessctl, matugen, swww, python3, libgtop, gnome-bluetooth, gobject-introspection, glib, }: let ags = inputs.ags.packages.${system}.default.override { extraPackages = [accountsservice]; }; pname = "hyprpanel"; config = stdenv.mkDerivation { inherit pname; version = "latest"; src = ../.; buildPhase = '' ${bun}/bin/bun build ./main.ts \ --outfile main.js \ --external "resource://*" \ --external "gi://*" ''; installPhase = '' mkdir $out cp -r assets $out cp -r scss $out cp -r widget $out cp -r services $out cp -f main.js $out/config.js ''; }; in { desktop = { inherit config; script = writeShellScriptBin pname '' export PATH=$PATH:${lib.makeBinPath [dart-sass fd btop pipewire bluez bluez-tools networkmanager matugen swww grimblast gpu-screen-recorder brightnessctl gnome-bluetooth python3]} export GI_TYPELIB_PATH=${libgtop}/lib/girepository-1.0:${glib}/lib/girepository-1.0:$GI_TYPELIB_PATH ${ags}/bin/ags -b hyprpanel -c ${config}/config.js $@ ''; }; } ================================================ FILE: .config/ags/options.ts ================================================ import { opt, mkOptions } from 'lib/option'; import { NetstatLabelType, RateUnit, ResourceLabelType } from 'lib/types/bar'; import { KbLabelType } from 'lib/types/customModules/kbLayout'; import { ActiveWsIndicator, BarButtonStyles, BarLocation, NotificationAnchor, OSDAnchor, OSDOrientation, ScalingPriority, WindowLayer, } from 'lib/types/options'; import { MatugenScheme, MatugenTheme, MatugenVariations } from 'lib/types/options'; import { UnitType } from 'lib/types/weather'; import { Transition } from 'lib/types/widget'; import { WorkspaceIcons, WorkspaceIconsColored } from 'lib/types/workspace'; // WARN: CHANGING THESE VALUES WILL PREVENT MATUGEN COLOR GENERATION FOR THE CHANGED VALUE export const colors = { rosewater: '#f5e0dc', flamingo: '#f2cdcd', pink: '#f5c2e7', mauve: '#cba6f7', red: '#f38ba8', maroon: '#eba0ac', peach: '#fab387', yellow: '#f9e2af', green: '#a6e3a1', teal: '#94e2d5', sky: '#89dceb', sapphire: '#74c7ec', blue: '#89b4fa', lavender: '#b4befe', text: '#cdd6f4', subtext1: '#bac2de', subtext2: '#a6adc8', overlay2: '#9399b2', overlay1: '#7f849c', overlay0: '#6c7086', surface2: '#585b70', surface1: '#45475a', surface0: '#313244', base2: '#242438', base: '#1e1e2e', mantle: '#181825', crust: '#11111b', }; // WARN: CHANGING THESE VALUES WILL PREVENT MATUGEN COLOR GENERATION FOR THE CHANGED VALUE const secondary_colors = { text: '#cdd6f3', pink: '#f5c2e6', red: '#f38ba7', peach: '#fab386', mantle: '#181824', surface1: '#454759', surface0: '#313243', overlay1: '#7f849b', lavender: '#b4befd', mauve: '#cba6f6', green: '#a6e3a0', sky: '#89dcea', teal: '#94e2d4', yellow: '#f9e2ad', maroon: '#eba0ab', crust: '#11111a', surface2: '#585b69', }; const tertiary_colors = { pink: '#f5c2e8', red: '#f38ba9', mantle: '#181826', surface0: '#313245', overlay1: '#7f849d', lavender: '#b4beff', mauve: '#cba6f8', green: '#a6e3a2', sky: '#89dcec', teal: '#94e2d6', yellow: '#f9e2ae', maroon: '#eba0ad', crust: '#11111c', surface2: '#585b71', }; const options = mkOptions(OPTIONS, { theme: { matugen: opt(false), matugen_settings: { mode: opt('dark'), scheme_type: opt('tonal-spot'), variation: opt('standard_1'), contrast: opt(0.0), }, font: { size: opt('1.2rem'), name: opt('Ubuntu Nerd Font'), weight: opt(600), }, notification: { scaling: opt(100), background: opt(tertiary_colors.mantle), opacity: opt(100), actions: { background: opt(secondary_colors.lavender), text: opt(colors.mantle), }, label: opt(colors.lavender), border: opt(secondary_colors.surface0), border_radius: opt('0.6em'), time: opt(secondary_colors.overlay1), text: opt(colors.text), labelicon: opt(colors.lavender), close_button: { background: opt(secondary_colors.red), label: opt(colors.crust), }, }, osd: { scaling: opt(100), duration: opt(2500), enable: opt(true), orientation: opt('vertical'), opacity: opt(100), bar_container: opt(colors.crust), icon_container: opt(tertiary_colors.lavender), bar_color: opt(tertiary_colors.lavender), bar_empty_color: opt(colors.surface0), bar_overflow_color: opt(secondary_colors.red), icon: opt(colors.crust), label: opt(tertiary_colors.lavender), monitor: opt(0), active_monitor: opt(true), radius: opt('0.4em'), margins: opt('0px 5px 0px 0px'), location: opt('right'), muted_zero: opt(false), }, bar: { scaling: opt(100), floating: opt(false), location: opt('top'), layer: opt('top'), margin_top: opt('0.5em'), opacity: opt(100), margin_bottom: opt('0em'), margin_sides: opt('0.5em'), border_radius: opt('0.4em'), outer_spacing: opt('1.6em'), label_spacing: opt('0.5em'), transparent: opt(false), dropdownGap: opt('2.9em'), background: opt(colors.crust), buttons: { style: opt('default'), enableBorders: opt(false), borderSize: opt('0.1em'), monochrome: opt(false), spacing: opt('0.25em'), padding_x: opt('0.7rem'), padding_y: opt('0.2rem'), y_margins: opt('0.4em'), radius: opt('0.3em'), opacity: opt(100), background_opacity: opt(100), background_hover_opacity: opt(100), background: opt(colors.base2), icon_background: opt(colors.base2), hover: opt(colors.surface1), text: opt(colors.lavender), icon: opt(colors.lavender), dashboard: { background: opt(colors.base2), enableBorder: opt(false), border: opt(colors.yellow), icon: opt(colors.yellow), spacing: opt('0.5em'), }, workspaces: { background: opt(colors.base2), enableBorder: opt(false), smartHighlight: opt(true), border: opt(colors.pink), available: opt(colors.sky), occupied: opt(colors.flamingo), active: opt(colors.pink), hover: opt(colors.pink), numbered_active_highlight_border: opt('0.2em'), numbered_active_highlight_padding: opt('0.2em'), numbered_active_highlighted_text_color: opt(colors.mantle), numbered_active_underline_color: opt(colors.pink), spacing: opt('0.5em'), fontSize: opt('1.2em'), }, windowtitle: { background: opt(colors.base2), enableBorder: opt(false), border: opt(colors.pink), text: opt(colors.pink), icon: opt(colors.pink), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, media: { enableBorder: opt(false), border: opt(colors.lavender), background: opt(colors.base2), text: opt(colors.lavender), icon: opt(colors.lavender), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, volume: { enableBorder: opt(false), border: opt(colors.maroon), background: opt(colors.base2), text: opt(colors.maroon), icon: opt(colors.maroon), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, network: { enableBorder: opt(false), border: opt(colors.mauve), background: opt(colors.base2), text: opt(colors.mauve), icon: opt(colors.mauve), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, bluetooth: { enableBorder: opt(false), border: opt(colors.sky), background: opt(colors.base2), text: opt(colors.sky), icon: opt(colors.sky), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, systray: { enableBorder: opt(false), border: opt(colors.lavender), background: opt(colors.base2), spacing: opt('0.5em'), }, battery: { enableBorder: opt(false), border: opt(colors.yellow), background: opt(colors.base2), text: opt(colors.yellow), icon: opt(colors.yellow), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, clock: { enableBorder: opt(false), border: opt(colors.pink), background: opt(colors.base2), text: opt(colors.pink), icon: opt(colors.pink), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, notifications: { enableBorder: opt(false), border: opt(colors.lavender), background: opt(colors.base2), icon: opt(colors.lavender), icon_background: opt(colors.base2), total: opt(colors.lavender), spacing: opt('0.5em'), }, modules: { ram: { enableBorder: opt(false), border: opt(colors.yellow), background: opt(colors.base2), text: opt(colors.yellow), icon: opt(colors.yellow), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, cpu: { enableBorder: opt(false), border: opt(colors.red), background: opt(colors.base2), text: opt(colors.red), icon: opt(colors.red), icon_background: opt(colors.base2), spacing: opt('0.5em'), }, storage: { enableBorder: opt(false), border: opt(colors.pink), background: opt(colors.base2), text: opt(colors.pink), icon: opt(colors.pink), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, netstat: { enableBorder: opt(false), border: opt(colors.green), background: opt(colors.base2), text: opt(colors.green), icon: opt(colors.green), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, kbLayout: { enableBorder: opt(false), border: opt(colors.sky), background: opt(colors.base2), text: opt(colors.sky), icon: opt(colors.sky), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, updates: { enableBorder: opt(false), border: opt(colors.mauve), background: opt(colors.base2), text: opt(colors.mauve), icon: opt(colors.mauve), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, weather: { enableBorder: opt(false), border: opt(colors.lavender), background: opt(colors.base2), text: opt(colors.lavender), icon: opt(colors.lavender), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, power: { enableBorder: opt(false), border: opt(colors.red), background: opt(colors.base2), icon: opt(colors.red), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, submap: { enableBorder: opt(false), border: opt(colors.teal), background: opt(colors.base2), text: opt(colors.teal), icon: opt(colors.teal), icon_background: opt(colors.base2), spacing: opt('0.45em'), }, }, }, menus: { monochrome: opt(false), background: opt(colors.crust), opacity: opt(100), cards: opt(colors.base), card_radius: opt('0.4em'), border: { size: opt('0.13em'), radius: opt('0.7em'), color: opt(colors.surface0), }, text: opt(colors.text), dimtext: opt(colors.surface2), feinttext: opt(colors.surface0), label: opt(colors.lavender), popover: { text: opt(colors.lavender), background: opt(secondary_colors.mantle), border: opt(secondary_colors.mantle), }, listitems: { passive: opt(colors.text), active: opt(secondary_colors.lavender), }, icons: { passive: opt(colors.surface2), active: opt(colors.lavender), }, switch: { enabled: opt(colors.lavender), disabled: opt(tertiary_colors.surface0), puck: opt(secondary_colors.surface1), radius: opt('0.2em'), slider_radius: opt('0.2em'), }, check_radio_button: { background: opt(colors.surface1), active: opt(tertiary_colors.lavender), }, buttons: { default: opt(colors.lavender), active: opt(secondary_colors.pink), disabled: opt(tertiary_colors.surface2), text: opt(secondary_colors.mantle), }, iconbuttons: { passive: opt(secondary_colors.text), active: opt(tertiary_colors.lavender), }, progressbar: { foreground: opt(colors.lavender), background: opt(colors.surface1), }, slider: { primary: opt(colors.lavender), background: opt(tertiary_colors.surface2), backgroundhover: opt(colors.surface1), puck: opt(colors.overlay0), slider_radius: opt('0.3rem'), progress_radius: opt('0.3rem'), }, dropdownmenu: { background: opt(colors.crust), text: opt(colors.text), divider: opt(colors.base), }, tooltip: { background: opt(colors.crust), text: opt(tertiary_colors.lavender), }, menu: { media: { scaling: opt(100), song: opt(tertiary_colors.lavender), artist: opt(tertiary_colors.teal), album: opt(tertiary_colors.pink), background: { color: opt(colors.crust), }, card: { color: opt(colors.base), tint: opt(85), }, border: { color: opt(colors.surface0), }, buttons: { inactive: opt(colors.surface2), enabled: opt(secondary_colors.teal), background: opt(tertiary_colors.lavender), text: opt(colors.crust), }, slider: { primary: opt(colors.pink), background: opt(tertiary_colors.surface2), backgroundhover: opt(colors.surface1), puck: opt(colors.overlay0), }, }, volume: { scaling: opt(100), card: { color: opt(colors.base), }, background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, label: { color: opt(colors.maroon), }, text: opt(colors.text), listitems: { passive: opt(colors.text), active: opt(secondary_colors.maroon), }, iconbutton: { passive: opt(colors.text), active: opt(colors.maroon), }, icons: { passive: opt(colors.overlay2), active: opt(colors.maroon), }, audio_slider: { primary: opt(colors.maroon), background: opt(tertiary_colors.surface2), backgroundhover: opt(colors.surface1), puck: opt(colors.surface2), }, input_slider: { primary: opt(colors.maroon), background: opt(tertiary_colors.surface2), backgroundhover: opt(colors.surface1), puck: opt(colors.surface2), }, }, network: { scaling: opt(100), card: { color: opt(colors.base), }, background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, label: { color: opt(colors.mauve), }, text: opt(colors.text), status: { color: opt(colors.overlay0), }, listitems: { passive: opt(colors.text), active: opt(secondary_colors.mauve), }, icons: { passive: opt(colors.overlay2), active: opt(colors.mauve), }, iconbuttons: { passive: opt(colors.text), active: opt(colors.mauve), }, switch: { enabled: opt(colors.mauve), disabled: opt(tertiary_colors.surface0), puck: opt(secondary_colors.surface1), }, }, bluetooth: { scaling: opt(100), card: { color: opt(colors.base), }, background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, label: { color: opt(colors.sky), }, text: opt(colors.text), status: opt(colors.overlay0), switch_divider: opt(colors.surface1), switch: { enabled: opt(colors.sky), disabled: opt(tertiary_colors.surface0), puck: opt(secondary_colors.surface1), }, listitems: { passive: opt(colors.text), active: opt(secondary_colors.sky), }, icons: { passive: opt(colors.overlay2), active: opt(colors.sky), }, iconbutton: { passive: opt(colors.text), active: opt(colors.sky), }, }, systray: { dropdownmenu: { background: opt(colors.crust), text: opt(colors.text), divider: opt(colors.base), }, }, battery: { scaling: opt(100), card: { color: opt(colors.base), }, background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, label: { color: opt(colors.yellow), }, text: opt(colors.text), listitems: { passive: opt(secondary_colors.text), active: opt(colors.yellow), }, icons: { passive: opt(colors.overlay2), active: opt(colors.yellow), }, slider: { primary: opt(colors.yellow), background: opt(tertiary_colors.surface2), backgroundhover: opt(colors.surface1), puck: opt(colors.overlay0), }, }, clock: { scaling: opt(100), card: { color: opt(colors.base), }, background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, text: opt(colors.text), time: { time: opt(colors.pink), timeperiod: opt(colors.teal), }, calendar: { yearmonth: opt(colors.teal), weekdays: opt(colors.pink), paginator: opt(secondary_colors.pink), currentday: opt(colors.pink), days: opt(colors.text), contextdays: opt(colors.surface2), }, weather: { icon: opt(colors.pink), temperature: opt(colors.text), status: opt(colors.teal), stats: opt(colors.pink), thermometer: { extremelyhot: opt(colors.red), hot: opt(colors.peach), moderate: opt(colors.lavender), cold: opt(colors.blue), extremelycold: opt(colors.sky), }, hourly: { time: opt(colors.pink), icon: opt(colors.pink), temperature: opt(colors.pink), }, }, }, dashboard: { scaling: opt(100), confirmation_scaling: opt(100), card: { color: opt(colors.base), }, background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, profile: { name: opt(colors.pink), size: opt('8.5em'), radius: opt('0.4em'), }, powermenu: { shutdown: opt(colors.red), restart: opt(colors.peach), logout: opt(colors.green), sleep: opt(colors.sky), confirmation: { card: opt(colors.base), background: opt(colors.crust), border: opt(colors.surface0), label: opt(colors.lavender), body: opt(colors.text), confirm: opt(colors.green), deny: opt(colors.red), button_text: opt(secondary_colors.crust), }, }, shortcuts: { background: opt(colors.lavender), text: opt(secondary_colors.mantle), recording: opt(colors.green), }, controls: { disabled: opt(colors.surface2), wifi: { background: opt(colors.mauve), text: opt(secondary_colors.mantle), }, bluetooth: { background: opt(colors.sky), text: opt(secondary_colors.mantle), }, notifications: { background: opt(colors.yellow), text: opt(secondary_colors.mantle), }, volume: { background: opt(colors.maroon), text: opt(secondary_colors.mantle), }, input: { background: opt(colors.pink), text: opt(secondary_colors.mantle), }, }, directories: { left: { top: { color: opt(colors.pink), }, middle: { color: opt(colors.yellow), }, bottom: { color: opt(colors.maroon), }, }, right: { top: { color: opt(colors.teal), }, middle: { color: opt(colors.mauve), }, bottom: { color: opt(colors.lavender), }, }, }, monitors: { bar_background: opt(colors.surface1), cpu: { icon: opt(colors.maroon), bar: opt(tertiary_colors.maroon), label: opt(colors.maroon), }, ram: { icon: opt(colors.yellow), bar: opt(tertiary_colors.yellow), label: opt(colors.yellow), }, gpu: { icon: opt(colors.green), bar: opt(tertiary_colors.green), label: opt(colors.green), }, disk: { icon: opt(colors.pink), bar: opt(tertiary_colors.pink), label: opt(colors.pink), }, }, }, power: { scaling: opt(90), radius: opt('0.4em'), background: { color: opt(colors.crust), }, border: { color: opt(colors.surface0), }, buttons: { shutdown: { background: opt(colors.base), icon_background: opt(secondary_colors.red), text: opt(colors.red), icon: opt(secondary_colors.mantle), }, restart: { background: opt(colors.base), icon_background: opt(secondary_colors.peach), text: opt(colors.peach), icon: opt(secondary_colors.mantle), }, logout: { background: opt(colors.base), icon_background: opt(secondary_colors.green), text: opt(colors.green), icon: opt(secondary_colors.mantle), }, sleep: { background: opt(colors.base), icon_background: opt(secondary_colors.sky), text: opt(colors.sky), icon: opt(secondary_colors.mantle), }, }, }, notifications: { scaling: opt(100), height: opt('58em'), label: opt(colors.lavender), no_notifications_label: opt(colors.surface0), background: opt(colors.crust), card: opt(colors.base), border: opt(colors.surface0), switch_divider: opt(colors.surface1), clear: opt(colors.red), switch: { enabled: opt(colors.lavender), disabled: opt(tertiary_colors.surface0), puck: opt(secondary_colors.surface1), }, pager: { show: opt(true), background: opt(colors.crust), button: opt(colors.lavender), label: opt(colors.overlay2), }, scrollbar: { color: opt(colors.lavender), width: opt('0.35em'), radius: opt('0.2em'), }, }, }, }, }, }, bar: { scrollSpeed: opt(5), layouts: opt({ '1': { left: ['dashboard', 'workspaces', 'windowtitle'], middle: ['media'], right: ['volume', 'clock', 'notifications'], }, '2': { left: ['dashboard', 'workspaces', 'windowtitle'], middle: ['media'], right: ['volume', 'clock', 'notifications'], }, '0': { left: ['dashboard', 'workspaces', 'windowtitle'], middle: ['media'], right: ['volume', 'network', 'bluetooth', 'battery', 'systray', 'clock', 'notifications'], }, }), launcher: { icon: opt('󰣇'), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, windowtitle: { custom_title: opt(true), title_map: opt([]), class_name: opt(true), label: opt(true), icon: opt(true), truncation: opt(true), truncation_size: opt(50), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, workspaces: { show_icons: opt(false), showAllActive: opt(true), ignored: opt(''), show_numbered: opt(false), showWsIcons: opt(false), numbered_active_indicator: opt('underline'), icons: { available: opt(''), active: opt(''), occupied: opt(''), }, workspaceIconMap: opt({}), workspaces: opt(10), spacing: opt(1), monitorSpecific: opt(true), hideUnoccupied: opt(true), workspaceMask: opt(false), reverse_scroll: opt(false), scroll_speed: opt(5), }, volume: { label: opt(true), rightClick: opt(''), middleClick: opt(''), scrollUp: opt('pactl set-sink-volume @DEFAULT_SINK@ +5%'), scrollDown: opt('pactl set-sink-volume @DEFAULT_SINK@ -5%'), }, network: { truncation: opt(true), truncation_size: opt(7), label: opt(true), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, bluetooth: { label: opt(true), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, battery: { label: opt(true), hideLabelWhenFull: opt(false), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, systray: { ignore: opt([]), }, clock: { icon: opt('󰸗'), showIcon: opt(true), showTime: opt(true), format: opt('%a %b %d %I:%M:%S %p'), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, media: { show_artist: opt(false), truncation: opt(true), show_label: opt(true), truncation_size: opt(30), show_active_only: opt(false), rightClick: opt(''), middleClick: opt(''), }, notifications: { show_total: opt(false), hideCountWhenZero: opt(false), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, customModules: { scrollSpeed: opt(5), ram: { icon: opt(''), label: opt(true), labelType: opt('percentage'), round: opt(true), pollingInterval: opt(2000), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), }, cpu: { icon: opt(''), label: opt(true), round: opt(true), pollingInterval: opt(2000), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, storage: { label: opt(true), icon: opt('󰋊'), round: opt(false), labelType: opt('percentage'), pollingInterval: opt(2000), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), }, netstat: { label: opt(true), networkInterface: opt(''), icon: opt('󰖟'), round: opt(true), labelType: opt('full'), rateUnit: opt('auto'), pollingInterval: opt(2000), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), }, kbLayout: { label: opt(true), labelType: opt('code'), icon: opt('󰌌'), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, updates: { updateCommand: opt('$HOME/.config/ags/scripts/checkUpdates.sh -arch'), label: opt(true), padZero: opt(true), icon: opt('󰏖'), pollingInterval: opt(1000 * 60 * 60 * 6), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, submap: { label: opt(true), showSubmapName: opt(true), enabledIcon: opt('󰌐'), disabledIcon: opt('󰌌'), enabledText: opt('Submap On'), disabledText: opt('Submap off'), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, weather: { label: opt(true), unit: opt('imperial'), leftClick: opt(''), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, power: { icon: opt(''), showLabel: opt(true), leftClick: opt('menu:powerdropdown'), rightClick: opt(''), middleClick: opt(''), scrollUp: opt(''), scrollDown: opt(''), }, }, }, menus: { transition: opt('crossfade'), transitionTime: opt(200), power: { showLabel: opt(true), confirmation: opt(true), sleep: opt('systemctl suspend'), reboot: opt('systemctl reboot'), logout: opt('hyprctl dispatch exit'), shutdown: opt('systemctl poweroff'), }, dashboard: { powermenu: { confirmation: opt(true), sleep: opt('systemctl suspend'), reboot: opt('systemctl reboot'), logout: opt('hyprctl dispatch exit'), shutdown: opt('systemctl poweroff'), avatar: { image: opt('$HOME/.face.icon'), name: opt<'system' | string>('system'), }, }, stats: { enabled: opt(true), interval: opt(2000), enable_gpu: opt(false), }, controls: { enabled: opt(true), }, shortcuts: { enabled: opt(true), left: { shortcut1: { icon: opt('󰇩'), tooltip: opt('Microsoft Edge'), command: opt('microsoft-edge-stable'), }, shortcut2: { icon: opt(''), tooltip: opt('Spotify'), command: opt('spotify-launcher'), }, shortcut3: { icon: opt(''), tooltip: opt('Discord'), command: opt('discord'), }, shortcut4: { icon: opt(''), tooltip: opt('Search Apps'), command: opt('rofi -show drun'), }, }, right: { shortcut1: { icon: opt(''), tooltip: opt('Color Picker'), command: opt('hyprpicker -a'), }, shortcut3: { icon: opt('󰄀'), tooltip: opt('Screenshot'), command: opt('bash -c "$HOME/.config/ags/services/snapshot.sh"'), }, }, }, directories: { enabled: opt(true), left: { directory1: { label: opt('󰉍 Downloads'), command: opt('bash -c "xdg-open $HOME/Downloads/"'), }, directory2: { label: opt('󰉏 Videos'), command: opt('bash -c "xdg-open $HOME/Videos/"'), }, directory3: { label: opt('󰚝 Projects'), command: opt('bash -c "xdg-open $HOME/Projects/"'), }, }, right: { directory1: { label: opt('󱧶 Documents'), command: opt('bash -c "xdg-open $HOME/Documents/"'), }, directory2: { label: opt('󰉏 Pictures'), command: opt('bash -c "xdg-open $HOME/Pictures/"'), }, directory3: { label: opt('󱂵 Home'), command: opt('bash -c "xdg-open $HOME/"'), }, }, }, }, clock: { time: { military: opt(false), hideSeconds: opt(false), }, weather: { enabled: opt(true), interval: opt(60000), unit: opt('imperial'), location: opt('Los Angeles'), key: opt( JSON.parse(Utils.readFile(`${App.configDir}/.weather.json`) || '{}')?.weather_api_key || '', ), }, }, }, scalingPriority: opt('gdk'), terminal: opt('$TERM'), tear: opt(false), wallpaper: { enable: opt(true), image: opt(''), pywal: opt(false), }, notifications: { position: opt('top right'), ignore: opt([]), displayedTotal: opt(10), monitor: opt(0), active_monitor: opt(true), timeout: opt(7000), cache_actions: opt(true), clearDelay: opt(100), }, dummy: opt(true), }); globalThis['options'] = options; export default options; ================================================ FILE: .config/ags/package.json ================================================ { "name": "hyprpanel", "version": "1.0.0", "description": "A customizable panel built for Hyprland.", "main": "config.js", "directories": { "lib": "lib" }, "scripts": { "lint": "eslint --config .eslintrc.js .", "lint:fix": "eslint --config .eslintrc.js .", "format": "prettier --write 'modules/**/*.ts'" }, "keywords": [], "author": "", "license": "MIT", "devDependencies": { "@types/node": "^22.5.4", "@typescript-eslint/eslint-plugin": "^8.5.0", "@typescript-eslint/parser": "^8.5.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.30.0", "eslint-plugin-prettier": "^5.2.1", "prettier": "^3.3.3", "tsconfig-paths": "^4.2.0", "typescript": "^5.6.2" } } ================================================ FILE: .config/ags/scripts/README.md ================================================ # scripts folder - For ARM devices, you have to compile C++ files yourself. If there are none, yippee - It is advised to use services instead of listening/polling scripts, so everything here are just scripts for actions ================================================ FILE: .config/ags/scripts/checkUpdates.sh ================================================ #!/bin/bash check_arch_updates() { official_updates=0 aur_updates=0 if [ "$1" = "-y" ]; then aur_updates=$(yay -Qum 2>/dev/null | wc -l) elif [ "$1" = "-p" ]; then official_updates=$(checkupdates 2>/dev/null | wc -l) else official_updates=$(checkupdates 2>/dev/null | wc -l) aur_updates=$(yay -Qum 2>/dev/null | wc -l) fi total_updates=$((official_updates + aur_updates)) echo $total_updates } check_ubuntu_updates() { result=$(apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst) echo "$result" } check_fedora_updates() { result=$(dnf check-update -q | grep -v '^Loaded plugins' | grep -v '^No match for' | wc -l) echo "$result" } case "$1" in -arch) check_arch_updates "$2" ;; -ubuntu) check_ubuntu_updates ;; -fedora) check_fedora_updates ;; *) echo "0" ;; esac ================================================ FILE: .config/ags/scripts/color_generation/applycolor.sh ================================================ #!/usr/bin/env bash XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" STATE_DIR="$XDG_STATE_HOME/ags" term_alpha=100 #Set this to < 100 make all your terminals transparent # sleep 0 # idk i wanted some delay or colors dont get applied properly if [ ! -d "$CACHE_DIR"/user/generated ]; then mkdir -p "$CACHE_DIR"/user/generated fi cd "$CONFIG_DIR" || exit colornames='' colorstrings='' colorlist=() colorvalues=() # wallpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}') # wallpath_png="$CACHE_DIR/user/generated/hypr/lockscreen.png" # convert "$wallpath" "$wallpath_png" # wallpath_png=$(echo "$wallpath_png" | sed 's/\//\\\//g') # wallpath_png=$(sed 's/\//\\\\\//g' <<< "$wallpath_png") transparentize() { local hex="$1" local alpha="$2" local red green blue red=$((16#${hex:1:2})) green=$((16#${hex:3:2})) blue=$((16#${hex:5:2})) printf 'rgba(%d, %d, %d, %.2f)\n' "$red" "$green" "$blue" "$alpha" } get_light_dark() { lightdark="" if [ ! -f "$STATE_DIR/user/colormode.txt" ]; then echo "" > "$STATE_DIR/user/colormode.txt" else lightdark=$(sed -n '1p' "$STATE_DIR/user/colormode.txt") fi echo "$lightdark" } apply_fuzzel() { # Check if scripts/templates/fuzzel/fuzzel.ini exists if [ ! -f "scripts/templates/fuzzel/fuzzel.ini" ]; then echo "Template file not found for Fuzzel. Skipping that." return fi # Copy template mkdir -p "$CACHE_DIR"/user/generated/fuzzel cp "scripts/templates/fuzzel/fuzzel.ini" "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini # Apply colors for i in "${!colorlist[@]}"; do sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini done cp "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini "$XDG_CONFIG_HOME"/fuzzel/fuzzel.ini } apply_term() { # Check if terminal escape sequence template exists if [ ! -f "scripts/templates/terminal/sequences.txt" ]; then echo "Template file not found for Terminal. Skipping that." return fi # Copy template mkdir -p "$CACHE_DIR"/user/generated/terminal cp "scripts/templates/terminal/sequences.txt" "$CACHE_DIR"/user/generated/terminal/sequences.txt # Apply colors for i in "${!colorlist[@]}"; do sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/terminal/sequences.txt done sed -i "s/\$alpha/$term_alpha/g" "$CACHE_DIR/user/generated/terminal/sequences.txt" for file in /dev/pts/*; do if [[ $file =~ ^/dev/pts/[0-9]+$ ]]; then cat "$CACHE_DIR"/user/generated/terminal/sequences.txt > "$file" fi done } apply_hyprland() { # Check if scripts/templates/hypr/hyprland/colors.conf exists if [ ! -f "scripts/templates/hypr/hyprland/colors.conf" ]; then echo "Template file not found for Hyprland colors. Skipping that." return fi # Copy template mkdir -p "$CACHE_DIR"/user/generated/hypr/hyprland cp "scripts/templates/hypr/hyprland/colors.conf" "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf # Apply colors for i in "${!colorlist[@]}"; do sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf done cp "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf "$XDG_CONFIG_HOME"/hypr/hyprland/colors.conf } apply_hyprlock() { # Check if scripts/templates/hypr/hyprlock.conf exists if [ ! -f "scripts/templates/hypr/hyprlock.conf" ]; then echo "Template file not found for hyprlock. Skipping that." return fi # Copy template mkdir -p "$CACHE_DIR"/user/generated/hypr/ cp "$XDG_CONFIG_HOME"/hypr/hyprlock.conf "$CACHE_DIR"/user/generated/hypr/hyprlock.conf # Apply colors # sed -i "s/{{ SWWW_WALL }}/${wallpath_png}/g" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf for i in "${!colorlist[@]}"; do sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf done cp "$CACHE_DIR"/user/generated/hypr/hyprlock.conf "$XDG_CONFIG_HOME"/hypr/hyprlock.conf } apply_lightdark() { lightdark=$(get_light_dark) if [ "$lightdark" = "light" ]; then gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' else gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' fi } apply_gtk() { # Using gradience-cli usegradience=$(sed -n '4p' "$STATE_DIR/user/colormode.txt") if [[ "$usegradience" = "nogradience" ]]; then rm "$XDG_CONFIG_HOME/gtk-3.0/gtk.css" rm "$XDG_CONFIG_HOME/gtk-4.0/gtk.css" return fi # Copy template mkdir -p "$CACHE_DIR"/user/generated/gradience cp "scripts/templates/gradience/preset.json" "$CACHE_DIR"/user/generated/gradience/preset.json # Apply colors for i in "${!colorlist[@]}"; do sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "$CACHE_DIR"/user/generated/gradience/preset.json done mkdir -p "$XDG_CONFIG_HOME/presets" # create gradience presets folder gradience-cli apply -p "$CACHE_DIR"/user/generated/gradience/preset.json --gtk both # And set GTK theme manually as Gradience defaults to light adw-gtk3 # (which is unreadable when broken when you use dark mode) lightdark=$(get_light_dark) if [ "$lightdark" = "light" ]; then gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3' else gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark fi } apply_ags() { ags run-js "handleStyles(false);" ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' } colornames=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f1) colorstrings=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) IFS=$'\n' colorlist=( $colornames ) # Array of color names colorvalues=( $colorstrings ) # Array of color values apply_ags & apply_hyprland & apply_hyprlock & apply_lightdark & apply_gtk & apply_fuzzel & apply_term & ================================================ FILE: .config/ags/scripts/color_generation/colorgen.sh ================================================ #!/usr/bin/env bash XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" STATE_DIR="$XDG_STATE_HOME/ags" # check if no arguments if [ $# -eq 0 ]; then echo "Usage: colorgen.sh /path/to/image (--apply)" exit 1 fi # check if the file $STATE_DIR/user/colormode.txt exists. if not, create it. else, read it to $lightdark colormodefile="$STATE_DIR/user/colormode.txt" lightdark="dark" transparency="opaque" materialscheme="vibrant" terminalscheme="$XDG_CONFIG_HOME/ags/scripts/templates/terminal/scheme-base.json" if [ ! -f $colormodefile ]; then echo "dark" > $colormodefile echo "opaque" >> $colormodefile echo "vibrant" >> $colormodefile elif [[ $(wc -l < $colormodefile) -ne 4 || $(wc -w < $colormodefile) -ne 4 ]]; then echo "dark" > $colormodefile echo "opaque" >> $colormodefile echo "vibrant" >> $colormodefile echo "yesgradience" >> $colormodefile else lightdark=$(sed -n '1p' $colormodefile) transparency=$(sed -n '2p' $colormodefile) materialscheme=$(sed -n '3p' $colormodefile) if [ "$materialscheme" = "monochrome" ]; then terminalscheme="$XDG_CONFIG_HOME/ags/scripts/templates/terminal/scheme-monochrome.json" fi fi backend="material" # color generator backend if [ ! -f "$STATE_DIR/user/colorbackend.txt" ]; then echo "material" > "$STATE_DIR/user/colorbackend.txt" else backend=$(cat "$STATE_DIR/user/colorbackend.txt") # either "" or "-l" fi cd "$CONFIG_DIR/scripts/" || exit if [[ "$1" = "#"* ]]; then # this is a color color_generation/generate_colors_material.py --color "$1" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --termscheme $terminalscheme --blend_bg_fg \ > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss" color_generation/applycolor.sh fi elif [ "$backend" = "material" ]; then smartflag='' if [ "$3" = "--smart" ]; then smartflag='--smart' fi color_generation/generate_colors_material.py --path "$1" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --termscheme $terminalscheme --blend_bg_fg \ --cache "$STATE_DIR/user/color.txt" $smartflag \ > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss" color_generation/applycolor.sh fi elif [ "$backend" = "pywal" ]; then # clear and generate wal -c wal -i "$1" -n $lightdark -q # copy scss cp "$XDG_CACHE_HOME/wal/colors.scss" "$CACHE_DIR"/user/generated/material_colors.scss cat color_generation/pywal_to_material.scss >> "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then sass -I "$STATE_DIR/scss" -I "$CONFIG_DIR/scss/fallback" "$CACHE_DIR"/user/generated/material_colors.scss "$CACHE_DIR"/user/generated/colors_classes.scss --style compressed sed -i "s/ { color//g" "$CACHE_DIR"/user/generated/colors_classes.scss sed -i "s/\./$/g" "$CACHE_DIR"/user/generated/colors_classes.scss sed -i "s/}//g" "$CACHE_DIR"/user/generated/colors_classes.scss if [ "$lightdark" = "-l" ]; then printf "\n""\$darkmode: false;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss else printf "\n""\$darkmode: true;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss fi cp "$CACHE_DIR"/user/generated/colors_classes.scss "$STATE_DIR/scss/_material.scss" color_generation/applycolor.sh fi fi ================================================ FILE: .config/ags/scripts/color_generation/generate_colors_material.py ================================================ #!/usr/bin/env python3 import argparse import math import json from PIL import Image from materialyoucolor.quantize import QuantizeCelebi from materialyoucolor.score.score import Score from materialyoucolor.hct import Hct from materialyoucolor.dynamiccolor.material_dynamic_colors import MaterialDynamicColors from materialyoucolor.utils.color_utils import (rgba_from_argb, argb_from_rgb, argb_from_rgba) from materialyoucolor.utils.math_utils import (sanitize_degrees_double, difference_degrees, rotation_direction) parser = argparse.ArgumentParser(description='Color generation script') parser.add_argument('--path', type=str, default=None, help='generate colorscheme from image') parser.add_argument('--size', type=int , default=128 , help='bitmap image size') parser.add_argument('--color', type=str, default=None, help='generate colorscheme from color') parser.add_argument('--mode', type=str, choices=['dark', 'light'], default='dark', help='dark or light mode') parser.add_argument('--scheme', type=str, default='vibrant', help='material scheme to use') parser.add_argument('--smart', action='store_true', default=False, help='decide scheme type based on image color') parser.add_argument('--transparency', type=str, choices=['opaque', 'transparent'], default='opaque', help='enable transparency') parser.add_argument('--termscheme', type=str, default=None, help='JSON file containg the terminal scheme for generating term colors') parser.add_argument('--harmony', type=float , default=0.8, help='(0-1) Color hue shift towards accent') parser.add_argument('--harmonize_threshold', type=float , default=100, help='(0-180) Max threshold angle to limit color hue shift') parser.add_argument('--term_fg_boost', type=float , default=0.35, help='Make terminal foreground more different from the background') parser.add_argument('--blend_bg_fg', action='store_true', default=False, help='Shift terminal background or foreground towards accent') parser.add_argument('--cache', type=str, default=None, help='file path to store the generated color') parser.add_argument('--debug', action='store_true', default=False, help='debug mode') args = parser.parse_args() rgba_to_hex = lambda rgba: "#{:02X}{:02X}{:02X}".format(rgba[0], rgba[1], rgba[2]) argb_to_hex = lambda argb: "#{:02X}{:02X}{:02X}".format(*map(round, rgba_from_argb(argb))) hex_to_argb = lambda hex_code: argb_from_rgb(int(hex_code[1:3], 16), int(hex_code[3:5], 16), int(hex_code[5:], 16)) display_color = lambda rgba : "\x1B[38;2;{};{};{}m{}\x1B[0m".format(rgba[0], rgba[1], rgba[2], "\x1b[7m \x1b[7m") def calculate_optimal_size (width: int, height: int, bitmap_size: int) -> (int, int): image_area = width * height; bitmap_area = bitmap_size ** 2 scale = math.sqrt(bitmap_area/image_area) if image_area > bitmap_area else 1 new_width = round(width * scale) new_height = round(height * scale) if new_width == 0: new_width = 1 if new_height == 0: new_height = 1 return new_width, new_height def harmonize (design_color: int, source_color: int, threshold: float = 35, harmony: float = 0.5) -> int: from_hct = Hct.from_int(design_color) to_hct = Hct.from_int(source_color) difference_degrees_ = difference_degrees(from_hct.hue, to_hct.hue) rotation_degrees = min(difference_degrees_ * harmony, threshold) output_hue = sanitize_degrees_double( from_hct.hue + rotation_degrees * rotation_direction(from_hct.hue, to_hct.hue) ) return Hct.from_hct(output_hue, from_hct.chroma, from_hct.tone).to_int() def boost_chroma_tone (argb: int, chroma: float = 1, tone: float = 1) -> int: hct = Hct.from_int(argb) return Hct.from_hct(hct.hue, hct.chroma * chroma, hct.tone * tone).to_int() darkmode = (args.mode == 'dark') transparent = (args.transparency == 'transparent') if args.path is not None: image = Image.open(args.path) if image.format == "GIF": image.seek(1) wsize, hsize = image.size wsize_new, hsize_new = calculate_optimal_size(wsize, hsize, args.size) if wsize_new < wsize or hsize_new < hsize: image = image.resize((wsize_new, hsize_new), Image.Resampling.BICUBIC) colors = QuantizeCelebi(list(image.getdata()), 128) argb = Score.score(colors)[0] if args.cache is not None: with open(args.cache, 'w') as file: file.write(argb_to_hex(argb)) hct = Hct.from_int(argb) if(args.smart): if(hct.chroma < 20): args.scheme = 'neutral' if(hct.tone > 60): darkmode = False elif args.color is not None: argb = hex_to_argb(args.color) hct = Hct.from_int(argb) if args.scheme == 'fruitsalad': from materialyoucolor.scheme.scheme_fruit_salad import SchemeFruitSalad as Scheme elif args.scheme == 'expressive': from materialyoucolor.scheme.scheme_expressive import SchemeExpressive as Scheme elif args.scheme == 'monochrome': from materialyoucolor.scheme.scheme_monochrome import SchemeMonochrome as Scheme elif args.scheme == 'rainbow': from materialyoucolor.scheme.scheme_rainbow import SchemeRainbow as Scheme elif args.scheme == 'tonalspot': from materialyoucolor.scheme.scheme_tonal_spot import SchemeTonalSpot as Scheme elif args.scheme == 'neutral': from materialyoucolor.scheme.scheme_neutral import SchemeNeutral as Scheme elif args.scheme == 'fidelity': from materialyoucolor.scheme.scheme_fidelity import SchemeFidelity as Scheme elif args.scheme == 'content': from materialyoucolor.scheme.scheme_content import SchemeContent as Scheme elif args.scheme == 'vibrant': from materialyoucolor.scheme.scheme_vibrant import SchemeVibrant as Scheme else: from schemes.scheme_morevibrant import SchemeMoreVibrant as Scheme # Generate scheme = Scheme(hct, darkmode, 0.0) material_colors = {} term_colors = {} for color in vars(MaterialDynamicColors).keys(): color_name = getattr(MaterialDynamicColors, color) if hasattr(color_name, "get_hct"): rgba = color_name.get_hct(scheme).to_rgba() material_colors[color] = rgba_to_hex(rgba) # Extended material if darkmode == True: material_colors['success'] = '#B5CCBA' material_colors['onSuccess'] = '#213528' material_colors['successContainer'] = '#374B3E' material_colors['onSuccessContainer'] = '#D1E9D6' else: material_colors['success'] = '#4F6354' material_colors['onSuccess'] = '#FFFFFF' material_colors['successContainer'] = '#D1E8D5' material_colors['onSuccessContainer'] = '#0C1F13' # Terminal Colors if args.termscheme is not None: with open(args.termscheme, 'r') as f: json_termscheme = f.read() term_source_colors = json.loads(json_termscheme)['dark' if darkmode else 'light'] primary_color_argb = hex_to_argb(material_colors['primary_paletteKeyColor']) for color, val in term_source_colors.items(): if(args.scheme == 'monochrome') : term_colors[color] = val continue if args.blend_bg_fg and color == "term0": harmonized = boost_chroma_tone(hex_to_argb(material_colors['surfaceContainerLow']), 1.2, 0.95) elif args.blend_bg_fg and color == "term15": harmonized = boost_chroma_tone(hex_to_argb(material_colors['onSurface']), 3, 1) else: harmonized = harmonize(hex_to_argb(val), primary_color_argb, args.harmonize_threshold, args.harmony) harmonized = boost_chroma_tone(harmonized, 1, 1 + (args.term_fg_boost * (1 if darkmode else -1))) term_colors[color] = argb_to_hex(harmonized) if args.debug == False: print(f"$darkmode: {darkmode};") print(f"$transparent: {transparent};") for color, code in material_colors.items(): print(f"${color}: {code};") for color, code in term_colors.items(): print(f"${color}: {code};") else: if args.path is not None: print('\n--------------Image properties-----------------') print(f"Image size: {wsize} x {hsize}") print(f"Resized image: {wsize_new} x {hsize_new}") print('\n---------------Selected color------------------') print(f"Dark mode: {darkmode}") print(f"Scheme: {args.scheme}") print(f"Accent color: {display_color(rgba_from_argb(argb))} {argb_to_hex(argb)}") print(f"HCT: {hct.hue:.2f} {hct.chroma:.2f} {hct.tone:.2f}") print('\n---------------Material colors-----------------') for color, code in material_colors.items(): rgba = rgba_from_argb(hex_to_argb(code)) print(f"{color.ljust(32)} : {display_color(rgba)} {code}") print('\n----------Harmonize terminal colors------------') for color, code in term_colors.items(): rgba = rgba_from_argb(hex_to_argb(code)) code_source = term_source_colors[color] rgba_source = rgba_from_argb(hex_to_argb(code_source)) print(f"{color.ljust(6)} : {display_color(rgba_source)} {code_source} --> {display_color(rgba)} {code}") print('-----------------------------------------------') ================================================ FILE: .config/ags/scripts/color_generation/pywal_to_material.scss ================================================ $primary: lighten($color4, 20%); $onPrimary: darken($color2, 20%); $primaryContainer: darken($color2, 10%); $onPrimaryContainer: lighten($color4, 10%); $secondary: desaturate(lighten($color5, 20%), 20%); $onSecondary: desaturate(darken($color3, 20%), 20%); $secondaryContainer: desaturate(darken($color3, 20%), 20%); $onSecondaryContainer: desaturate(lighten($color5, 20%), 20%); $tertiary: adjust-hue(lighten($color4, 20%), 30deg); $onTertiary: adjust-hue(darken($color2, 20%), 30deg); $tertiaryContainer: adjust-hue(darken($color2, 10%), 30deg); $tertiaryContainer: adjust-hue(lighten($color4, 10%), 30deg); $error: #ffb4a9; $onError: #680003; $errorContainer: #930006; $onErrorContainer: #ffb4a9; $colorbarbg: $color0; $background: $color0; $onBackground: $color7; $surface: $color0; $onSurface: $color7; $surfaceVariant: $color1; $onSurfaceVariant: $color7; $outline: $color7; $shadow: #000000; $inverseSurface: invert($surface); $inverseOnSurface: invert($onSurface); $inversePrimary: invert($primary); .primary { color: $primary; } .onPrimary { color: $onPrimary; } .primaryContainer { color: $primaryContainer; } .onPrimaryContainer { color: $onPrimaryContainer; } .secondary { color: $secondary; } .onSecondary { color: $onSecondary; } .secondaryContainer { color: $secondaryContainer; } .onSecondaryContainer { color: $onSecondaryContainer; } .tertiary { color: $tertiary; } .onTertiary { color: $onTertiary; } .tertiaryContainer { color: $tertiaryContainer; } .onTertiaryContainer { color: $tertiaryContainer; } .error { color: $error; } .onError { color: $onError; } .errorContainer { color: $errorContainer; } .onErrorContainer { color: $onErrorContainer; } .colorbarbg { color: $colorbarbg; } .background { color: $background; } .onBackground { color: $onBackground; } .surface { color: $surface; } .onSurface { color: $onSurface; } .surfaceVariant { color: $surfaceVariant; } .onSurfaceVariant { color: $onSurfaceVariant; } .outline { color: $outline; } .shadow { color: $shadow; } .inverseSurface { color: $inverseSurface; } .inverseOnSurface { color: $inverseOnSurface; } .inversePrimary { color: $inversePrimary; } ================================================ FILE: .config/ags/scripts/color_generation/randomwall.sh ================================================ #!/usr/bin/env bash XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" $CONFIG_DIR/scripts/color_generation/switchwall.sh "$(fd . $(xdg-user-dir PICTURES)/wallpapers/ -e .png -e .jpg -e .svg | xargs shuf -n1 -e)" ================================================ FILE: .config/ags/scripts/color_generation/schemes/scheme_morevibrant.py ================================================ from materialyoucolor.scheme.dynamic_scheme import DynamicSchemeOptions, DynamicScheme from materialyoucolor.scheme.variant import Variant from materialyoucolor.palettes.tonal_palette import TonalPalette class SchemeMoreVibrant(DynamicScheme): hues = [0.0, 41.0, 61.0, 101.0, 131.0, 181.0, 251.0, 301.0, 360.0] secondary_rotations = [18.0, 15.0, 10.0, 12.0, 15.0, 18.0, 15.0, 12.0, 12.0] tertiary_rotations = [35.0, 30.0, 20.0, 25.0, 30.0, 35.0, 30.0, 25.0, 25.0] def __init__(self, source_color_hct, is_dark, contrast_level): super().__init__( DynamicSchemeOptions( source_color_argb=source_color_hct.to_int(), variant=Variant.VIBRANT, contrast_level=contrast_level, is_dark=is_dark, primary_palette=TonalPalette.from_hue_and_chroma( source_color_hct.hue, 200.0 ), secondary_palette=TonalPalette.from_hue_and_chroma( DynamicScheme.get_rotated_hue( source_color_hct, SchemeMoreVibrant.hues, SchemeMoreVibrant.secondary_rotations, ), 32.0, ), tertiary_palette=TonalPalette.from_hue_and_chroma( DynamicScheme.get_rotated_hue( source_color_hct, SchemeMoreVibrant.hues, SchemeMoreVibrant.tertiary_rotations, ), 32.0, ), neutral_palette=TonalPalette.from_hue_and_chroma( source_color_hct.hue, 13.0 ), neutral_variant_palette=TonalPalette.from_hue_and_chroma( source_color_hct.hue, 15.0 ), ) ) ================================================ FILE: .config/ags/scripts/color_generation/specials/_material_badapple-l.scss ================================================ $darkmode: false; $primary: #000000; $onPrimary: #FFFFFF ; $primaryContainer: #d4d4d4; $onPrimaryContainer: #000000; $secondary: #000000; $onSecondary: #FFFFFF ; $secondaryContainer: #bebebe; $onSecondaryContainer: #000000; $tertiary: #000000; $onTertiary: #FFFFFF ; $tertiaryContainer: #FFFFFF ; $onTertiaryContainer: #000000; $error: #000000; $onError: #FFFFFF ; $errorContainer: #FFFFFF ; $onErrorContainer: #000000; $colorbarbg: #FFFFFF ; $background: #FFFFFF ; $onBackground: #000000; $surface: #f0f0f0; $onSurface: #000000; $surfaceVariant: #dddddd; $onSurfaceVariant: #000000; $outline: #525252; $shadow: #000000 ; $inverseSurface: #000000; $inverseOnSurface: #FFFFFF; $inversePrimary: #000000; ================================================ FILE: .config/ags/scripts/color_generation/specials/_material_badapple.scss ================================================ $darkmode: true; $primary: #e2e2e2; $onPrimary: #000000; $primaryContainer: #6b6b6b; $onPrimaryContainer: #e2e2e2; $secondary: #e2e2e2; $onSecondary: #000000; $secondaryContainer: #313131; $onSecondaryContainer: #e2e2e2; $tertiary: #e2e2e2; $onTertiary: #000000; $tertiaryContainer: #000000; $onTertiaryContainer: #e2e2e2; $error: #e2e2e2; $onError: #000000; $errorContainer: #000000; $onErrorContainer: #e2e2e2; $colorbarbg: #000000; $background: #000000; $onBackground: #e2e2e2; $surface: #161616; $onSurface: #e2e2e2; $surfaceVariant: #242424; $onSurfaceVariant: #e2e2e2; $outline: #a1a1a1; $shadow: #000000; $inverseSurface: #e2e2e2; $inverseOnSurface: #000000; $inversePrimary: #e2e2e2; ================================================ FILE: .config/ags/scripts/color_generation/switchcolor.sh ================================================ #!/usr/bin/env bash XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" STATE_DIR="$XDG_STATE_HOME/ags" COLORMODE_FILE_DIR="$STATE_DIR/user/colormode.txt" if [ "$1" == "--pick" ]; then color=$(hyprpicker --no-fancy) elif [[ "$1" = "#"* ]]; then # this is a color color=$1 else color=$(cut -f1 "$STATE_DIR/user/color.txt") fi sed -i "1s/.*/$color/" "$STATE_DIR/user/color.txt" # Use Gradience? colormodelines=$(wc -l "$COLORMODE_FILE_DIR" | awk '{print $1}' ) if [ "$2" == "--no-gradience" ]; then if [ "$colormodelines" == "3" ]; then echo 'nogradience' >> "$COLORMODE_FILE_DIR" else sed -i "4s/.*/nogradience/" "$COLORMODE_FILE_DIR" fi elif [ "$2" == "--yes-gradience" ]; then if [ "$colormodelines" == "3" ]; then echo 'yesgradience' >> "$COLORMODE_FILE_DIR" else sed -i "4s/.*/yesgradience/" "$COLORMODE_FILE_DIR" fi fi # Generate colors for ags n stuff "$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${color}" --apply ================================================ FILE: .config/ags/scripts/color_generation/switchwall.sh ================================================ #!/usr/bin/env bash XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" switch() { imgpath=$1 read scale screenx screeny screensizey < <(hyprctl monitors -j | jq '.[] | select(.focused) | .scale, .x, .y, .height' | xargs) cursorposx=$(hyprctl cursorpos -j | jq '.x' 2>/dev/null) || cursorposx=960 cursorposx=$(bc <<< "scale=0; ($cursorposx - $screenx) * $scale / 1") cursorposy=$(hyprctl cursorpos -j | jq '.y' 2>/dev/null) || cursorposy=540 cursorposy=$(bc <<< "scale=0; ($cursorposy - $screeny) * $scale / 1") cursorposy_inverted=$((screensizey - cursorposy)) if [ "$imgpath" == '' ]; then echo 'Aborted' exit 0 fi # ags run-js "wallpaper.set('')" # sleep 0.1 && ags run-js "wallpaper.set('${imgpath}')" & swww img "$imgpath" --transition-step 100 --transition-fps 120 \ --transition-type grow --transition-angle 30 --transition-duration 1 \ --transition-pos "$cursorposx, $cursorposy_inverted" } if [ "$1" == "--noswitch" ]; then imgpath=$(swww query | awk -F 'image: ' '{print $2}') # imgpath=$(ags run-js 'wallpaper.get(0)') elif [[ "$1" ]]; then switch "$1" else # Select and set image (hyprland) cd "$(xdg-user-dir PICTURES)" || return 1 switch "$(yad --width 1200 --height 800 --file --add-preview --large-preview --title='Choose wallpaper')" fi # Generate colors for ags n stuff # "$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${imgpath}" --apply --smart ================================================ FILE: .config/ags/scripts/fillThemes.js ================================================ #!/usr/bin/env node /** * compare_themes.js * * A Node.js script to compare theme JSON files against base themes and add missing keys, * as well as remove any properties that don't exist in the corresponding base theme. * It assigns values based on matching colors or randomly selects from border colors. * * Usage: * node compare_themes.js [--dry-run] [themes_directory] * * If no themes_directory is provided, it defaults to '~/.config/ags/themes'. */ const fs = require('fs'); const path = require('path'); const os = require('os'); /** * ANSI color codes for formatting console output. */ const COLORS = { RESET: '\x1b[0m', FG_RED: '\x1b[31m', FG_GREEN: '\x1b[32m', FG_YELLOW: '\x1b[33m', FG_BLUE: '\x1b[34m', FG_MAGENTA: '\x1b[35m', FG_CYAN: '\x1b[36m', FG_WHITE: '\x1b[37m', BG_RED: '\x1b[41m', BG_GREEN: '\x1b[42m', BG_YELLOW: '\x1b[43m', BG_BLUE: '\x1b[44m', BG_MAGENTA: '\x1b[45m', BG_CYAN: '\x1b[46m', BG_WHITE: '\x1b[47m', }; /** * Formats a message with the given color. * * @param {string} color - The ANSI color code. * @param {string} message - The message to format. * @returns {string} The formatted message. */ const formatMessage = (color, message) => `${color}${message}${COLORS.RESET}`; /** * Loads and parses a JSON file. * * @param {string} filePath - The path to the JSON file. * @returns {Object} The parsed JSON object. */ const loadJSON = (filePath) => { try { const data = fs.readFileSync(filePath, 'utf8'); return JSON.parse(data); } catch (error) { console.error(formatMessage(COLORS.FG_RED, `Error reading or parsing '${filePath}': ${error.message}`)); process.exit(1); } }; /** * Saves a JSON object to a file with indentation. * * @param {string} filePath - The path to the JSON file. * @param {Object} data - The JSON data to save. */ const saveJSON = (filePath, data) => { try { const jsonString = JSON.stringify(data, null, 2); fs.writeFileSync(filePath, jsonString, 'utf8'); } catch (error) { console.error(formatMessage(COLORS.FG_RED, `Error writing to '${filePath}': ${error.message}`)); process.exit(1); } }; /** * Finds the most common value in an array. * * @param {Array} arr - The array to analyze. * @returns {*} The most common value in the array. */ const getMostCommonValue = (arr) => { const frequency = {}; let maxFreq = 0; let mostCommon = arr[0] || null; arr.forEach((value) => { frequency[value] = (frequency[value] || 0) + 1; if (frequency[value] > maxFreq) { maxFreq = frequency[value]; mostCommon = value; } }); return mostCommon; }; /** * Compares two JSON objects and finds missing keys in the target. * * @param {Object} baseJSON - The base JSON object. * @param {Object} targetJSON - The target JSON object to compare. * @returns {Array} An array of missing keys. */ const findMissingKeys = (baseJSON, targetJSON) => { const baseKeys = new Set(Object.keys(baseJSON)); const targetKeys = new Set(Object.keys(targetJSON)); const missingKeys = [...baseKeys].filter((key) => !targetKeys.has(key)); return missingKeys; }; /** * Determines if a key should be excluded based on predefined patterns. * * @param {string} key - The key to check. * @returns {boolean} True if the key is excluded, otherwise false. */ const isExcludedKey = (key) => { const excludedPatterns = []; return excludedPatterns.some((pattern) => pattern.test(key)); }; /** * Builds a mapping from values to their corresponding keys in the base theme. * * @param {Object} baseJSON - The base JSON object. * @returns {Object} A map where keys are values and values are arrays of keys. */ const buildValueToKeysMap = (baseJSON) => { const valueToKeysMap = {}; Object.entries(baseJSON).forEach(([key, value]) => { if (!valueToKeysMap[value]) { valueToKeysMap[value] = []; } valueToKeysMap[value].push(key); }); return valueToKeysMap; }; /** * Collects all border colors from the base theme. * * @param {Object} baseJSON - The base JSON object. * @returns {Array} An array of border color values. */ const collectBorderColors = (baseJSON) => { const borderColors = new Set(); Object.entries(baseJSON).forEach(([key, value]) => { if (/^theme\.bar\.buttons\..*\.border$/.test(key)) { borderColors.add(value); } }); return Array.from(borderColors); }; /** * Determines the best match value for a missing key based on related keys. * * @param {string} baseValue - The value of the missing key in the base theme. * @param {Object} valueToKeysMap - A map from values to keys in the base theme. * @param {Object} targetJSON - The target JSON object. * @returns {*} The best matching value or null if a random selection is needed. */ const determineBestMatchValue = (baseValue, valueToKeysMap, targetJSON) => { const relatedBaseKeys = valueToKeysMap[baseValue] || []; const correspondingTargetValues = relatedBaseKeys .map((baseKey) => targetJSON[baseKey]) .filter((value) => value !== undefined); if (correspondingTargetValues.length > 0) { return getMostCommonValue(correspondingTargetValues); } return null; }; /** * Finds extra keys in the target JSON that are not present in the base theme. * * @param {Object} baseTheme - The base JSON object. * @param {Object} targetJSON - The target JSON object. * @returns {Array} An array of extra keys. */ const findExtraKeys = (baseTheme, targetJSON) => { const validKeys = new Set(Object.keys(baseTheme)); const targetKeys = Object.keys(targetJSON); const extraKeys = targetKeys.filter((key) => !validKeys.has(key) && !isExcludedKey(key)); return extraKeys; }; /** * Creates a backup of a theme file. * * @param {string} themePath - The path to the theme file. */ const backupTheme = (themePath) => { const backupDir = path.join(path.dirname(themePath), 'backup'); if (!fs.existsSync(backupDir)) { fs.mkdirSync(backupDir); } const backupPath = path.join(backupDir, path.basename(themePath)); fs.copyFileSync(themePath, backupPath); console.log(formatMessage(COLORS.FG_CYAN, `Backup created at '${backupPath}'.`)); }; /** * Processes a single theme by adding missing keys and removing extra keys. * * @param {string} themePath - The path to the theme file. * @param {Object} baseTheme - The base JSON object. * @param {boolean} dryRun - If true, no changes will be written to files. */ const processTheme = (themePath, baseTheme, dryRun) => { const themeJSON = loadJSON(themePath); const missingKeys = findMissingKeys(baseTheme, themeJSON); let hasChanges = false; if (missingKeys.length === 0) { console.log(formatMessage(COLORS.FG_GREEN, `✅ No missing keys in '${path.basename(themePath)}'.`)); } else { console.log( formatMessage( COLORS.FG_YELLOW, `\n🔍 Processing '${path.basename(themePath)}': Found ${missingKeys.length} missing key(s).`, ), ); const valueToKeysMap = buildValueToKeysMap(baseTheme); const borderColors = collectBorderColors(baseTheme); missingKeys.forEach((key) => { if (isExcludedKey(key)) { console.log(formatMessage(COLORS.FG_MAGENTA, `❗ Excluded key from addition: "${key}"`)); return; } const baseValue = baseTheme[key]; const bestValue = determineBestMatchValue(baseValue, valueToKeysMap, themeJSON); if (bestValue !== null) { themeJSON[key] = bestValue; console.log(formatMessage(COLORS.FG_GREEN, `➕ Added key: "${key}": "${bestValue}"`)); } else { if (borderColors.length === 0) { console.error(formatMessage(COLORS.FG_RED, '❌ Error: No border colors available to assign.')); return; } const randomColor = borderColors[Math.floor(Math.random() * borderColors.length)]; themeJSON[key] = randomColor; console.log( formatMessage( COLORS.FG_YELLOW, `➕ Added key with random border color: "${key}": "${randomColor}"`, ), ); } hasChanges = true; }); } const extraKeys = findExtraKeys(baseTheme, themeJSON); if (extraKeys.length === 0) { console.log(formatMessage(COLORS.FG_GREEN, `✅ No extra keys to remove in '${path.basename(themePath)}'.`)); } else { console.log( formatMessage( COLORS.FG_YELLOW, `\n🗑️ Processing '${path.basename(themePath)}': Found ${extraKeys.length} extra key(s) to remove.`, ), ); extraKeys.forEach((key) => { delete themeJSON[key]; console.log(formatMessage(COLORS.FG_RED, `➖ Removed key: "${key}"`)); hasChanges = true; }); } if (hasChanges) { if (dryRun) { console.log( formatMessage( COLORS.FG_CYAN, `(Dry-Run) 📝 Would update '${path.basename(themePath)}' with missing and extra keys.`, ), ); } else { backupTheme(themePath); saveJSON(themePath, themeJSON); console.log( formatMessage(COLORS.FG_GREEN, `✅ Updated '${path.basename(themePath)}' with missing and extra keys.`), ); } } else { console.log(formatMessage(COLORS.FG_BLUE, `ℹ️ No changes made to '${path.basename(themePath)}'.`)); } }; /** * The main function that orchestrates the theme comparison and updating. */ const main = () => { const args = process.argv.slice(2); const dryRunIndex = args.indexOf('--dry-run'); const dryRun = dryRunIndex !== -1; if (dryRun) { args.splice(dryRunIndex, 1); console.log(formatMessage(COLORS.FG_CYAN, '🔍 Running in Dry-Run mode. No files will be modified.')); } const themesDir = args[0] || path.join(os.homedir(), '.config', 'ags', 'themes'); if (!fs.existsSync(themesDir)) { console.error(formatMessage(COLORS.FG_RED, `❌ Error: Themes directory '${themesDir}' does not exist.`)); process.exit(1); } const baseThemeFile = 'catppuccin_mocha.json'; const baseThemeSplitFile = 'catppuccin_mocha_split.json'; const baseThemePath = path.join(themesDir, baseThemeFile); const baseThemeSplitPath = path.join(themesDir, baseThemeSplitFile); if (!fs.existsSync(baseThemePath)) { console.error( formatMessage(COLORS.FG_RED, `❌ Error: Base theme '${baseThemeFile}' does not exist in '${themesDir}'.`), ); process.exit(1); } if (!fs.existsSync(baseThemeSplitPath)) { console.error( formatMessage( COLORS.FG_RED, `❌ Error: Base split theme '${baseThemeSplitFile}' does not exist in '${themesDir}'.`, ), ); process.exit(1); } const baseTheme = loadJSON(baseThemePath); const baseThemeSplit = loadJSON(baseThemeSplitPath); const themeFiles = fs.readdirSync(themesDir).filter((file) => file.endsWith('.json')); themeFiles.forEach((file) => { if (file === baseThemeFile || file === baseThemeSplitFile) { return; } const themePath = path.join(themesDir, file); let correspondingBaseTheme; if (file.endsWith('_split.json')) { correspondingBaseTheme = baseThemeSplit; } else { correspondingBaseTheme = baseTheme; } try { processTheme(themePath, correspondingBaseTheme, dryRun); } catch (error) { console.error(formatMessage(COLORS.FG_RED, `❌ Error processing '${file}': ${error.message}`)); } }); console.log(formatMessage(COLORS.FG_GREEN, '\n🎉 All themes have been processed.')); }; main(); ================================================ FILE: .config/ags/scripts/fillThemes.sh ================================================ #!/bin/bash # Generated by our good friend Chat Jippity # Might be inefficient but it works # Define directories and theme files THEMES_DIR="$(dirname "$(realpath "$0")")/../themes" COMPLETE_THEME_FILE="catppuccin_mocha.json" COMPLETE_SPLIT_THEME_FILE="catppuccin_mocha_split.json" # Check if jq is installed if ! command -v jq &>/dev/null; then echo "jq is required but not installed. Please install jq and try again." exit 1 fi # Function to fill missing values fill_missing_values() { local complete_theme_file="$1" local target_theme_file="$2" # Load complete theme and target theme into variables complete_theme=$(jq '.' "$complete_theme_file") target_theme=$(jq '.' "$target_theme_file") # Create associative arrays to map colors to properties for fast lookup declare -A color_to_props declare -A prop_to_color # Populate color_to_props and prop_to_color arrays from complete theme while IFS= read -r line; do key=$(echo "$line" | awk '{print $1}') value=$(echo "$line" | awk '{print $2}') color_to_props["$value"]+="$key " prop_to_color["$key"]="$value" done < <(echo "$complete_theme" | jq -r 'to_entries[] | "\(.key) \(.value)"') # Generate filled theme by iterating over complete theme keys filled_theme="$target_theme" for key in "${!prop_to_color[@]}"; do if ! echo "$target_theme" | jq -e ".\"$key\"" &>/dev/null; then # Find corresponding color if missing in target theme value="${prop_to_color[$key]}" corresponding_color="" # Check if other properties with the same color exist in the target theme for prop in ${color_to_props["$value"]}; do if echo "$target_theme" | jq -e ".\"$prop\"" &>/dev/null; then corresponding_color=$(echo "$target_theme" | jq -r ".\"$prop\"") break fi done # Add missing property with the corresponding color if [ -n "$corresponding_color" ]; then filled_theme=$(echo "$filled_theme" | jq --arg key "$key" --arg value "$corresponding_color" '.[$key] = $value') echo "Added missing property: $key with value: $corresponding_color to $target_theme_file" else # Default action if no corresponding color is found echo "No corresponding color found for $key; using value from complete theme." filled_theme=$(echo "$filled_theme" | jq --arg key "$key" --arg value "$value" '.[$key] = $value') fi fi done # Write the filled theme back to the target file echo "$filled_theme" >"$target_theme_file" echo "Filled missing values in $target_theme_file" } # Process all theme files in the directory for file in "$THEMES_DIR"/*.json; do filename=$(basename "$file") # Skip the complete theme files if [[ "$filename" == "$COMPLETE_THEME_FILE" ]] || [[ "$filename" == "$COMPLETE_SPLIT_THEME_FILE" ]]; then continue fi # Determine whether to use split or non-split complete theme if [[ "$filename" == *"_split"* ]]; then fill_missing_values "$THEMES_DIR/$COMPLETE_SPLIT_THEME_FILE" "$file" else fill_missing_values "$THEMES_DIR/$COMPLETE_THEME_FILE" "$file" fi done ================================================ FILE: .config/ags/scripts/grimblast.sh ================================================ #!/usr/bin/env bash ## Grimblast: a helper for screenshots within hyprland ## Requirements: ## - `grim`: screenshot utility for wayland ## - `slurp`: to select an area ## - `hyprctl`: to read properties of current window (provided by Hyprland) ## - `hyprpicker`: to freeze the screen when selecting area ## - `wl-copy`: clipboard utility (provided by wl-clipboard) ## - `jq`: json utility to parse hyprctl output ## - `notify-send`: to show notifications (provided by libnotify) ## Those are needed to be installed, if unsure, run `grimblast check` ## ## See `man 1 grimblast` or `grimblast usage` for further details. ## Author: Misterio (https://github.com/misterio77) ## This tool is based on grimshot, with swaymsg commands replaced by their ## hyprctl equivalents. ## https://github.com/swaywm/sway/blob/master/contrib/grimshot getTargetDirectory() { test -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" echo "${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}" } tmp_editor_directory() { echo "/tmp" } #Detect if $GRIMBLAST_EDITOR env exist env_editor_confirm() { if [ -n "$GRIMBLAST_EDITOR" ]; then echo "GRIMBLAST_EDITOR is set. Continuing..." else echo "GRIMBLAST_EDITOR is not set. Defaulting to gimp" GRIMBLAST_EDITOR=gimp fi } NOTIFY=no CURSOR= FREEZE= WAIT=no SCALE= HYPRPICKER_PID=-1 while [ $# -gt 0 ]; do key="$1" case $key in -n | --notify) NOTIFY=yes shift # past argument ;; -c | --cursor) CURSOR=yes shift # past argument ;; -f | --freeze) FREEZE=yes shift # past argument ;; -w | --wait) shift WAIT=$1 if echo "$WAIT" | grep "[^0-9]" -q; then echo "Invalid value for wait '$WAIT'" >&2 exit 3 fi shift ;; -s | --scale) shift # past argument if [ $# -gt 0 ]; then SCALE="$1" # assign the next argument to SCALE shift # past argument else echo "Error: Missing argument for --scale option." exit 1 fi ;; *) # unknown option break # done with parsing --flags ;; esac done ACTION=${1:-usage} SUBJECT=${2:-screen} FILE=${3:-$(getTargetDirectory)/$(date -Ins).png} FILE_EDITOR=${3:-$(tmp_editor_directory)/$(date -Ins).png} if [ "$ACTION" != "save" ] && [ "$ACTION" != "copy" ] && [ "$ACTION" != "edit" ] && [ "$ACTION" != "copysave" ] && [ "$ACTION" != "check" ]; then echo "Usage:" echo " grimblast [--notify] [--cursor] [--freeze] [--wait N] [--scale ] (copy|save|copysave|edit) [active|screen|output|area] [FILE|-]" echo " grimblast check" echo " grimblast usage" echo "" echo "Commands:" echo " copy: Copy the screenshot data into the clipboard." echo " save: Save the screenshot to a regular file or '-' to pipe to STDOUT." echo " copysave: Combine the previous 2 options." echo " edit: Open screenshot in the image editor of your choice (default is gimp). See man page for info." echo " check: Verify if required tools are installed and exit." echo " usage: Show this message and exit." echo "" echo "Targets:" echo " active: Currently active window." echo " screen: All visible outputs." echo " output: Currently active output." echo " area: Manually select a region or window." exit fi notify() { notify-send -t 3000 -a grimblast "$@" } notifyOk() { [ "$NOTIFY" = "no" ] && return notify "$@" } notifyError() { if [ $NOTIFY = "yes" ]; then TITLE=${2:-"Screenshot"} MESSAGE=${1:-"Error taking screenshot with grim"} notify -u critical "$TITLE" "$MESSAGE" else echo "$1" fi } resetFade() { if [[ -n $FADE && -n $FADEOUT ]]; then hyprctl keyword animation "$FADE" >/dev/null hyprctl keyword animation "$FADEOUT" >/dev/null fi } killHyprpicker() { if [ ! $HYPRPICKER_PID -eq -1 ]; then kill $HYPRPICKER_PID fi } die() { killHyprpicker MSG=${1:-Bye} notifyError "Error: $MSG" exit 2 } check() { COMMAND=$1 if command -v "$COMMAND" >/dev/null 2>&1; then RESULT="OK" else RESULT="NOT FOUND" fi echo " $COMMAND: $RESULT" } takeScreenshot() { FILE=$1 GEOM=$2 OUTPUT=$3 if [ -n "$OUTPUT" ]; then grim ${CURSOR:+-c} ${SCALE:+-s "$SCALE"} -o "$OUTPUT" "$FILE" || die "Unable to invoke grim" elif [ -z "$GEOM" ]; then grim ${CURSOR:+-c} ${SCALE:+-s "$SCALE"} "$FILE" || die "Unable to invoke grim" else grim ${CURSOR:+-c} ${SCALE:+-s "$SCALE"} -g "$GEOM" "$FILE" || die "Unable to invoke grim" resetFade fi } wait() { if [ "$WAIT" != "no" ]; then sleep "$WAIT" fi } if [ "$ACTION" = "check" ]; then echo "Checking if required tools are installed. If something is missing, install it to your system and make it available in PATH..." check grim check slurp check hyprctl check hyprpicker check wl-copy check jq check notify-send exit elif [ "$SUBJECT" = "active" ]; then wait FOCUSED=$(hyprctl activewindow -j) GEOM=$(echo "$FOCUSED" | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"') APP_ID=$(echo "$FOCUSED" | jq -r '.class') WHAT="$APP_ID window" elif [ "$SUBJECT" = "screen" ]; then wait GEOM="" WHAT="Screen" elif [ "$SUBJECT" = "output" ]; then wait GEOM="" OUTPUT=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true)' | jq -r '.name') WHAT="$OUTPUT" elif [ "$SUBJECT" = "area" ]; then if [ "$FREEZE" = "yes" ] && [ "$(command -v "hyprpicker")" ] >/dev/null 2>&1; then hyprpicker -r -z & sleep 0.2 HYPRPICKER_PID=$! fi # get fade & fadeOut animation and unset it # this removes the black border seen around screenshots FADE="$(hyprctl -j animations | jq -jr '.[0][] | select(.name == "fade") | .name, ",", (if .enabled == true then "1" else "0" end), ",", (.speed|floor), ",", .bezier')" FADEOUT="$(hyprctl -j animations | jq -jr '.[0][] | select(.name == "fadeOut") | .name, ",", (if .enabled == true then "1" else "0" end), ",", (.speed|floor), ",", .bezier')" hyprctl keyword animation 'fade,0,1,default' >/dev/null hyprctl keyword animation 'fadeOut,0,1,default' >/dev/null WORKSPACES="$(hyprctl monitors -j | jq -r 'map(.activeWorkspace.id)')" WINDOWS="$(hyprctl clients -j | jq -r --argjson workspaces "$WORKSPACES" 'map(select([.workspace.id] | inside($workspaces)))')" # shellcheck disable=2086 # if we don't split, spaces mess up slurp GEOM=$(echo "$WINDOWS" | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | slurp $SLURP_ARGS) # Check if user exited slurp without selecting the area if [ -z "$GEOM" ]; then killHyprpicker resetFade exit 1 fi WHAT="Area" wait elif [ "$SUBJECT" = "window" ]; then die "Subject 'window' is now included in 'area'" else die "Unknown subject to take a screen shot from" "$SUBJECT" fi if [ "$ACTION" = "copy" ]; then takeScreenshot - "$GEOM" "$OUTPUT" | wl-copy --type image/png || die "Clipboard error" notifyOk "$WHAT copied to buffer" elif [ "$ACTION" = "save" ]; then if takeScreenshot "$FILE" "$GEOM" "$OUTPUT"; then TITLE="Screenshot of $SUBJECT" MESSAGE=$(basename "$FILE") notifyOk "$TITLE" "$MESSAGE" -i "$FILE" echo "$FILE" else notifyError "Error taking screenshot with grim" fi elif [ "$ACTION" = "edit" ]; then env_editor_confirm if takeScreenshot "$FILE_EDITOR" "$GEOM" "$OUTPUT"; then TITLE="Screenshot of $SUBJECT" MESSAGE="Open screenshot in image editor" notifyOk "$TITLE" "$MESSAGE" -i "$FILE_EDITOR" $GRIMBLAST_EDITOR "$FILE_EDITOR" echo "$FILE_EDITOR" else notifyError "Error taking screenshot" fi else if [ "$ACTION" = "copysave" ]; then takeScreenshot - "$GEOM" "$OUTPUT" | tee "$FILE" | wl-copy --type image/png || die "Clipboard error" notifyOk "$WHAT copied to buffer and saved to $FILE" -i "$FILE" echo "$FILE" else notifyError "Error taking screenshot with grim" fi fi killHyprpicker ================================================ FILE: .config/ags/scripts/hyprland/get_keybinds.py ================================================ #!/usr/bin/env python3 import argparse import re import os from os.path import expandvars as os_expandvars from typing import Dict, List TITLE_REGEX = "#+!" HIDE_COMMENT = "[hidden]" MOD_SEPARATORS = ['+', ' '] COMMENT_BIND_PATTERN = "#/#" parser = argparse.ArgumentParser(description='Hyprland keybind reader') parser.add_argument('--path', type=str, default="$HOME/.config/hypr/hyprland.conf", help='path to keybind file (sourcing isn\'t supported)') args = parser.parse_args() content_lines = [] reading_line = 0 # Little Parser made for hyprland keybindings conf file Variables: Dict[str, str] = {} class KeyBinding(dict): def __init__(self, mods, key, dispatcher, params, comment) -> None: self["mods"] = mods self["key"] = key self["dispatcher"] = dispatcher self["params"] = params self["comment"] = comment class Section(dict): def __init__(self, children, keybinds, name) -> None: self["children"] = children self["keybinds"] = keybinds self["name"] = name def read_content(path: str) -> str: if (not os.access(os.path.expanduser(os.path.expandvars(path)), os.R_OK)): return ("error") with open(os.path.expanduser(os.path.expandvars(path)), "r") as file: return file.read() def autogenerate_comment(dispatcher: str, params: str = "") -> str: match dispatcher: case "resizewindow": return "Resize window" case "movewindow": if(params == ""): return "Move window" else: return "Window: move in {} direction".format({ "l": "left", "r": "right", "u": "up", "d": "down", }.get(params, "null")) case "pin": return "Window: pin (show on all workspaces)" case "splitratio": return "Window split ratio {}".format(params) case "togglefloating": return "Float/unfloat window" case "resizeactive": return "Resize window by {}".format(params) case "killactive": return "Close window" case "fullscreen": return "Toggle {}".format( { "0": "fullscreen", "1": "maximization", "2": "fullscreen on Hyprland's side", }.get(params, "null") ) case "fakefullscreen": return "Toggle fake fullscreen" case "workspace": if params == "+1": return "Workspace: focus right" elif params == "-1": return "Workspace: focus left" return "Focus workspace {}".format(params) case "movefocus": return "Window: move focus {}".format( { "l": "left", "r": "right", "u": "up", "d": "down", }.get(params, "null") ) case "swapwindow": return "Window: swap in {} direction".format( { "l": "left", "r": "right", "u": "up", "d": "down", }.get(params, "null") ) case "movetoworkspace": if params == "+1": return "Window: move to right workspace (non-silent)" elif params == "-1": return "Window: move to left workspace (non-silent)" return "Window: move to workspace {} (non-silent)".format(params) case "movetoworkspacesilent": if params == "+1": return "Window: move to right workspace" elif params == "-1": return "Window: move to right workspace" return "Window: move to workspace {}".format(params) case "togglespecialworkspace": return "Workspace: toggle special" case "exec": return "Execute: {}".format(params) case _: return "" def get_keybind_at_line(line_number, line_start = 0): global content_lines line = content_lines[line_number] _, keys = line.split("=", 1) keys, *comment = keys.split("#", 1) mods, key, dispatcher, *params = list(map(str.strip, keys.split(",", 4))) params = "".join(map(str.strip, params)) # Remove empty spaces comment = list(map(str.strip, comment)) # Add comment if it exists, else generate it if comment: comment = comment[0] if comment.startswith("[hidden]"): return None else: comment = autogenerate_comment(dispatcher, params) if mods: modstring = mods + MOD_SEPARATORS[0] # Add separator at end to ensure last mod is read mods = [] p = 0 for index, char in enumerate(modstring): if(char in MOD_SEPARATORS): if(index - p > 1): mods.append(modstring[p:index]) p = index+1 else: mods = [] return KeyBinding(mods, key, dispatcher, params, comment) def get_binds_recursive(current_content, scope): global content_lines global reading_line # print("get_binds_recursive({0}, {1}) [@L{2}]".format(current_content, scope, reading_line + 1)) while reading_line < len(content_lines): # TODO: Adjust condition line = content_lines[reading_line] heading_search_result = re.search(TITLE_REGEX, line) # print("Read line {0}: {1}\tisHeading: {2}".format(reading_line + 1, content_lines[reading_line], "[{0}, {1}, {2}]".format(heading_search_result.start(), heading_search_result.start() == 0, ((heading_search_result != None) and (heading_search_result.start() == 0))) if heading_search_result != None else "No")) if ((heading_search_result != None) and (heading_search_result.start() == 0)): # Found title # Determine scope heading_scope = line.find('!') # Lower? Return if(heading_scope <= scope): reading_line -= 1 return current_content section_name = line[(heading_scope+1):].strip() # print("[[ Found h{0} at line {1} ]] {2}".format(heading_scope, reading_line+1, content_lines[reading_line])) reading_line += 1 current_content["children"].append(get_binds_recursive(Section([], [], section_name), heading_scope)) elif line.startswith(COMMENT_BIND_PATTERN): keybind = get_keybind_at_line(reading_line, line_start=len(COMMENT_BIND_PATTERN)) if(keybind != None): current_content["keybinds"].append(keybind) elif line == "" or not line.lstrip().startswith("bind"): # Comment, ignore pass else: # Normal keybind keybind = get_keybind_at_line(reading_line) if(keybind != None): current_content["keybinds"].append(keybind) reading_line += 1 return current_content; def parse_keys(path: str) -> Dict[str, List[KeyBinding]]: global content_lines content_lines = read_content(path).splitlines() if content_lines[0] == "error": return "error" return get_binds_recursive(Section([], [], ""), 0) if __name__ == "__main__": import json ParsedKeys = parse_keys(args.path) print(json.dumps(ParsedKeys)) ================================================ FILE: .config/ags/scripts/hyprland/workspace_action.sh ================================================ #!/usr/bin/env bash hyprctl dispatch "$1" $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + $2)) ================================================ FILE: .config/ags/scripts/quickscripts/nixos-trim-generations.sh ================================================ #!/usr/bin/env bash set -euo pipefail ## Defaults keepGensDef=30; keepDaysDef=30 keepGens=$keepGensDef; keepDays=$keepDaysDef ## Usage usage () { printf "Usage:\n\t ./trim-generations.sh \n\n (defaults are: Keep-Gens=$keepGensDef Keep-Days=$keepDaysDef Profile=user)\n\n" printf "If you enter any parameters, you must enter all three, or none to use defaults.\n" printf "Example:\n\t trim-generations.sh 15 10 home-manager\n" printf " this will work on the home-manager profile and keep all generations from the\n" printf "last 10 days, and keep at least 15 generations no matter how old.\n" printf "\nProfiles available are:\tuser, home-manager, channels, system (root)\n" printf "\n-h or --help prints this help text." } if [ $# -eq 1 ]; then # if help requested if [ $1 = "-h" ]; then usage exit 1; fi if [ $1 = "--help" ]; then usage exit 2; fi printf "Dont recognise your option exiting..\n\n" usage exit 3; elif [ $# -eq 0 ]; then # print the defaults printf "The current defaults are:\n Keep-Gens=$keepGensDef Keep-Days=$keepDaysDef \n\n" read -p "Keep these defaults? (y/n):" answer case "$answer" in [yY1] ) printf "Using defaults..\n" ;; [nN0] ) printf "ok, doing nothing, exiting..\n" exit 6; ;; * ) printf "%b" "Doing nothing, exiting.." exit 7; ;; esac fi ## Handle parameters (and change if root) if [[ $EUID -ne 0 ]]; then # if not root profile=$(readlink /home/$USER/.nix-profile) else if [ -d /nix/var/nix/profiles/system ]; then # maybe this or the other profile="/nix/var/nix/profiles/system" elif [ -d /nix/var/nix/profiles/default ]; then profile="/nix/var/nix/profiles/default" else echo "Cant find profile for root. Exiting" exit 8 fi fi if (( $# < 1 )); then printf "Keeping default: $keepGensDef generations OR $keepDaysDef days, whichever is more\n" elif [[ $# -le 2 ]]; then printf "\nError: Not enough arguments.\n\n" >&2 usage exit 1 elif (( $# > 4)); then printf "\nError: Too many arguments.\n\n" >&2 usage exit 2 else if [ $1 -lt 1 ]; then printf "using Gen numbers less than 1 not recommended. Setting to min=1\n" read -p "is that ok? (y/n): " asnwer #printf "$asnwer" case "$asnwer" in [yY1] ) printf "ok, continuing..\n" ;; [nN0] ) printf "ok, doing nothing, exiting..\n" exit 6; ;; * ) printf "%b" "Doing nothing, exiting.." exit 7; ;; esac fi if [ $2 -lt 0 ]; then printf "using negative days number not recommended. Setting to min=0\n" read -p "is that ok? (y/n): " asnwer case "$asnwer" in [yY1] ) printf "ok, continuing..\n" ;; [nN0] ) printf "ok, doing nothing, exiting..\n" exit 6; ;; * ) printf "%b" "Doing nothing, exiting.." exit 7; ;; esac fi keepGens=$1; keepDays=$2; (( keepGens < 1 )) && keepGens=1 (( keepDays < 0 )) && keepDays=0 if [[ $EUID -ne 0 ]]; then if [[ $3 == "user" ]] || [[ $3 == "default" ]]; then profile=$(readlink /home/$USER/.nix-profile) elif [[ $3 == "home-manager" ]]; then # home-manager defaults to $XDG_STATE_HOME; otherwise, use # `home-manager generations` and `nix-store --query --roots # /nix/store/...` to figure out what reference is keeping the old # generations alive. profile="${XDG_STATE_HOME:-$HOME/.local/state}/nix/profiles/home-manager" elif [[ $3 == "channels" ]]; then profile="/nix/var/nix/profiles/per-user/$USER/channels" else printf "\nError: Do not understand your third argument. Should be one of: (user / home-manager/ channels)\n\n" usage exit 3 fi else if [[ $3 == "system" ]]; then profile="/nix/var/nix/profiles/system" elif [[ $3 == "user" ]] || [[ $3 == "default" ]]; then profile="/nix/var/nix/profiles/default" else printf "\nError: Do not understand your third argument. Should be one of: (user / system)\n\n" usage exit 3 fi fi printf "OK! \t Keep Gens = $keepGens \t Keep Days = $keepDays\n\n" fi printf "Operating on profile: \t $profile\n\n" ## Runs at the end, to decide whether to delete profiles that match chosen parameters. choose () { local default="$1" local prompt="$2" local answer read -p "$prompt" answer [ -z "$answer" ] && answer="$default" case "$answer" in [yY1] ) #printf "answered yes!\n" nix-env --delete-generations -p $profile ${!gens[@]} exit 0 ;; [nN0] ) printf "Ok doing nothing exiting..\n" exit 6; ;; * ) printf "%b" "Unexpected answer '$answer'!" >&2 exit 7; ;; esac } # end of function choose # printf "profile = $profile\n\n" ## Query nix-env for generations list IFS=$'\n' nixGens=( $(nix-env --list-generations -p $profile | sed 's:^\s*::; s:\s*$::' | tr '\t' ' ' | tr -s ' ') ) timeNow=$(date +%s) ## Get info on oldest generation IFS=' ' read -r -a oldestGenArr <<< "${nixGens[0]}" oldestGen=${oldestGenArr[0]} oldestDate=${oldestGenArr[1]} printf "%-30s %s\n" "oldest generation:" $oldestGen #oldestDate=${nixGens[0]:3:19} printf "%-30s %s\n" "oldest generation created:" $oldestDate oldestTime=$(date -d "$oldestDate" +%s) oldestElapsedSecs=$((timeNow-oldestTime)) oldestElapsedMins=$((oldestElapsedSecs/60)) oldestElapsedHours=$((oldestElapsedMins/60)) oldestElapsedDays=$((oldestElapsedHours/24)) printf "%-30s %s\n" "minutes before now:" $oldestElapsedMins printf "%-30s %s\n" "hours before now:" $oldestElapsedHours printf "%-30s %s\n\n" "days before now:" $oldestElapsedDays ## Get info on current generation for i in "${nixGens[@]}"; do IFS=' ' read -r -a iGenArr <<< "$i" genNumber=${iGenArr[0]} genDate=${iGenArr[1]} if [[ "$i" =~ current ]]; then currentGen=$genNumber printf "%-30s %s\n" "current generation:" $currentGen currentDate=$genDate printf "%-30s %s\n" "current generation created:" $currentDate currentTime=$(date -d "$currentDate" +%s) currentElapsedSecs=$((timeNow-currentTime)) currentElapsedMins=$((currentElapsedSecs/60)) currentElapsedHours=$((currentElapsedMins/60)) currentElapsedDays=$((currentElapsedHours/24)) printf "%-30s %s\n" "minutes before now:" $currentElapsedMins printf "%-30s %s\n" "hours before now:" $currentElapsedHours printf "%-30s %s\n\n" "days before now:" $currentElapsedDays fi done ## Compare oldest and current generations timeBetweenOldestAndCurrent=$((currentTime-oldestTime)) elapsedDays=$((timeBetweenOldestAndCurrent/60/60/24)) generationsDiff=$((currentGen-oldestGen)) ## Figure out what we should do, based on generations and options if [[ elapsedDays -le keepDays ]]; then printf "All generations are no more than $keepDays days older than current generation. \nOldest gen days difference from current gen: $elapsedDays \n\n\tNothing to do!\n" exit 4; elif [[ generationsDiff -lt keepGens ]]; then printf "Oldest generation ($oldestGen) is only $generationsDiff generations behind current ($currentGen). \n\n\t Nothing to do!\n" exit 5; else printf "\tSomething to do...\n" declare -a gens for i in "${nixGens[@]}"; do IFS=' ' read -r -a iGenArr <<< "$i" genNumber=${iGenArr[0]} genDiff=$((currentGen-genNumber)) genDate=${iGenArr[1]} genTime=$(date -d "$genDate" +%s) elapsedSecs=$((timeNow-genTime)) genDaysOld=$((elapsedSecs/60/60/24)) if [[ genDaysOld -gt keepDays ]] && [[ genDiff -ge keepGens ]]; then gens["$genNumber"]="$genDate, $genDaysOld day(s) old" fi done printf "\nFound the following generation(s) to delete:\n" for K in "${!gens[@]}"; do printf "generation $K \t ${gens[$K]}\n" done printf "\n" choose "y" "Do you want to delete these? [Y/n]: " fi ================================================ FILE: .config/ags/scripts/record-script.sh ================================================ #!/usr/bin/env bash getdate() { date '+%Y-%m-%d_%H.%M.%S' } getaudiooutput() { pactl list sources | grep 'Name' | grep 'monitor' | cut -d ' ' -f2 } getactivemonitor() { hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name' } mkdir -p "$(xdg-user-dir VIDEOS)" cd "$(xdg-user-dir VIDEOS)" || exit if pgrep wf-recorder > /dev/null; then notify-send "Recording Stopped" "Stopped" -a 'record-script.sh' & pkill wf-recorder & else notify-send "Starting recording" 'recording_'"$(getdate)"'.mp4' -a 'record-script.sh' if [[ "$1" == "--sound" ]]; then wf-recorder --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t --geometry "$(slurp)" --audio="$(getaudiooutput)" & disown elif [[ "$1" == "--fullscreen-sound" ]]; then wf-recorder -o $(getactivemonitor) --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t --audio="$(getaudiooutput)" & disown elif [[ "$1" == "--fullscreen" ]]; then wf-recorder -o $(getactivemonitor) --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t & disown else wf-recorder --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t --geometry "$(slurp)" & disown fi fi ================================================ FILE: .config/ags/scripts/sway/swayToRelativeWs.sh ================================================ #!/usr/bin/env bash # Check if sway is running if ! pgrep -x sway > /dev/null; then echo "Sway is not running" exit 1 fi # Get the current workspace number current=$(swaymsg -t get_workspaces | jq '.[] | select(.focused==true) | .num') # Check if a number was passed as an argument if [[ "$1" =~ ^[+-]?[0-9]+$ ]]; then new_workspace=$((current + $1)) else new_workspace=$((current + 1)) fi # Check if the new workspace number is out of bounds if [[ $new_workspace -lt 1 ]]; then exit 0 fi # Switch to the new workspace if [[ $2 == 'move' ]]; then swaymsg move container to workspace $new_workspace else swaymsg workspace $new_workspace fi ================================================ FILE: .config/ags/scripts/templates/fuzzel/fuzzel.ini ================================================ font=Gabarito terminal=foot -e prompt=">> " layer=overlay [colors] background={{ $background }}ff text={{ $onBackground }}ff selection={{ $surfaceVariant }}ff selection-text={{ $onSurfaceVariant }}ff border={{ $surfaceVariant }}dd match={{ $primary }}ff selection-match={{ $primary }}ff [border] radius=17 width=1 [dmenu] exit-immediately-if-empty=yes ================================================ FILE: .config/ags/scripts/templates/gradience/preset.json ================================================ { "name": "Material3_Generated", "variables": { "theme_fg_color": "#AEE5FA", "theme_text_color": "#AEE5FA", "theme_bg_color": "#1a1b26", "theme_base_color": "#1a1b26", "theme_selected_bg_color": "#AEE5FA", "theme_selected_fg_color": "rgba(0, 0, 0, 0.87)", "insensitive_bg_color": "#1a1b26", "insensitive_fg_color": "rgba(192, 202, 245, 0.5)", "insensitive_base_color": "#24283b", "theme_unfocused_fg_color": "#AEE5FA", "theme_unfocused_text_color": "#c0caf5", "theme_unfocused_bg_color": "#1a1b26", "theme_unfocused_base_color": "#1a1b26", "theme_unfocused_selected_bg_color": "#a9b1d6", "theme_unfocused_selected_fg_color": "rgba(0, 0, 0, 0.87)", "unfocused_insensitive_color": "rgba(192, 202, 245, 0.5)", "borders": "rgba(192, 202, 245, 0.12)", "unfocused_borders": "rgba(192, 202, 245, 0.12)", "warning_color": "#FDD633", "error_color": "#BA1B1B", "success_color": "#81C995", "wm_title": "#AEE5FA", "wm_unfocused_title": "rgba(192, 202, 245, 0.7)", "wm_highlight": "rgba(192, 202, 245, 0.1)", "wm_bg": "#1a1b26", "wm_unfocused_bg": "#1a1b26", "wm_button_close_icon": "#1a1b26", "wm_button_close_hover_bg": "#a9b1d6", "wm_button_close_active_bg": "#c7c7c7", "content_view_bg": "#1a1b26", "placeholder_text_color": "silver", "text_view_bg": "#1d1d1d", "budgie_tasklist_indicator_color": "#90D1F6", "budgie_tasklist_indicator_color_active": "#90D1F6", "budgie_tasklist_indicator_color_active_window": "#999999", "budgie_tasklist_indicator_color_attention": "#FDD633", "STRAWBERRY_100": "#FF9262", "STRAWBERRY_300": "#FF793E", "STRAWBERRY_500": "#F15D22", "STRAWBERRY_700": "#CF3B00", "STRAWBERRY_900": "#AC1800", "ORANGE_100": "#FFDB91", "ORANGE_300": "#FFCA40", "ORANGE_500": "#FAA41A", "ORANGE_700": "#DE8800", "ORANGE_900": "#C26C00", "BANANA_100": "#FFFFA8", "BANANA_300": "#FFFA7D", "BANANA_500": "#FFCE51", "BANANA_700": "#D1A023", "BANANA_900": "#A27100", "LIME_100": "#A2F3BE", "LIME_300": "#8ADBA6", "LIME_500": "#73C48F", "LIME_700": "#479863", "LIME_900": "#1C6D38", "BLUEBERRY_100": "#94A6FF", "BLUEBERRY_300": "#6A7CE0", "BLUEBERRY_500": "#3F51B5", "BLUEBERRY_700": "#213397", "BLUEBERRY_900": "#031579", "GRAPE_100": "#D25DE6", "GRAPE_300": "#B84ACB", "GRAPE_500": "#9C27B0", "GRAPE_700": "#830E97", "GRAPE_900": "#6A007E", "COCOA_100": "#9F9792", "COCOA_300": "#7B736E", "COCOA_500": "#574F4A", "COCOA_700": "#463E39", "COCOA_900": "#342C27", "SILVER_100": "#EEE", "SILVER_300": "#CCC", "SILVER_500": "#AAA", "SILVER_700": "#888", "SILVER_900": "#666", "SLATE_100": "#888", "SLATE_300": "#666", "SLATE_500": "#444", "SLATE_700": "#222", "SLATE_900": "#111", "BLACK_100": "#474341", "BLACK_300": "#403C3A", "BLACK_500": "#393634", "BLACK_700": "#33302F", "BLACK_900": "#2B2928", "accent_bg_color": "{{ $primary }}", "accent_fg_color": "{{ $onPrimary }}", "accent_color": "{{ $primary }}", "destructive_bg_color": "{{ $error }}", "destructive_fg_color": "{{ $onError }}", "destructive_color": "{{ $error }}", "success_bg_color": "#81C995", "success_fg_color": "rgba(0, 0, 0, 0.87)", "warning_bg_color": "#FDD633", "warning_fg_color": "rgba(0, 0, 0, 0.87)", "error_bg_color": "{{ $error }}", "error_fg_color": "{{ $onError }}", "window_bg_color": "{{ $background }}", "window_fg_color": "{{ $onBackground }}", "view_bg_color": "{{ $surface }}", "view_fg_color": "{{ $onSurface }}", "headerbar_bg_color": "mix(@dialog_bg_color, @window_bg_color, 0.5)", "headerbar_fg_color": "{{ $onSecondaryContainer }}", "headerbar_border_color": "{{ $secondaryContainer }}", "headerbar_backdrop_color": "@headerbar_bg_color", "headerbar_shade_color": "rgba(0, 0, 0, 0.09)", "card_bg_color": "{{ $background }}", "card_fg_color": "{{ $onSecondaryContainer }}", "card_shade_color": "rgba(0, 0, 0, 0.09)", "dialog_bg_color": "{{ $secondaryContainer }}", "dialog_fg_color": "{{ $onSecondaryContainer }}", "popover_bg_color": "{{ $secondaryContainer }}", "popover_fg_color": "{{ $onSecondaryContainer }}", "thumbnail_bg_color": "#1a1b26", "thumbnail_fg_color": "#AEE5FA", "shade_color": "rgba(0, 0, 0, 0.36)", "scrollbar_outline_color": "rgba(0, 0, 0, 0.5)", "sidebar_bg_color": "@window_bg_color", "sidebar_fg_color":"@window_fg_color", "sidebar_border_color": "@sidebar_bg_color", "sidebar_backdrop_color": "@sidebar_bg_color" }, "palette": { "blue_": {}, "green_": {}, "yellow_": {}, "orange_": {}, "red_": {}, "purple_": {}, "brown_": {}, "light_": {}, "dark_": {} }, "custom_css": { "gtk4": "", "gtk3": "" }, "plugins": {} } ================================================ FILE: .config/ags/scripts/templates/hypr/hyprland/colors.conf ================================================ # exec = export SLURP_ARGS='-d -c {{ $onSecondaryContainer }}BB -b {{ $secondaryContainer }}44 -s 00000000' general { col.active_border = rgba({{ $onSurface }}39) col.inactive_border = rgba({{ $outline }}30) } misc { background_color = rgba({{ $surface }}FF) } plugin { hyprbars { # Honestly idk if it works like css, but well, why not bar_text_font = Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif bar_height = 30 bar_padding = 10 bar_button_padding = 5 bar_precedence_over_border = true bar_part_of_window = true bar_color = rgba({{ $background }}FF) col.text = rgba({{ $onBackground }}FF) # example buttons (R -> L) # hyprbars-button = color, size, on-click hyprbars-button = rgb({{ $onBackground }}), 13, 󰖭, hyprctl dispatch killactive hyprbars-button = rgb({{ $onBackground }}), 13, 󰖯, hyprctl dispatch fullscreen 1 hyprbars-button = rgb({{ $onBackground }}), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special } } windowrulev2 = bordercolor rgba({{ $primary }}AA) rgba({{ $primary }}77),pinned:1 ================================================ FILE: .config/ags/scripts/templates/hypr/hyprlock.conf ================================================ # $text_color = rgba({{ $onBackground }}FF) # $entry_background_color = rgba({{ $background }}11) # $entry_border_color = rgba({{ $outline }}55) # $entry_color = rgba({{ $onSurfaceVariant }}FF) $text_color = rgba(FFFFFFFF) $entry_background_color = rgba(33333311) $entry_border_color = rgba(3B3B3B55) $entry_color = rgba(FFFFFFFF) $font_family = Rubik Light $font_family_clock = Rubik Light $font_material_symbols = Material Symbols Rounded background { # color = rgba({{ $surfaceContainerLowest }}FF) color = rgba(000000FF) # path = {{ SWWW_WALL }} # path = screenshot # blur_size = 5 # blur_passes = 4 } input-field { monitor = size = 250, 50 outline_thickness = 2 dots_size = 0.1 dots_spacing = 0.3 outer_color = $entry_border_color inner_color = $entry_background_color font_color = $entry_color # fade_on_empty = true position = 0, 20 halign = center valign = center } label { # Clock monitor = text = $TIME shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 65 font_family = $font_family_clock position = 0, 300 halign = center valign = center } label { # Greeting monitor = text = hi $USER !!! shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 20 font_family = $font_family position = 0, 240 halign = center valign = center } label { # lock icon monitor = text = lock shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 21 font_family = $font_material_symbols position = 0, 65 halign = center valign = bottom } label { # "locked" text monitor = text = locked shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 14 font_family = $font_family position = 0, 45 halign = center valign = bottom } label { # Status monitor = text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 14 font_family = $font_family position = 30, -30 halign = left valign = top } ================================================ FILE: .config/ags/scripts/templates/terminal/scheme-base.json ================================================ { "dark": { "term0" : "#282828", "term1" : "#CC241D", "term2" : "#98971A", "term3" : "#D79921", "term4" : "#458588", "term5" : "#B16286", "term6" : "#689D6A", "term7" : "#A89984", "term8" : "#928374", "term9" : "#FB4934", "term10" : "#B8BB26", "term11" : "#FABD2F", "term12" : "#83A598", "term13" : "#D3869B", "term14" : "#8EC07C", "term15" : "#EBDBB2" }, "light": { "term0" : "#FDF9F3", "term1" : "#FF6188", "term2" : "#A9DC76", "term3" : "#FC9867", "term4" : "#FFD866", "term5" : "#F47FD4", "term6" : "#78DCE8", "term7" : "#333034", "term8" : "#121212", "term9" : "#FF6188", "term10" : "#A9DC76", "term11" : "#FC9867", "term12" : "#FFD866", "term13" : "#F47FD4", "term14" : "#78DCE8", "term15" : "#333034" } } ================================================ FILE: .config/ags/scripts/templates/terminal/scheme-monochrome.json ================================================ { "dark": { "term0": "#000000", "term1": "#FFFFFF", "term2": "#CCCCCC", "term3": "#8f8f8f", "term4": "#FFFFFF", "term5": "#111111", "term6": "#CCCCCC", "term7": "#FFFFFF", "term8": "#404040", "term9": "#CCCCCC", "term10": "#FFFFFF", "term11": "#909090", "term12": "#CCCCCC", "term13": "#808080", "term14": "#CCCCCC", "term15": "#FFFFFF" }, "light": { "term0": "#EAE9EA", "term1": "#777777", "term2": "#000000", "term3": "#000000", "term4": "#000000", "term5": "#000000", "term6": "#000000", "term7": "#202020", "term8": "#000000", "term9": "#000000", "term10": "#CCCCCC", "term11": "#808080", "term12": "#CCCCCC", "term13": "#FFFFFF" } } ================================================ FILE: .config/ags/scripts/templates/terminal/sequences.txt ================================================ ]4;0;#$term0 #\]4;1;#$term1 #\]4;2;#$term2 #\]4;3;#$term3 #\]4;4;#$term4 #\]4;5;#$term5 #\]4;6;#$term6 #\]4;7;#$term7 #\]4;8;#$term8 #\]4;9;#$term9 #\]4;10;#$term10 #\]4;11;#$term11 #\]4;12;#$term12 #\]4;13;#$term13 #\]4;14;#$term14 #\]4;15;#$term15 #\]10;#$term7 #\]11;[$alpha]#$term0 #\]12;#$term7 #\]13;#$term7 #\]17;#$term7 #\]19;#$term0 #\]4;232;#$term7 #\]4;256;#$term7 #\]708;[$alpha]#$term0 #\ ================================================ FILE: .config/ags/scripts/wayland-idle-inhibitor.py ================================================ #!/usr/bin/env python import sys from dataclasses import dataclass from signal import SIGINT, SIGTERM, signal from threading import Event import setproctitle from pywayland.client.display import Display from pywayland.protocol.idle_inhibit_unstable_v1.zwp_idle_inhibit_manager_v1 import ( ZwpIdleInhibitManagerV1, ) from pywayland.protocol.wayland.wl_compositor import WlCompositor from pywayland.protocol.wayland.wl_registry import WlRegistryProxy from pywayland.protocol.wayland.wl_surface import WlSurface @dataclass class GlobalRegistry: surface: WlSurface | None = None inhibit_manager: ZwpIdleInhibitManagerV1 | None = None def handle_registry_global( wl_registry: WlRegistryProxy, id_num: int, iface_name: str, version: int ) -> None: global_registry: GlobalRegistry = wl_registry.user_data or GlobalRegistry() if iface_name == "wl_compositor": compositor = wl_registry.bind(id_num, WlCompositor, version) global_registry.surface = compositor.create_surface() # type: ignore elif iface_name == "zwp_idle_inhibit_manager_v1": global_registry.inhibit_manager = wl_registry.bind( id_num, ZwpIdleInhibitManagerV1, version ) def main() -> None: done = Event() signal(SIGINT, lambda _, __: done.set()) signal(SIGTERM, lambda _, __: done.set()) global_registry = GlobalRegistry() display = Display() display.connect() registry = display.get_registry() # type: ignore registry.user_data = global_registry registry.dispatcher["global"] = handle_registry_global def shutdown() -> None: display.dispatch() display.roundtrip() display.disconnect() display.dispatch() display.roundtrip() if global_registry.surface is None or global_registry.inhibit_manager is None: print("Wayland seems not to support idle_inhibit_unstable_v1 protocol.") shutdown() sys.exit(1) inhibitor = global_registry.inhibit_manager.create_inhibitor( # type: ignore global_registry.surface ) display.dispatch() display.roundtrip() print("Inhibiting idle...") done.wait() print("Shutting down...") inhibitor.destroy() shutdown() if __name__ == "__main__": setproctitle.setproctitle("wayland-idle-inhibitor.py") main() ================================================ FILE: .config/ags/scss/main.scss ================================================ * { all: unset; font-family: $font-name; font-size: $font-size; font-weight: $font-weight; } //general @import "style/colors"; @import "style/common/common.scss"; @import "style/common/floating-widget.scss"; @import "style/common/widget-button.scss"; //general styles @import "style/common/general"; //modules - bar @import "style/bar/bar"; @import "style/bar/menu"; @import "style/bar/audio"; @import "style/bar/media"; @import "style/bar/network"; @import "style/bar/bluetooth"; @import "style/bar/clock"; @import "style/bar/workspace"; @import "style/bar/window_title"; @import "style/bar/systray"; @import "style/bar/notifications"; @import "style/bar/power"; @import "style/bar/battery"; //modules - menus @import "style/menus/menu"; @import "style/menus/power"; @import "style/menus/powerdropdown"; @import "style/menus/audiomenu"; @import "style/menus/network"; @import "style/menus/bluetooth"; @import "style/menus/media"; @import "style/menus/notifications"; @import "style/menus/calendar"; @import "style/menus/energy"; @import "style/menus/dashboard"; //notifications @import "style/notifications/popups"; //osd @import "style/osd/index"; //settings dialog @import "style/settings/dialog"; @import "style/customModules/style"; ================================================ FILE: .config/ags/scss/optionsTrackers.ts ================================================ import icons from 'lib/icons'; import { bash, dependencies, Notify, isAnImage } from 'lib/utils'; import options from 'options'; import Wallpaper from 'services/Wallpaper'; const { matugen } = options.theme; const { mode, scheme_type, contrast } = options.theme.matugen_settings; const ensureMatugenWallpaper = (): void => { const wallpaperPath = options.wallpaper.image.value; if (matugen.value && (!options.wallpaper.image.value.length || !isAnImage(wallpaperPath))) { Notify({ summary: 'Matugen Failed', body: "Please select a wallpaper in 'Theming > General' first.", iconName: icons.ui.warning, timeout: 7000, }); matugen.value = false; } }; export const initializeTrackers = (resetCssFunc: () => void): void => { matugen.connect('changed', () => { ensureMatugenWallpaper(); options.resetTheme(); }); mode.connect('changed', () => { options.resetTheme(); }); scheme_type.connect('changed', () => { options.resetTheme(); }); contrast.connect('changed', () => { options.resetTheme(); }); Wallpaper.connect('changed', () => { console.info('Wallpaper changed, regenerating Matugen colors...'); if (options.theme.matugen.value) { options.resetTheme(); resetCssFunc(); } }); options.wallpaper.image.connect('changed', () => { if ((!Wallpaper.isRunning() && options.theme.matugen.value) || !options.wallpaper.enable.value) { console.info('Wallpaper path changed, regenerating Matugen colors...'); options.resetTheme(); resetCssFunc(); } if (options.wallpaper.pywal.value && dependencies('wal')) { const wallpaperPath = options.wallpaper.image.value; bash(`wal -i ${wallpaperPath}`); } }); }; ================================================ FILE: .config/ags/scss/style/bar/audio.scss ================================================ .bar-button-icon.volume { font-size: 1.3em; color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-volume-icon); } .bar-button-label.volume { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-volume-text); min-width: 2.2em; margin-left: $bar-buttons-volume-spacing; } .style2 { .bar-button-icon.volume { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-volume-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-volume-spacing; border-top-left-radius: if( $bar-buttons-volume-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-volume-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .bar-button-label.volume { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-volume-spacing; margin-left: 0em; } &.no-label.volume-container { .bar-button-icon.volume { border-top-right-radius: if( $bar-buttons-volume-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-volume-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.volume { border: if( $bar-buttons-volume-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-volume-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/bar.scss ================================================ .bar { * { font-size: $font-size * $bar-scaling * 0.01; } .bar-panel-container { margin-top: if($bar-floating, $bar-margin_top, 0em); margin-bottom: if($bar-floating, $bar-margin_bottom, 0em); margin-left: if($bar-floating, $bar-margin_sides, 0em); margin-right: if($bar-floating, $bar-margin_sides, 0em); } .bar-panel { $bar-opacity-ratio: $bar-opacity * 0.01; $transparency-value: 1 - $bar-opacity-ratio; background: if($bar-transparent, transparent, transparentize($bar-background, $transparency-value)); border-radius: if($bar-floating, $bar-border_radius, 0em); } } $bar-button-background-opacity-ratio: $bar-buttons-background_opacity * 0.01; $transparency-value: 1 - $bar-button-background-opacity-ratio; $bar-button-background-hover-opacity-ratio: $bar-buttons-background_hover_opacity * 0.01; $transparency-value-hover: 1 - $bar-button-background-hover-opacity-ratio; .bar_item_box_visible { background-color: transparentize($bar-buttons-background, $transparency-value); border-radius: $bar-buttons-radius; margin: $bar-buttons-y_margins $bar-buttons-spacing; opacity: $bar-buttons-opacity * 0.01; padding: $bar-buttons-padding_y $bar-buttons-padding_x; &.style3 { border-bottom-left-radius: 1.3em; border-top-right-radius: 1.3em; } &.style4 { border-bottom-right-radius: 1.3em; border-top-left-radius: 1.3em; } &:hover { opacity: $bar-buttons-background_hover_opacity * 0.01; } &.battery { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-battery-background), $transparency-value ); } &.bluetooth { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-bluetooth-background), $transparency-value ); } &.clock { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-clock-background), $transparency-value ); } &.media { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-media-background), $transparency-value ); } &.dashboard { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-dashboard-background), $transparency-value ); } &.network { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-network-background), $transparency-value ); } &.notifications { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-notifications-background), $transparency-value ); } &.systray { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-systray-background), $transparency-value ); &:hover { opacity: 1; } } &.volume { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-volume-background), $transparency-value ); } &.windowtitle { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-windowtitle-background), $transparency-value ); } &.workspaces { background-color: transparentize( if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-workspaces-background), $transparency-value ); &:hover { opacity: 1; } } &.style2 { padding: 0em; } } .no-label.style2 { .bar-button-icon { border-top-right-radius: $bar-buttons-radius; border-bottom-right-radius: $bar-buttons-radius; } } .bar_item_box_hidden { background: none; border-radius: 0rem; padding: 0rem 0rem 0rem 0rem; margin: 0rem 0rem 0rem 0rem; } .box-left { margin-left: $bar-outer_spacing; } .box-right { margin-right: $bar-outer_spacing; } ================================================ FILE: .config/ags/scss/style/bar/battery.scss ================================================ .bar-button-label.battery { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-battery-text); margin-left: $bar-buttons-battery-spacing; } .bar-button-icon.battery { color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-battery-icon); } .style2 { .bar-button-icon.battery { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-battery-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-battery-spacing; border-top-left-radius: if( $bar-buttons-battery-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-battery-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); &:last-child { border-radius: $bar-buttons-radius; } } .bar-button-label.battery { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-battery-spacing; margin-left: 0em; } &.no-label.battery-container { .bar-button-icon.battery { border-top-right-radius: if( $bar-buttons-battery-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-battery-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.battery { border: if( $bar-buttons-battery-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-battery-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/bluetooth.scss ================================================ .bar-button-icon.bluetooth { font-size: 1.15em; color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-bluetooth-icon); } .bar-button-label.bluetooth { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-bluetooth-text); margin-left: $bar-buttons-bluetooth-spacing; } .bluetooth-disabled-menu { font-weight: bold; font-size: 1.1rem; color: $surface2; margin: 6rem 0rem; } .menu-button-isactive { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-bluetooth-text); } .style2 { .bar-button-icon.bluetooth { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-bluetooth-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-bluetooth-spacing; border-top-left-radius: if( $bar-buttons-bluetooth-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-bluetooth-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .bar-button-label.bluetooth { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-bluetooth-spacing; margin-left: 0em; } &.no-label.bluetooth-container { .bar-button-icon.bluetooth { border-top-right-radius: if( $bar-buttons-bluetooth-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-bluetooth-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.bluetooth { border: if( $bar-buttons-bluetooth-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-bluetooth-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/clock.scss ================================================ .bar-button-label.clock { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-clock-text); margin-left: $bar-buttons-clock-spacing; } .bar-button-icon.clock { font-size: 1.2em; color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-clock-icon); } .style2 { .bar-button-icon.clock { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-clock-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-clock-spacing; border-top-left-radius: if( $bar-buttons-clock-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-clock-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .bar-button-label.clock { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-clock-spacing; margin-left: 0em; } &.no-label.clock-container { .bar-button-icon.clock { border-top-right-radius: if( $bar-buttons-clock-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-clock-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.clock { border: if( $bar-buttons-clock-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-clock-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/media.scss ================================================ .bar-button-label.media { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-media-text); margin-left: $bar-buttons-media-spacing; } .bar-button-icon.media { font-size: 1.2em; color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-media-icon); } .style2 { .bar-button-icon.media { background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-media-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-media-spacing; border-top-left-radius: if( $bar-buttons-media-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-media-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .bar-button-label.media { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-media-spacing; margin-left: 0em; } } .bar_item_box_visible.media { border: if( $bar-buttons-media-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-media-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/menu.scss ================================================ .bar-menu_label { color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-dashboard-icon); font-size: 1.3em; border-radius: $bar-buttons-radius; } .bar_item_box_visible.style2.dashboard { background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-dashboard-background); .bar-menu_label { color: if($bar-buttons-monochrome, $bar-buttons-background, $bar-buttons-dashboard-icon); } } .style2 .bar-menu_label { padding: $bar-buttons-padding_y $bar-buttons-padding_x; } .bar_item_box_visible.dashboard { border: if( $bar-buttons-dashboard-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-dashboard-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/network.scss ================================================ .bar-button-label.network-label { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-network-text); margin-left: $bar-buttons-network-spacing; } .bar-button-icon.network-icon { color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-network-icon); } .style2 { .bar-button-icon.network-icon { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-network-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-network-spacing; border-top-left-radius: if( $bar-buttons-network-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-network-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .bar-button-label.network-label { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-network-spacing; margin-left: 0em; } &.no-label.network-container { .bar-button-icon.network-icon { border-top-right-radius: if( $bar-buttons-network-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-network-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.network { border: if( $bar-buttons-network-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-network-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/notifications.scss ================================================ .bar-button-icon.notifications { color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-notifications-icon); font-size: 1.3em; } .bar-button-label.notifications { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-notifications-total); margin-left: $bar-buttons-notifications-spacing; min-width: 1em; } .style2 { .bar-button-icon.notifications { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-notifications-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-notifications-spacing; border-top-left-radius: if( $bar-buttons-notifications-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-notifications-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-notifications-icon); &:last-child { border-radius: $bar-buttons-radius; } } .bar-button-label.notifications { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-notifications-spacing; margin-left: 0em; } &.no-label.notifications-container { .bar-button-icon.notifications { border-top-right-radius: if( $bar-buttons-notifications-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-notifications-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.notifications { border: if( $bar-buttons-notifications-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-notifications-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/power.scss ================================================ .bar-power_label { color: $red; margin-top: 0.2rem; } ================================================ FILE: .config/ags/scss/style/bar/systray.scss ================================================ .systray button:not(:first-child) { margin-left: $bar-buttons-systray-spacing; } .systray-icon { font-size: 1.3em; } .style2.systray { padding: $bar-buttons-padding_y $bar-buttons-padding_x; } .bar_item_box_visible.systray { border: if( $bar-buttons-systray-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-systray-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/window_title.scss ================================================ .bar-button-icon.windowtitle { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-windowtitle-icon); } .bar-button-label.windowtitle { color: if($bar-buttons-monochrome, $bar-buttons-text, $bar-buttons-windowtitle-text); margin-left: $bar-buttons-windowtitle-spacing; &.no-icon { margin-left: 0; } } .style2 { .bar-button-icon.windowtitle { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; background: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-windowtitle-icon_background); padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: $bar-buttons-windowtitle-spacing; border-top-left-radius: if( $bar-buttons-windowtitle-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $bar-buttons-windowtitle-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .bar-button-label.windowtitle { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: $bar-buttons-windowtitle-spacing; margin-left: 0em; &.no-icon { padding-left: $bar-buttons-padding_x; } } &.no-label.windowtitle-container { .bar-button-icon.windowtitle { border-top-right-radius: if( $bar-buttons-windowtitle-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $bar-buttons-windowtitle-enableBorder or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } .bar_item_box_visible.windowtitle { border: if( $bar-buttons-windowtitle-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-windowtitle-border), 0em ); } ================================================ FILE: .config/ags/scss/style/bar/workspace.scss ================================================ .workspaces { label { font-size: 0.2em; min-width: 4em; min-height: 4em; border-radius: 1.9rem * 0.6; transition: 300ms * 0.5; background-color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-available); color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-available); &.occupied { background-color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-occupied); color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-occupied); min-width: 4em; min-height: 4em; } &.active { color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-active); background-color: if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-active); min-width: 12em; min-height: 4em; } &.workspace-icon { background-color: transparent; min-width: 0em; min-height: 0em; border-radius: 0em; transition: 300ms * 0.5; font-size: 1em; } &.workspace-number { background-color: transparent; min-width: 0em; min-height: 0em; border-radius: 0em; transition: 0ms; padding: 0em 0.2em; font-size: $bar-buttons-workspaces-fontSize; } &.underline { border-top: 0.1em solid transparent; border-bottom: 0.1em solid $bar-buttons-workspaces-numbered_active_underline_color; transition: 0ms; } &.highlight { transition: 0ms; color: $bar-buttons-workspaces-numbered_active_highlighted_text_color; border-radius: $bar-buttons-workspaces-numbered_active_highlight_border; background-color: $bar-buttons-workspaces-active; padding: 0em $bar-buttons-workspaces-numbered_active_highlight_padding; } } } .workspace-button { &:hover label { color: $bar-buttons-workspaces-hover; &.default { background-color: $bar-buttons-workspaces-hover; } } &:hover .can_underline { border-top: 0.1em solid transparent; border-bottom: 0.1em solid if($bar-buttons-monochrome, $bar-buttons-workspaces-hover, $bar-buttons-workspaces-hover); } &:hover .can_highlight { background-color: $bar-buttons-workspaces-hover; color: $bar-buttons-workspaces-numbered_active_highlighted_text_color; border-radius: $bar-buttons-workspaces-numbered_active_highlight_border; } } .style2.workspaces { padding: $bar-buttons-padding_y $bar-buttons-padding_x; } .bar_item_box_visible.workspaces { border: if( $bar-buttons-workspaces-enableBorder or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $bar-buttons-workspaces-border), 0em ); } ================================================ FILE: .config/ags/scss/style/colors.scss ================================================ $primary-color: #CDD6F4; $dark-background: #0e0e1e; $light-background: #1e1e2e; $mauve: #cba6f7; $red: #f38ba8; $yellow: #f9e2af; $orange: #fab387; $teal: #94e2d5; $lightteal: #bac2de; $pink: #f5c2e7; $green: #a6e3a1; $grey: #585b70; $blue: #89b4fa; $lightgrey: #a6adc8; $lightblue: #74c7ec; $rosewater: #f5e0dc; $flamingo: #f2cdcd; $pink: #f5c2e7; $mauve: #cba6f7; $red: #f38ba8; $maroon: #eba0ac; $peach: #fab387; $yellow: #f9e2af; $green: #a6e3a1; $teal: #94e2d5; $sky: #89dceb; $sapphire: #74c7ec; $blue: #89b4fa; $lavender: #b4befe; $text: #cdd6f4; $subtext1: #bac2de; $subtext2: #a6adc8; $overlay2: #9399b2; $overlay1: #7f849c; $overlay0: #6c7086; $surface2: #585b70; $surface1: #45475a; $surface0: #313244; $base: #1e1e2e; $base2: #242438; $mantle: #181825; $crust: #11111b; $default_fg: $primary-color; $default_bg: #000000; $primary_bg: $dark-background; // $primary_fg: mix($mauve, $primary_bg, 70%); $primary_fg: mix($mauve, $primary_bg, 70%); $secondary_fg: $green; $secondary_bg: $light-background; $shadow-color: #1e1e2e; ================================================ FILE: .config/ags/scss/style/common/common.scss ================================================ @import "../colors"; menu { margin: 6px; padding: 6px; background-color: $primary_bg; background-clip: border-box; border-radius: 12px; border: 1px solid $secondary_bg; menuitem { transition: background-color 75ms cubic-bezier(0, 0, 0.2, 1); min-height: 20px; min-width: 40px; padding: 4px 8px; color: #FFFFFF; font: initial; text-shadow: none; border-radius: 6px; &:hover, &:active { background-color: $secondary_bg; } &:disabled { color: $secondary_bg; } arrow { min-height: 16px; min-width: 16px; -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); margin-left: 8px; } } separator { min-height: 1px; margin: 4px 0; background-color: $secondary_bg } } menu>arrow { min-height: 16px; min-width: 16px; padding: 4px; color: $secondary_bg; } menu>arrow.top { margin-top: 0; border-radius: 6px; -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } menu>arrow.bottom { margin-top: 8px; margin-bottom: -12px; border-radius: 6px; -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } check, radio { min-height: 15px; min-width: 15px; margin: 4px; padding: 0; color: transparent; background-color: $secondary_bg; transition: all 75ms cubic-bezier(0, 0, 0.2, 1), box-shadow 150ms cubic-bezier(0, 0, 0.2, 1); } radio { border-radius: 9999px; } check { border-radius: 4px; } check:hover, radio:hover { box-shadow: 0 0 0 4px transparentize($primary_bg, 0.8); background-color: $primary_bg; } check:active, radio:active { box-shadow: 0 0 0 4px transparentize($primary_bg, 0.8); background-color: $primary_bg; } check:checked, check:indeterminate, radio:checked, radio:indeterminate { color: $primary_bg; background-color: $primary_fg; } check:checked:hover, check:indeterminate:hover, radio:checked:hover, radio:indeterminate:hover { box-shadow: 0 0 0 4px transparentize($primary_fg, 0.8); background-color: $primary_fg; } check:checked:active, check:indeterminate:active, radio:checked:active, radio:indeterminate:active { box-shadow: 0 0 0 4px transparentize($primary_fg, 0.8); background-color: $primary_fg; } switch { transition: all 75ms cubic-bezier(0, 0, 0.2, 1); margin: 4px 0; border: none; border-radius: 9999px; background-color: $secondary_bg; background-clip: padding-box; font-size: 0; color: transparent; } switch:checked { background-color: $primary_fg; } switch:disabled { opacity: 0.5; } switch slider { transition: all 75ms cubic-bezier(0, 0, 0.2, 1); min-width: 18px; min-height: 18px; margin: 3px; border-radius: 9999px; outline: none; background-color: $default_fg; border: none; color: transparent; } scale { min-height: 2px; min-width: 2px; } scale.horizontal { padding: 17px 12px; } scale.vertical { padding: 12px 17px; } scale slider { min-height: 18px; min-width: 18px; margin: -8px; } scale trough { transition: background-color 75ms cubic-bezier(0, 0, 0.2, 1); outline: none; background-color: $secondary_bg; } scale highlight { transition: background-color 75ms cubic-bezier(0, 0, 0.2, 1); background-color: $primary_fg; } scale highlight:disabled { background-color: #1e1e2e; } scale fill { transition: background-color 75ms cubic-bezier(0, 0, 0.2, 1); } scale fill:disabled { background-color: transparent; } scale slider { transition: all 75ms cubic-bezier(0, 0, 0.2, 1); border-radius: 9999px; color: $primary_fg; background-color: $primary_bg; box-shadow: inset 0 0 0 2px $primary_fg; } scale slider:hover { box-shadow: inset 0 0 0 2px $primary_fg, 0 0 0 8px transparentize($primary_fg, 0.9); } scale slider:active { box-shadow: inset 0 0 0 4px $primary_fg, 0 0 0 8px transparentize($primary_fg, 0.9); } tooltip { box-shadow: none; } separator { min-width: 1px; min-height: 1px; background-color: $secondary_bg; } @keyframes spin { to { -gtk-icon-transform: rotate(1turn); } } spinner { background: none; opacity: 0; -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); } spinner:checked { opacity: 1; animation: spin 1s linear infinite; } ================================================ FILE: .config/ags/scss/style/common/floating-widget.scss ================================================ @import "../colors"; @mixin floating-widget { margin: max($spacing, 8px); border: 0.2rem solid $surface0; background-color: $base; color: $primary_fg; border-radius: 0.5rem; padding: 1.5rem; } ================================================ FILE: .config/ags/scss/style/common/general.scss ================================================ @import '../colors.scss'; .txt-icon { font-family: "JetBrainsMono Nerd Font Propo", monospace; font-size: 1.5em; &.bluetooth { font-size: 1em; } &.playback { font-size: 1.3em; } &.input { font-size: 1.3em; } } .bar.txt-icon { font-family: "JetBrainsMono Nerd Font Propo", monospace; font-size: 1.2em; } window.popup { opacity: $bar-menus-opacity * 0.01; menuitem { label { color: $bar-menus-popover-text; } &:hover { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-text, $bar-menus-popover-text), 0.6); } } menu { border-color: $bar-menus-popover-border; background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-popover-background); } separator { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-text, $bar-menus-popover-text), 0.7); min-height: 0.075em; } arrow { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-popover-text); } } tooltip { * { all: unset; } opacity: $bar-menus-opacity * 0.01; font-size: 1.1em; >*>* { padding: 0.6em; border-radius: $bar-menus-border-radius * 0.5; color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-tooltip-text); background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-tooltip-background); } } check:not(:checked) { background-color: $bar-menus-check_radio_button-background; border: 1px solid $bar-menus-check_radio_button-active; } check:checked { background-color: $bar-menus-check_radio_button-active; border: 1px solid $bar-menus-check_radio_button-background; } ================================================ FILE: .config/ags/scss/style/common/widget-button.scss ================================================ $popover-padding: 7px * 1.6; $padding: 7px; $spacing: 12px; $radius: 11px; .widget-button { background: $crust; opacity: 1; font-size: 1.6rem; font-weight: bold; margin: 10px; padding: 15px 20px; border-radius: 10px; border: 3px solid; border-color: $crust; transition: border-color .3s ease-in-out; transition: opacity .3s ease-in-out; &:hover { border: 3px solid; border-color: $lavender; transition: border-color .3s ease-in-out; } &:focus, &:active { border: 3px solid; border-color: $lavender; } image { border-radius: $radius + ($popover-padding * 1.4); min-width: 1.2em; min-height: 1.2em; font-size: 4em; } label { margin-top: $spacing; } &:active { image { opacity: .3; transition: opacity .3s ease-in-out; } label { opacity: .3; transition: opacity .3s ease-in-out; } } } ================================================ FILE: .config/ags/scss/style/customModules/style.scss ================================================ /* * ################################# * # Default Styling # * ################################# */ .bar-button-label { margin-left: 0.5em; color: $text; } .module-icon { font-size: 1em; } .style2 { .bar-button-icon { border-top-left-radius: $bar-buttons-radius; border-bottom-left-radius: $bar-buttons-radius; padding: $bar-buttons-padding_y 0em; padding-left: $bar-buttons-padding_x; padding-right: 0.5em; background: $text; color: $bar-background; } .bar-button-label { padding: $bar-buttons-padding_y 0em; padding-right: $bar-buttons-padding_x; padding-left: 0.5em; margin-left: 0em; } } /* * ################################# * # Styling Function # * ################################# */ @mixin styleModule( $class, $textColor, $iconColor, $iconBackground, $labelBackground, $spacing, $borderEnabled, $borderColor, $fontSize: 1em ) { $bar-button-background-opacity-ratio: $bar-buttons-background_opacity * 0.01; $transparency-value: 1 - $bar-button-background-opacity-ratio; $bar-button-background-hover-opacity-ratio: $bar-buttons-background_hover_opacity * 0.01; $transparency-value-hover: 1 - $bar-button-background-hover-opacity-ratio; .bar_item_box_visible { &.#{$class} { background: transparentize($labelBackground, $transparency-value); border: if( $borderEnabled or $bar-buttons-enableBorders, $bar-buttons-borderSize solid if($bar-buttons-monochrome, $bar-buttons-icon, $borderColor), 0em ); &.style2 { background: transparent; } &:hover { opacity: $bar-buttons-background_hover_opacity * 0.01; } } } .module-label.#{$class} { color: if($bar-buttons-monochrome, $bar-buttons-text, $textColor); margin-left: $spacing; border-radius: $bar-buttons-radius; } .module-icon.#{$class} { color: if($bar-buttons-monochrome, $bar-buttons-icon, $iconColor); font-size: if($fontSize, $fontSize, 1em); } .style2 { .module-icon.#{$class} { background: if($bar-buttons-monochrome, $bar-buttons-icon, $iconBackground); padding-right: $spacing; color: if($bar-buttons-monochrome, $bar-buttons-background, $iconColor); border-top-left-radius: if( $borderEnabled or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-left-radius: if( $borderEnabled or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } .module-label.#{$class} { background: transparentize($labelBackground, $transparency-value); padding-left: $spacing * 1.5; margin-left: 0em; border-top-left-radius: 0em; border-bottom-left-radius: 0em; } &.no-label.#{$class} { .module-icon { border-top-right-radius: if( $borderEnabled or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); border-bottom-right-radius: if( $borderEnabled or $bar-buttons-enableBorders, $bar-buttons-radius * 0.4, $bar-buttons-radius ); } } } } /* * ################################# * # Ram Module Styling # * ################################# */ @include styleModule( // // class name 'ram', // label color $bar-buttons-modules-ram-text, // icon color $bar-buttons-modules-ram-icon, // icon background if split style is used $bar-buttons-modules-ram-icon_background, // label background $bar-buttons-modules-ram-background, // inner spacing $bar-buttons-modules-ram-spacing, // // if border enabled $bar-buttons-modules-ram-enableBorder, // border color $bar-buttons-modules-ram-border ); /* * ################################# * # Cpu Module Styling # * ################################# */ @include styleModule( // // class name 'cpu', // label color $bar-buttons-modules-cpu-text, // icon color $bar-buttons-modules-cpu-icon, // icon background if split style is used $bar-buttons-modules-cpu-icon_background, // label background $bar-buttons-modules-cpu-background, // inner spacing $bar-buttons-modules-cpu-spacing, // if border enabled $bar-buttons-modules-cpu-enableBorder, // border color $bar-buttons-modules-cpu-border, // custom font size 1.05em // ); /* * ################################# * # Storage Module Styling # * ################################# */ @include styleModule( // // class name 'storage', // label color $bar-buttons-modules-storage-text, // icon color $bar-buttons-modules-storage-icon, // icon background if split style is used $bar-buttons-modules-storage-icon_background, // label background $bar-buttons-modules-storage-background, // inner spacing $bar-buttons-modules-storage-spacing, // if border enabled $bar-buttons-modules-storage-enableBorder, // border color $bar-buttons-modules-storage-border, // custom font size 1.3em // ); /* * ################################# * # Netstat Module Styling # * ################################# */ @include styleModule( // // class name 'netstat', // label color $bar-buttons-modules-netstat-text, // icon color $bar-buttons-modules-netstat-icon, // icon background if split style is used $bar-buttons-modules-netstat-icon_background, // label background $bar-buttons-modules-netstat-background, // inner spacing $bar-buttons-modules-netstat-spacing, // if border enabled $bar-buttons-modules-netstat-enableBorder, // border color $bar-buttons-modules-netstat-border, // custom font size 1.2em // ); /* * ################################# * # KB Layout Module Styling # * ################################# */ @include styleModule( // // class name 'kblayout', // label color $bar-buttons-modules-kbLayout-text, // icon color $bar-buttons-modules-kbLayout-icon, // icon background if split style is used $bar-buttons-modules-kbLayout-icon_background, // label background $bar-buttons-modules-kbLayout-background, // inner spacing $bar-buttons-modules-kbLayout-spacing, // if border enabled $bar-buttons-modules-kbLayout-enableBorder, // border color $bar-buttons-modules-kbLayout-border, // custom font size 1.2em // ); /* * ################################# * # Updates Module Styling # * ################################# */ @include styleModule( // // class name 'updates', // label color $bar-buttons-modules-updates-text, // icon color $bar-buttons-modules-updates-icon, // icon background if split style is used $bar-buttons-modules-updates-icon_background, // label background $bar-buttons-modules-updates-background, // inner spacing $bar-buttons-modules-updates-spacing, // if border enabled $bar-buttons-modules-updates-enableBorder, // border color $bar-buttons-modules-updates-border, // custom font size 1.2em // ); /* * ################################# * # Submap Module Styling # * ################################# */ @include styleModule( // // class name 'submap', // label color $bar-buttons-modules-submap-text, // icon color $bar-buttons-modules-submap-icon, // icon background if split style is used $bar-buttons-modules-submap-icon_background, // label background $bar-buttons-modules-submap-background, // inner spacing $bar-buttons-modules-submap-spacing, // if border enabled $bar-buttons-modules-submap-enableBorder, // border color $bar-buttons-modules-submap-border, // custom font size 1.2em // ); /* * ################################# * # Weather Module Styling # * ################################# */ @include styleModule( // // class name 'weather-custom', // label color $bar-buttons-modules-weather-text, // icon color $bar-buttons-modules-weather-icon, // icon background if split style is used $bar-buttons-modules-weather-icon_background, // label background $bar-buttons-modules-weather-background, // inner spacing $bar-buttons-modules-weather-spacing, // if border enabled $bar-buttons-modules-weather-enableBorder, // border color $bar-buttons-modules-weather-border, // custom font size 1.2em // ); /* * ################################# * # Power Module Styling # * ################################# */ @include styleModule( // // class name 'powermodule', // label color $red, // icon color $bar-buttons-modules-power-icon, // icon background if split style is used $bar-buttons-modules-power-icon_background, // label background $bar-buttons-modules-power-background, // inner spacing $bar-buttons-modules-power-spacing, // if border enabled $bar-buttons-modules-power-enableBorder, // border color $bar-buttons-modules-power-border, // custom font size 1.3em // ); ================================================ FILE: .config/ags/scss/style/highlights.scss ================================================ @import "colors"; * { color: $default_fg; font-family: "JetBrainsMono NF"; font-size: 0.9rem; } html, body { padding: 0; margin: 0; background-color: $primary_bg; } // scrollbar { // background-color: red; // min-width: 5em; // } .code { background: $light-background; border-radius: 0.5rem; .code-header { background: $light-background; border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; border-bottom: 1px solid $primary_fg; padding: 5px; > button { color: $default_fg; background: transparent; float: right; border: none; &:before { content: '󰆏'; display: inline-block; padding-right: 0.5rem; } } } } $languages-map: ( arduino: "", armasm: "", avrasm: "", bash: "", c: "", clojure: "", coffeescript: "", cpp: "", csharp: "󰌛", css: "", dockerfile: "󰡨", go: "", gradle: "", haskell: "", html: "", java: "", javascript: "󰌞", json: "", latex: "", lua: "󰢱", makefile: "", markdown: "", mipsasm: "", nginx: "", nix: "󱄅", php: "", prolog: "", python: "", r: "󰟔", ruby: "", rust: "", scss: "", shell: "", typescript: "󰛦", wasm: "", x86asm: "", xml: "󰗀", ); @each $lang, $content in $languages-map { [data-language="#{$lang}"]:before { content: $content; font-size: 1.1rem; color: $primary_fg; padding-right: 0.5rem; } } pre { padding: 5px; overflow-x: scroll; code.hljs { color: $default_fg; background: transparent; } } code { & .hljs-keyword { color: $mauve; } & .hljs-built_in { color: $red; } & .hljs-type { color: $yellow; } & .hljs-literal, & .hljs-number { color: $orange; } & .hljs-operator { color: $teal; } & .hljs-punctuation { color: $lightteal; } & .hljs-property, & .hljs-variable.language_, & .hljs-symbol { color: $teal; } & .hljs-regexp { color: $pink; } & .hljs-string, & .hljs-char.escape_, & .hljs-subst { color: $green; } & .hljs-comment { color: $grey; } & .hljs-doctag { color: $red; } & .hljs-meta, & .hljs-title.function_, & .hljs-section { color: $orange; } & .hljs-tag, & .hljs-attribute { color: $lightgrey; } & .hljs-name, & .hljs-selector-attr { color: $mauve; } & .hljs-params, & .hljs-selector-class, & .hljs-template-variable { color: $default_fg; } & .hljs-selector-tag { color: $yellow; } & .hljs-selector-id { color: $blue; } & .hljs-bullet, & .hljs-code, & .hljs-formula { color: $teal; } & .hljs-emphasis { color: $red; font-style: italic; } & .hljs-strong { color: $red; font-weight: bold; } & .hljs-link { color: $lightblue; font-style: italic; } & .hljs-quote { color: $green; font-style: italic; } & .hljs-addition { color: $green; background: rgba(166, 227, 161, 0.15); } & .hljs-deletion { color: $red; background: rgba(243, 139, 168, 0.15); } } ================================================ FILE: .config/ags/scss/style/menus/audiomenu.scss ================================================ .menu-items-container.audio { min-width: 18em * $bar-menus-menu-volume-scaling * 0.01; @import "./menu.scss"; * { font-size: $font-size * $bar-menus-menu-volume-scaling * 0.01; } background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-volume-background-color); .menu-items { border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-volume-border-color); opacity: $bar-menus-opacity * 0.01; } .menu-dropdown-label.audio { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-volume-label-color); } .menu-label.audio { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-volume-label-color); } .menu-active.playback, .menu-active.input { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-volume-text); } .menu-button-isactive.audio { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-volume-icons-active); } .menu-slider.playback { trough { background: if($bar-menus-monochrome, $bar-menus-slider-background, $bar-menus-menu-volume-audio_slider-background); highlight, progress { background: if($bar-menus-monochrome, $bar-menus-slider-primary, $bar-menus-menu-volume-audio_slider-primary); } } &:hover { trough { background: if($bar-menus-monochrome, $bar-menus-slider-backgroundhover, $bar-menus-menu-volume-audio_slider-backgroundhover); } slider { background: if($bar-menus-monochrome, $bar-menus-slider-puck, $bar-menus-menu-volume-audio_slider-puck); } } } .menu-slider.inputs { trough { background: if($bar-menus-monochrome, $bar-menus-slider-background, $bar-menus-menu-volume-input_slider-background); highlight, progress { background: if($bar-menus-monochrome, $bar-menus-slider-primary, $bar-menus-menu-volume-input_slider-primary); } } &:hover { trough { background: if($bar-menus-monochrome, $bar-menus-slider-backgroundhover, $bar-menus-menu-volume-input_slider-backgroundhover); } slider { background: if($bar-menus-monochrome, $bar-menus-slider-puck, $bar-menus-menu-volume-input_slider-puck); } } } .menu-active-percentage.playback, .menu-active-percentage.input { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-volume-text); } .menu-active-button { .menu-active-icon.playback, .menu-active-icon.input { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-volume-iconbutton-active); opacity: 1; } &.muted { .menu-active-icon.playback, .menu-active-icon.input { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-volume-iconbutton-passive); opacity: 1; } } &:hover { .menu-active-icon.playback, .menu-active-icon.input { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-volume-iconbutton-passive); opacity: 0.3; } } &.muted:hover { .menu-active-icon.playback, .menu-active-icon.input { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-volume-iconbutton-active); opacity: 1; } } } .menu-button-icon.playback, .menu-button-icon.input { color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-volume-icons-passive); &.active { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-volume-icons-active); } } .menu-button.audio { color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-volume-icons-passive); .menu-button-name.playback, .menu-button-name.input { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-volume-text); } &:hover { .menu-button-name.playback, .menu-button-name.input { color: if($bar-menus-monochrome, $bar-menus-listitems-active, $bar-menus-menu-volume-listitems-active); } } } .menu-section-container.volume { margin-bottom: 0.65em; } .menu-section-container.playback { margin-top: 0em; margin-bottom: 1em; } .menu-section-container.input { margin-top: 0em; } .menu-label-container.input { border-radius: 0em; background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-volume-card-color); } .menu-label-container.playback { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-volume-card-color); } .menu-items-section.input { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-volume-card-color); } .menu-items-section.playback { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-volume-card-color); } .menu-label-container.selected { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-volume-card-color); } .menu-items-section.selected { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-volume-card-color); } .menu-items-section.playback { border-radius: 0em; } } ================================================ FILE: .config/ags/scss/style/menus/bluetooth.scss ================================================ .menu-items-container.bluetooth * { font-size: $font-size * $bar-menus-menu-bluetooth-scaling * 0.01; } @import "./menu.scss"; .menu-items.bluetooth { background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-bluetooth-background-color); border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-bluetooth-border-color); opacity: $bar-menus-opacity * 0.01; font-size: $font-size * $bar-menus-menu-bluetooth-scaling * 0.01; } .menu-items-container.bluetooth { min-width: 18em * $bar-menus-menu-bluetooth-scaling * 0.01; font-size: 1.3em; .menu-section-container { margin: 1em 0em; } .menu-label-container { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-bluetooth-card-color); .menu-label { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-bluetooth-label-color); } .controls-container { margin: 0.5em 1em; } } .menu-items-section { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-bluetooth-card-color); min-height: 20em * $bar-menus-menu-bluetooth-scaling * 0.01; font-size: 1em; } button { margin-right: 0.5em; &.search { image { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-bluetooth-iconbutton-passive); } &:hover image { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-bluetooth-iconbutton-active); } font-size: 0.8em; margin-bottom: 0em; } &:hover { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-bluetooth-iconbutton-active); } } .menu-icon-button.bluetooth { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-bluetooth-iconbutton-passive); &:hover { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-bluetooth-iconbutton-active); } } .bluetooth-element-item { margin-bottom: 0.4em; &:hover { .menu-button-icon, .menu-button-name { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-bluetooth-iconbutton-active); } } image { margin-right: 0em; margin-top: 0.0em; min-height: 1em; min-width: 1em; &.active { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-bluetooth-icons-active); } } label { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-bluetooth-text); font-size: 1em; } .menu-button-icon { font-size: 1.5em; color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-bluetooth-icons-passive); &.active { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-bluetooth-icons-active); } } .connection-status { font-size: 0.9em; margin-left: 0.6rem; color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-bluetooth-text); opacity: 0.4; } } spinner { min-height: 1.3em; min-width: 1.3em; color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-bluetooth-iconbutton-active); } .menu-separator { margin: 0em 1em; } .menu-switch.bluetooth { background-color: if($bar-menus-monochrome, $bar-menus-switch-disabled, $bar-menus-menu-bluetooth-switch-disabled); &:checked { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-bluetooth-switch-enabled); } slider { background-color: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-bluetooth-switch-puck); } &:hover { trough { background: if($bar-menus-monochrome, $bar-menus-switch-disabled, $bar-menus-menu-bluetooth-switch-disabled); } slider { background: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-bluetooth-switch-puck); } } &:active { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-bluetooth-switch-enabled); } } .no-bluetooth-devices.dim, .search-bluetooth-label.dim, .bluetooth-disabled.dim { &:last-child { margin-bottom: 2em; } color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-bluetooth-text); opacity: 0.5; } } ================================================ FILE: .config/ags/scss/style/menus/calendar.scss ================================================ .calendar-menu-content * { font-size: $font-size * $bar-menus-menu-clock-scaling * 0.01; } .calendar-content-container { margin-top: 0em; min-width: 27em; min-height: 6em; background: if( $bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-clock-background-color ); border: $bar-menus-border-size solid if( $bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-clock-border-color ); border-radius: $bar-menus-border-radius; margin-right: 0.5em; opacity: $bar-menus-opacity * 0.01; } .calendar-menu-item-container { border-radius: $bar-menus-card_radius; margin-bottom: 1.35em; background: if( $bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-clock-card-color ); } .calendar-content-items { margin: 1.35em; } .calendar-container-box { margin: 0.75em; margin-bottom: 0em; } .calendar-menu-widget { border-radius: 0.4em; color: if( $bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-clock-calendar-days ); &:selected { box-shadow: inset 0 -0.5em 0 0 if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-calendar-currentday), inset -0.4em -0.3em 0 0 if( $bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-clock-card-color ), inset 0.4em 0 0 0.01em if( $bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-clock-card-color ); color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-calendar-currentday ); border-radius: 0em; } &.header { background-color: transparent; color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-calendar-yearmonth ); } &.button { color: $text; font-weight: 900; font-size: 900em; } &:hover { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-calendar-paginator ); } &.highlight { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-calendar-weekdays ); } &:indeterminate { color: transparentize( if( $bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-clock-calendar-days ), 0.65 ); } font-size: 1.1em; padding: 0.35em; } .clock-content-items { min-height: 8em; .clock-content-time { font-size: 4em; color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-time-time ); } .clock-content-period { font-size: 1.75em; margin-bottom: 1.35em; margin-right: -0.875em; color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-time-timeperiod ); } } .calendar-menu-item-container { margin-bottom: 0.65em; &:last-child { margin-bottom: 0em; } } .weather-container-box { margin: 1.5em; margin-top: 2.5em; min-width: 3em; .calendar-menu-weather.today.icon { label { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-icon ); font-size: 5em; } } .calendar-menu-weather.today.temp.label { color: if( $bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-clock-weather-temperature ); margin-left: 0.2em; font-size: 2.5em; &.icon { font-size: 2.5em; } } .calendar-menu-weather.today.condition.label { color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-weather-status ); font-size: 1.5em; margin-bottom: 0.4em; } .calendar-menu-weather.today.temp.label.icon.weather-color.red { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-thermometer-extremelyhot ); } .calendar-menu-weather.today.temp.label.icon.weather-color.orange { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-thermometer-hot ); } .calendar-menu-weather.today.temp.label.icon.weather-color.lavender { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-thermometer-moderate ); } .calendar-menu-weather.today.temp.label.icon.weather-color.blue { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-thermometer-cold ); } .calendar-menu-weather.today.temp.label.icon.weather-color.sky { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-thermometer-extremelycold ); } } .calendar-menu-weather.today.stats.container { margin-bottom: 0.75em; color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-weather-stats ); .weather.label { margin-left: 0.35em; } } .menu-separator.weather { margin: 1.5em 0em; } .hourly-weather-time { color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-weather-hourly-time ); margin-bottom: 0.5em; } .hourly-weather-icon { color: if( $bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-clock-weather-hourly-icon ); margin-bottom: 0.25em; font-size: 1.8em; } .hourly-weather-temp { color: if( $bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-clock-weather-hourly-temperature ); } .weather.precip.icon { min-width: 1em; font-size: 1em; } .weather.wind.icon { min-width: 1em; font-size: 1em; } ================================================ FILE: .config/ags/scss/style/menus/dashboard.scss ================================================ .dashboard-menu-content * { font-size: $font-size * $bar-menus-menu-dashboard-scaling * 0.01; } .dashboard-content-items { margin-left: 0.5em; min-width: 28.5em; background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-dashboard-background-color); border: $bar-menus-border-size solid if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-dashboard-border-color); border-radius: $bar-menus-border-radius; opacity: $bar-menus-opacity * 0.01; button { border-radius: 0.4em; } .dashboard-card { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-dashboard-card-color); margin: 0em 1.3em; border-radius: $bar-menus-card_radius; padding: 1.5em; } .profile-picture-container { margin-right: 0.65em; .profile-picture { min-width: $bar-menus-menu-dashboard-profile-size; min-height: $bar-menus-menu-dashboard-profile-size; border-radius: $bar-menus-menu-dashboard-profile-radius; background-size: cover; background-repeat: no-repeat; background-position: center; } .profile-name { font-size: 1.5em; color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-dashboard-profile-name); margin-top: 0.75em; } } .power-menu-container { margin-left: 0em; .dashboard-button { min-width: 3em; min-height: 2.5em; &:not(:last-child) { margin-bottom: 0.75em; } label { color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-dashboard-shortcuts-text); font-size: 1.7em; } &.shutdown { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-shutdown ); label { font-size: 1.9em; } } &.restart { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-restart ); label { font-size: 1.9em; } } &.lock { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-logout ); } &.sleep { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-sleep ); } &:hover { &.shutdown { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-shutdown ), 0.5 ); } &.restart { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-restart ), 0.5 ); } &.lock { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-logout ), 0.5 ); } &.sleep { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-sleep ), 0.5 ); } } } } .shortcuts-container { font-size: 1em; .dashboard-card { padding: 1.5em; button { min-height: 2.5em; min-width: 2.5em; } } .card-button-section-container.visible { margin-right: 1.5em; } .top-button.paired { margin-bottom: 1.5em; } .container { margin-top: 0em; &.most-used { margin-right: 0.65em; } &.utilities.paired { margin-left: 0em; } button { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-shortcuts-background ); color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-dashboard-shortcuts-text); min-height: 3em; label { font-size: 1.5em; } &.record.active { background: $red; &:hover { background: transparentize($red, 0.5); } } &:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-shortcuts-background ), 0.5 ); } } } } .controls-container { &.dashboard-card { margin-top: 0em; } button { padding: 0em; min-height: 3em; min-width: 3.8em; label { color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-dashboard-controls-wifi-text); font-size: 1.6em; } &:not(:last-child) { margin-right: 1em; } &.wifi { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-wifi-background ); } &.bluetooth { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-bluetooth-background ); } &.notifications { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-notifications-background ); } &.playback { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-volume-background ); } &.input { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-input-background ); } &.wifi:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-wifi-background ), 0.5 ); } &.bluetooth:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-bluetooth-background ), 0.5 ); } &.notifications:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-notifications-background ), 0.5 ); } &.playback:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-volume-background ), 0.5 ); } &.input:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-input-background ), 0.5 ); } &.disabled { background: if( $bar-menus-monochrome, $bar-menus-buttons-disabled, $bar-menus-menu-dashboard-controls-disabled ); &.wifi:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-wifi-background ), 0.5 ); } &.bluetooth:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-bluetooth-background ), 0.5 ); } &.notifications:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-notifications-background ), 0.5 ); } &.playback:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-volume-background ), 0.5 ); } &.input:hover { background: transparentize( if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-controls-input-background ), 0.5 ); } } } } .directories-container { &.dashboard-card { margin-top: 0em; padding-left: 1.5em; padding-right: 0em; } .directory-link { padding: 0.5em 0em; min-width: 9em; &:last-child { margin-bottom: 0em; } label { font-size: 1.3em; } &.right.top { color: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-directories-right-top-color ); } &.right.middle { color: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-directories-right-middle-color ); } &.right.bottom { color: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-directories-right-bottom-color ); } &.left.top { color: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-directories-left-top-color ); } &.left.middle { color: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-directories-left-middle-color ); } &.left.bottom { color: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-directories-left-bottom-color ); } &:hover { opacity: 0.5; } } } .stats-container { margin-top: 0em; .stat { label { margin-right: 0.75em; font-size: 1.3em; min-width: 1.65em; } &.cpu label { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-dashboard-monitors-cpu-icon); } &.ram label { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-dashboard-monitors-ram-icon); } &.gpu label { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-dashboard-monitors-gpu-icon); } &.storage label { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-dashboard-monitors-disk-icon); } .stats-bar { levelbar * { transition: 200ms; } trough { min-height: 1.05em; } block { border-radius: 0.4em; &.empty { background: if( $bar-menus-monochrome, $bar-menus-progressbar-background, $bar-menus-menu-dashboard-monitors-bar_background ); } &.filled { padding-left: 0.85em; } } } &.cpu .stats-bar block.filled { background: if( $bar-menus-monochrome, $bar-menus-progressbar-foreground, $bar-menus-menu-dashboard-monitors-cpu-bar ); } &.ram .stats-bar block.filled { background: if( $bar-menus-monochrome, $bar-menus-progressbar-foreground, $bar-menus-menu-dashboard-monitors-ram-bar ); } &.gpu .stats-bar block.filled { background: if( $bar-menus-monochrome, $bar-menus-progressbar-foreground, $bar-menus-menu-dashboard-monitors-gpu-bar ); } &.storage .stats-bar block.filled { background: if( $bar-menus-monochrome, $bar-menus-progressbar-foreground, $bar-menus-menu-dashboard-monitors-disk-bar ); } } .stat-value { margin-bottom: 0.5em; font-size: 0.9em; &.cpu { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-dashboard-monitors-cpu-label); } &.ram { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-dashboard-monitors-ram-label); } &.gpu { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-dashboard-monitors-gpu-label); } &.storage { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-dashboard-monitors-disk-label); } } } } .dashboard-content-items > :not(:first-child):not(:last-child) { margin-top: 0; margin-bottom: 0.65em; } .dashboard-content-items > :first-child { margin-top: 1.3em; margin-bottom: 0.65em; } .dashboard-content-items > :last-child { margin-top: 0; margin-bottom: 1.3em; } .dashboard-content-items > :only-child { margin-top: 1.3em; margin-bottom: 1.3em; } ================================================ FILE: .config/ags/scss/style/menus/energy.scss ================================================ .menu-items-container.energy * { font-size: $font-size * $bar-menus-menu-battery-scaling * 0.01; } .menu-items.energy { background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-battery-background-color); border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-battery-border-color); opacity: $bar-menus-opacity * 0.01; font-size: $font-size * $bar-menus-menu-battery-scaling * 0.01; } @import "./menu.scss"; .menu-items-container.energy { min-width: 18em * $bar-menus-menu-battery-scaling * 0.01; .menu-label { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-battery-label-color); } .menu-label-container { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-battery-card-color); } .uptime { font-size: 0.92em; } .menu-items-section { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-battery-card-color); } .power-profile-item { color: if($bar-menus-monochrome, $bar-menus-listitems-passive, $bar-menus-menu-battery-listitems-passive); margin-bottom: 0.5em; label { margin-left: 1em; } image { font-size: 1.3em; min-width: 1em; min-height: 1em; color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-battery-icons-passive); } &:hover { color: if($bar-menus-monochrome, $bar-menus-listitems-active, $bar-menus-menu-battery-listitems-active); label { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-battery-icons-active); } image { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-battery-icons-active); } } &.active { color: if($bar-menus-monochrome, $bar-menus-listitems-active, $bar-menus-menu-battery-listitems-active); image { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-battery-icons-active); } } } .brightness-container { padding-bottom: 1em; } .brightness-slider-icon { font-size: 1.4em; min-width: 1em; min-height: 1em; color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-battery-icons-active); } .brightness-slider-label { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-battery-text); font-size: 0.9em; min-width: 2.5em; font-weight: bold; margin-bottom: 0.2em; } .menu-slider.brightness { trough { background: if($bar-menus-monochrome, $bar-menus-slider-background, $bar-menus-menu-battery-slider-background); highlight, progress { background: if($bar-menus-monochrome, $bar-menus-slider-primary, $bar-menus-menu-battery-slider-primary); } } &:hover { trough { background: if($bar-menus-monochrome, $bar-menus-slider-backgroundhover, $bar-menus-menu-battery-slider-backgroundhover); } slider { background: if($bar-menus-monochrome, $bar-menus-slider-puck, $bar-menus-menu-battery-slider-puck); } } } } ================================================ FILE: .config/ags/scss/style/menus/media.scss ================================================ .menu-items.media { background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-media-background-color); border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-media-border-color); opacity: $bar-menus-opacity * 0.01; } .menu-items-container.media { * { font-size: $font-size * $bar-menus-menu-media-scaling * 0.01; } min-width: 23em * $bar-menus-menu-media-scaling * 0.01; min-height: 10em * $bar-menus-menu-media-scaling * 0.01; .menu-section-container { margin: 1em 0em; } .menu-items-section { border-radius: $bar-menus-card_radius; padding: 0em; } .menu-content { border-radius: 0.4em; background-size: cover; background-position: center; } .media-content { margin: 1em; } .media-indicator-current-song-name { margin-bottom: 0.75rem; } .media-indicator-current-song-author { margin-bottom: 0.75rem; } .media-indicator-current-song-name-label { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-media-song); font-size: 1.35em; } .media-indicator-current-song-author-label { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-media-artist); font-size: 1em; } .media-indicator-current-song-album-label { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-media-album); font-size: 1em; } .media-indicator-current-controls { margin-top: 1.5rem; margin-bottom: 0.5rem; } .media-indicator-control-button { margin: 0rem 0.5rem; } .media-indicator-control-button { background: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-media-buttons-background); color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-media-buttons-text); min-height: 1.8em; min-width: 2.5em; border-radius: 0.2rem; &.disabled { background: if($bar-menus-monochrome, $bar-menus-buttons-disabled, $bar-menus-menu-media-buttons-inactive); } &.enabled { background: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-media-buttons-background); &:hover { background: transparentize( if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-media-buttons-background), 0.5 ); } &.active { background: if( $bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-media-buttons-enabled ); &:hover { background: transparentize( if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-media-buttons-enabled), 0.5 ); } } } } image { font-size: 1.1em; } .menu-slider.media.progress { margin-top: 1em; margin-bottom: 1em; trough { background: if( $bar-menus-monochrome, $bar-menus-slider-background, $bar-menus-menu-media-slider-background ); border-radius: $bar-menus-slider-progress-radius; highlight, progress { border-radius: $bar-menus-slider-progress-radius; min-height: 0.85em; background: if($bar-menus-monochrome, $bar-menus-slider-primary, $bar-menus-menu-media-slider-primary); } } slider { background: if($bar-menus-monochrome, $bar-menus-slider-puck, $bar-menus-menu-media-slider-puck); } &:hover { trough { background: transparentize( if( $bar-menus-monochrome, $bar-menus-slider-backgroundhover, $bar-menus-menu-media-slider-backgroundhover ), 0.3 ); } } } } ================================================ FILE: .config/ags/scss/style/menus/menu.scss ================================================ .menu-slider { trough { border-radius: $bar-menus-slider-progress-radius; background: $surface0; highlight, progress { background: $peach; border-radius: $bar-menus-slider-progress-radius; } } slider { box-shadow: none; background-color: transparent; min-height: 0.6rem; min-width: 0.6rem; border: 0rem solid transparent; border-radius: $bar-menus-slider-slider-radius; } &:hover { trough { background: $surface0; } slider { background: $overlay0; box-shadow: none; } } } .menu-switch { font-size: 1.3em; background-color: $surface0; border-radius: $bar-menus-switch-radius; &:checked { background: $sky; } trough { highlight, progress { background-color: $peach; border-radius: $bar-menus-switch-radius; } } slider { box-shadow: none; background-color: $overlay0; min-height: 1em; min-width: 1em; border: 0em solid transparent; border-radius: $bar-menus-switch-slider-radius; margin: 0.1em 0.15em; } &:hover { trough { background: $surface0; } slider { background: $overlay0; box-shadow: none; } } &:active { background-color: $sky; } } .menu-separator { min-height: 0.1rem; margin: 0.6rem 0rem; background: $surface1; } .menu-items { background: $crust; border: $bar-menus-border-size solid $bar-menus-border-color; border-radius: $bar-menus-border-radius; color: $text; } .menu-items-container { border-radius: 0.4em; font-size: 1.3em; } .menu-section-container { margin: 1em 0em; .menu-label { color: $text; font-size: 1.1em; font-weight: bold; } .menu-label-container { background: $base; border-radius: $bar-menus-card_radius; border-bottom-left-radius: 0em; border-bottom-right-radius: 0em; margin: 0em 1em; min-height: 2em; } &:first-child { margin-bottom: 0em; } &:last-child { margin-top: 0em; } &:nth-child(2) { margin-top: 1em; } .menu-items-section { background: $base; border-radius: $bar-menus-card_radius; border-top-left-radius: 0em; border-top-right-radius: 0em; padding: 0.9em; margin: 0em 1em; } } .menu-active { font-size: 0.9em; font-weight: bold; margin: 0rem 1em; margin-bottom: 0.9em; } .menu-active-container { &:first-child { margin-bottom: 0.5em; } } .menu-active-button { padding: 0.1em; margin-bottom: -0.2em; .menu-active-icon { font-size: 1.4em; font-weight: bold; } &.muted image { color: $maroon; } &:hover image { color: $maroon; } } .menu-active-percentage { font-size: 0.9em; min-width: 2.5em; font-weight: bold; } .menu-active-slider { margin-left: 1rem; margin-right: 1.5rem; } .menu-active-slider * { min-height: 0.85em; border-radius: 0.2em; } .menu-slider-container { margin-bottom: 0.7rem; } .menu-label-dim { color: $overlay0; margin-right: 1rem; font-size: 1em; font-weight: bold; } .menu-icon-button { &:hover { color: $surface2; } } .menu-dropdown-label-container { background: $base; border-radius: 0.4em; } .menu-button { margin-bottom: 0.4em; } .menu-button-name { font-size: 0.95em; font-weight: bold; margin-left: 0.5em; margin-right: 1.2rem; } .menu-button-icon { font-size: 1.3em; font-weight: bold; margin-right: 0.5rem; } .menu-item-box { margin-bottom: 0.5rem; } .dropdown-menu-container { min-height: 10em; } .menu-label { margin: 0.5em 1em; color: $sky; } .event-box-container { min-height: 0em; margin-top: $bar-dropdownGap; } .event-top-padding * { min-height: 0em; margin-top: if($bar-floating and $bar-location == 'top', $bar-margin_top, 0); margin-bottom: if($bar-floating and $bar-location == 'bottom', $bar-margin_bottom, 0); } @keyframes spin { to { -gtk-icon-transform: rotate(1turn); } } image.spinning { animation-name: spin; animation-duration: 1s; animation-timing-function: linear; animation-iteration-count: infinite; } ================================================ FILE: .config/ags/scss/style/menus/network.scss ================================================ .menu-items-container.network * { font-size: $font-size * $bar-menus-menu-network-scaling * 0.01; } @import './menu.scss'; .menu-items.network { background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-network-background-color); border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-network-border-color); opacity: $bar-menus-opacity * 0.01; font-size: $font-size * $bar-menus-menu-network-scaling * 0.01; } .menu-items-container.network { min-width: 18em * $bar-menus-menu-network-scaling * 0.01; font-size: 1.3em; .menu-items-section { padding-bottom: 1.5em; } .menu-label { color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-network-label-color); } .network-icon { font-size: 1.3em; min-width: 1em; min-height: 1em; color: if($bar-menus-monochrome, $bar-menus-icons-passive, $bar-menus-menu-network-icons-passive); &.active { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-network-icons-active); } } .menu-icon-button.network { margin: 1em; } .connection-container { margin-left: 1em; } .connection-status.dim { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text); opacity: 0.5; font-size: 0.9em; } .menu-section-container.wifi { margin-top: 0.65em; .menu-items-section { min-height: 12em; } } .network-element-item { &:not(:last-child) { margin-bottom: 0.5em; } &.staging { margin-bottom: 0.5em; } &:hover { .network-icon { color: if($bar-menus-monochrome, $bar-menus-icons-active, $bar-menus-menu-network-icons-active); opacity: 1; } .active-connection { color: if( $bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active ); } } .active-connection { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text); } .active-connection.dim { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text); opacity: 0.5; } } .spinner.wap { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active); } .network-password-input-container { background: darken(if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color), 5%); color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text); border-radius: 0.4em; margin: 0em 2em; margin-top: 0.75em; padding: 0.5em; } .close-network-password-input-button { padding: 0em 0.5em; &:hover image { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text); opacity: 0.5; } } .menu-icon-button.network.search { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-network-iconbuttons-passive); &:hover { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active); } } .menu-icon-button.network.disconnect { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-passive, $bar-menus-menu-network-iconbuttons-passive); margin: 0em; margin-top: -0.2em; margin-left: 1em; label { font-size: 1.4em; } &:hover { color: if($bar-menus-monochrome, $bar-menus-iconbuttons-active, $bar-menus-menu-network-iconbuttons-active); } } .waps-not-found.dim { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-network-text); opacity: 0.5; } .menu-label-container { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color); } .menu-items-section { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-network-card-color); } .menu-switch.network { background-color: if( $bar-menus-monochrome, $bar-menus-switch-disabled, $bar-menus-menu-network-switch-disabled ); &:checked { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-network-switch-enabled); } slider { background-color: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-network-switch-puck); } &:hover { trough { background: if( $bar-menus-monochrome, $bar-menus-switch-disabled, $bar-menus-menu-network-switch-disabled ); } slider { background: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-network-switch-puck); } } &:active { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-network-switch-enabled); } } } ================================================ FILE: .config/ags/scss/style/menus/notifications.scss ================================================ .notification-menu-content * { font-size: $font-size * $bar-menus-menu-notifications-scaling * 0.01; } .notification-card-container.menu { margin: 0em; min-width: 30.6em * $bar-menus-menu-notifications-scaling * 0.01; min-height: $bar-menus-menu-notifications-height * $bar-menus-menu-notifications-scaling * 0.01; background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-notifications-background); border: $bar-menus-border-size solid if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-notifications-border); border-radius: $bar-menus-border-radius; margin-right: 0.45em; opacity: $bar-menus-opacity * 0.01; .window-content.notificationsmenu-window { margin-right: 0.50em; } .menu-content-container.notifications { margin: 1em; margin-bottom: 0em; min-height: 4em; } .notification-menu-controls { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-notifications-card); margin: 1em 1em; margin-bottom: 0.5em; border-radius: $bar-menus-card_radius; padding: 0.4em 0.75em; } .notification-card.menu { background: $notification-background; min-width: 26.2em * $bar-menus-menu-notifications-scaling * 0.01; font-size: $font-size * $bar-menus-menu-notifications-scaling * 0.01; border: 0.15em solid $notification-border; border-radius: 0em; border-bottom-left-radius: $notification-border_radius; border-top-left-radius: $notification-border_radius; margin: 0em; } .notification-card-content-container { margin-bottom: 0.65em; &:last-child { margin-bottom: 1em; } } .notification-card-content { margin-bottom: 0.25em; } .menu-label.notifications { margin: 0em; font-size: $font-size * $bar-menus-menu-notifications-scaling * 0.01; color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-notifications-label); } .menu-separator.notification-controls { min-width: 0.1em; background-color: if($bar-menus-monochrome, $bar-menus-dropdownmenu-divider, $bar-menus-menu-notifications-switch_divider); margin: 0em 1em; } .menu-switch.notifications { background-color: if($bar-menus-monochrome, $bar-menus-switch-disabled, $bar-menus-menu-notifications-switch-disabled); &:checked { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-notifications-switch-enabled); } slider { background-color: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-notifications-switch-puck); } &:hover { trough { background: if($bar-menus-monochrome, $bar-menus-switch-disabled, $bar-menus-menu-notifications-switch-disabled); } slider { background: if($bar-menus-monochrome, $bar-menus-switch-puck, $bar-menus-menu-notifications-switch-puck); } } &:active { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-notifications-switch-enabled); } } .clear-notifications-button { margin-right: 0.3em; &:hover label:not(.removing) { color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-notifications-clear), 0.5); } } .clear-notifications-label { color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-notifications-clear); font-size: 1.5em; &.removing { color: $bar-menus-buttons-disabled; } } scrollbar { margin-right: 0.2em; min-width: $bar-menus-menu-notifications-scrollbar-width; border-radius: $bar-menus-menu-notifications-scrollbar-radius; background: transparent; slider { min-width: $bar-menus-menu-notifications-scrollbar-width; border-radius: $bar-menus-menu-notifications-scrollbar-radius; background: $bar-menus-menu-notifications-scrollbar-color; } } } .notification-label-container { margin-bottom: 8em; label { color: if($bar-menus-monochrome, $bar-menus-feinttext, $bar-menus-menu-notifications-no_notifications_label); } .bell { font-size: 10em * $bar-menus-menu-notifications-scaling * 0.01; } .message { font-size: 1.5em * $bar-menus-menu-notifications-scaling * 0.01; } } .close-notification-button.menu { background: $notification-close_button-background; color: $notification-close_button-label; min-width: 2.1em; border-radius: 0rem $notification-border_radius $notification-border_radius 0em; label { font-size: 1.5em; } &:hover { background: transparentize($notification-close_button-background , 0.5); } } .notification-menu-pager { background: $bar-menus-menu-notifications-pager-background; border-radius: $bar-menus-border-radius; border-top-left-radius: 0em; border-top-right-radius: 0em; .pager-button { margin: 0em; padding: 0.25em 1em; color: $bar-menus-menu-notifications-pager-button; .pager-button-label { font-size: 2em; } &:hover { .pager-button-label { color: transparentize($bar-menus-menu-notifications-pager-button, 0.4); text-decoration: none; } } } .pager-label { color: $bar-menus-menu-notifications-pager-label; } .disabled { color: transparentize($bar-menus-menu-notifications-pager-button, 0.8); &:hover { .pager-button-label { color: transparentize($bar-menus-menu-notifications-pager-button, 0.8); } } } } ================================================ FILE: .config/ags/scss/style/menus/power.scss ================================================ window#powermenu, window#verification { // the fraction has to be more than hyprland ignorealpha background-color: rgba(0, 0, 0, .4); } $popover-padding: 0.6rem * 1.6; window#verification .verification { * { font-size: $font-size * $bar-menus-menu-dashboard-confirmation_scaling * 0.01; } @include floating-widget; background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-dashboard-powermenu-confirmation-background); border: $bar-menus-border-size solid if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-dashboard-powermenu-confirmation-border); padding: 0.35em * 1.6 * 1.5; min-width: 20em; min-height: 6em; opacity: $bar-menus-opacity * 0.01; .verification-content { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-dashboard-powermenu-confirmation-card); border-radius: $bar-menus-border-radius * 0.5; padding: 1em; } .text-box { margin-bottom: 0.3em; .title { font-size: 1.5em; color: if($bar-menus-monochrome, $bar-menus-label, $bar-menus-menu-dashboard-powermenu-confirmation-label); margin-bottom: 0.5em; } .desc { color: if($bar-menus-monochrome, $bar-menus-text, $bar-menus-menu-dashboard-powermenu-confirmation-body); font-size: 1em; margin-bottom: 0.55em; padding: 1em 3em; } } .verification-button { background: $bar-menus-buttons-default; padding: 0.7em 0em; margin: 0.4em 1.7em; border-radius: $bar-menus-border-radius * 0.5; opacity: 1; transition: border-color 0.2s ease-in-out; transition: opacity .3s ease-in-out; &.bar-verification_yes { background-color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-confirm); } &.bar-verification_no { background-color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-deny); } &:hover { &.bar-verification_yes { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-confirm), 0.6); transition: background-color 0.2s ease-in-out; } &.bar-verification_no { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-deny), 0.6); transition: background-color 0.2s ease-in-out; } } &:focus { &.bar-verification_yes { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-confirm), 0.6); transition: background 0.2s ease-in-out; } &.bar-verification_no { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-deny), 0.6); transition: background 0.2s ease-in-out; } } &:active { &.bar-verification_yes { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-confirm), 0.6); transition: background 0.2s ease-in-out; } &.bar-verification_no { background-color: transparentize(if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-dashboard-powermenu-confirmation-deny), 0.6); transition: background 0.2s ease-in-out; } image { opacity: .3; transition: opacity .3s ease-in-out; } label { opacity: .3; transition: opacity .3s ease-in-out; } } } .bar-verification_no label { color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-dashboard-powermenu-confirmation-button_text); } .bar-verification_yes label { color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-dashboard-powermenu-confirmation-button_text); } } window#powermenu .powermenu { @include floating-widget; &.line { padding: $popover-padding * 1.5; } &.box { padding: $popover-padding * 2; } } .widget-button { border-color: $crust; min-width: 4.5em; min-height: 4.5em; opacity: 1; transition: border-color 0.2s ease-in-out; transition: opacity .3s ease-in-out; &:hover { &.powermenu-button-shutdown { border-color: $red; } &.powermenu-button-logout { border-color: $green; } &.powermenu-button-sleep { border-color: $sky; } &.powermenu-button-reboot { border-color: $peach; } } &:focus { &.powermenu-button-shutdown { border-color: $red; } &.powermenu-button-logout { border-color: $green; } &.powermenu-button-sleep { border-color: $sky; } &.powermenu-button-reboot { border-color: $peach; } } &:active { &.powermenu-button-shutdown { border-color: rgba($red, .5); } &.powermenu-button-logout { border-color: rgba($green, .5); } &.powermenu-button-sleep { border-color: rgba($sky, .5); } &.powermenu-button-reboot { border-color: rgba($peach, .5); } } } .system-button_icon { &.shutdown { color: $red; } &.logout { color: $green; } &.reboot { color: $peach; } &.sleep { color: $sky; } } .system-button_label { &.shutdown { color: $red; } &.logout { color: $green; } &.reboot { color: $peach; } &.sleep { color: $sky; } } ================================================ FILE: .config/ags/scss/style/menus/powerdropdown.scss ================================================ .menu-items-container.power-dropdown * { font-size: $font-size * $bar-menus-menu-power-scaling * 0.01; } @import "./menu.scss"; .menu-items.power-dropdown { background: if($bar-menus-monochrome, $bar-menus-background, $bar-menus-menu-power-background-color); border-color: if($bar-menus-monochrome, $bar-menus-border-color, $bar-menus-menu-power-border-color); opacity: $bar-menus-opacity * 0.01; font-size: $font-size * $bar-menus-menu-power-scaling * 0.01; } .menu-items-container.power-dropdown { &.reboot { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-restart-background); } &.logout { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-logout-background); } &.sleep { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-sleep-background); } min-height: 3.5em * $bar-menus-menu-power-scaling * 0.01; font-size: 1.3em; margin: 1em; .menu-items-section { padding-bottom: 1.5em; } .power-menu-button { border-radius: $bar-menus-border-radius * 0.6; // This doubles the border-radius so it doesn't show up as // an artifact behind the button as that has a radius as well border-top-left-radius: $bar-menus-border-radius * 2; border-bottom-left-radius: $bar-menus-border-radius * 2; &.no-label { // This doubles the border-radius so it doesn't show up as // an artifact behind the button as that has a radius as well border-top-right-radius: $bar-menus-border-radius * 2; border-bottom-right-radius: $bar-menus-border-radius * 2; } &:hover { opacity: 0.4; } &:not(:last-child) { margin-bottom: 1.5em; } .power-button-label { font-size: 1.1em; } &.shutdown { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-shutdown-background); } &.reboot { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-restart-background); } &.logout { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-logout-background); } &.sleep { background: if($bar-menus-monochrome, $bar-menus-cards, $bar-menus-menu-power-buttons-sleep-background); } .show-label { padding-right: 1em; } .no-label { border-top-right-radius: $bar-menus-border-radius * 0.35; border-bottom-right-radius: $bar-menus-border-radius * 0.35; } .shutdown-label { color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-shutdown-text); } .reboot-label { color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-restart-text); } .logout-label { color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-logout-text); } .sleep-label { color: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-sleep-text); } } label:not(.txt-icon) { margin-left: 1em; } label.txt-icon { min-width: 3.75rem * $bar-menus-menu-power-scaling * 0.01; min-height: 3.75rem * $bar-menus-menu-power-scaling * 0.01; background: $red; border-top-left-radius: $bar-menus-border-radius * 0.35; border-bottom-left-radius: $bar-menus-border-radius * 0.35; font-size: 1.75em; &.shutdown-icon { background: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-shutdown-icon_background); color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-power-buttons-shutdown-icon); } &.reboot-icon { background: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-restart-icon_background); color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-power-buttons-restart-icon); } &.logout-icon { background: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-logout-icon_background); color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-power-buttons-logout-icon); } &.sleep-icon { background: if($bar-menus-monochrome, $bar-menus-buttons-default, $bar-menus-menu-power-buttons-sleep-icon_background); color: if($bar-menus-monochrome, $bar-menus-buttons-text, $bar-menus-menu-power-buttons-sleep-icon); } } } ================================================ FILE: .config/ags/scss/style/notifications/popups.scss ================================================ .notification-card { color: $notification-text; background: $notification-background; margin: 0.45em; border: 0.15em solid transparentize($notification-border, 0.5); min-width: 26em; min-height: 6rem; border-radius: $notification-border_radius; opacity: $notification-opacity * 0.01; } .notification-card-container { * { font-size: $font-size * $notification-scaling * 0.01; } padding: 1px; } .notification-card-image-container { margin: 0.65em 0.65em; border-radius: 0.4em; } .notification-card-image { border-radius: 0.4em; min-width: 2.5em; min-height: 2.5em; padding: 0.85em 0.85em; background-size: contain; background-repeat: no-repeat; background-position: center; } .notification-card-content { min-width: 2.9em; min-height: 2.9em; padding: 0.5em 0.5em; margin-right: 0.5rem; margin-bottom: 0.5rem; } .notification-card-content.noimg { margin-left: 0.5em; margin-top: .15em; } .notification-card-header-label { font-size: 0.95em; margin-bottom: 0.5em; color: $notification-label; } .notification-card-body-label { font-size: 0.84em; margin-bottom: 1em; font-weight: 600; } .notification-card-actions { margin-top: 0.25em; margin-bottom: 0.4em; } .notification-action-buttons { color: $notification-actions-text; background: $notification-actions-background; min-width: 4em; min-height: 1.65em; border-radius: 0.2em; &:not(:last-child) { margin-right: 2rem; } &:hover { background: transparentize($notification-actions-background, 0.6); } } .notification-icon { color: $notification-labelicon; margin-bottom: 0.4em; min-width: 1em; min-height: 1em; font-size: 1.3em; } .notification-time { font-size: 0.85em; color: $notification-time; } .close-notification-button { background: $notification-close_button-background; color: $notification-close_button-label; min-width: 2.1em; border-radius: 0rem $notification-border_radius*0.7 $notification-border_radius*0.7 0em; label { font-size: 1.5em; } &:hover { background: transparentize($notification-close_button-background, 0.5); } } ================================================ FILE: .config/ags/scss/style/osd/index.scss ================================================ .indicator { * { font-size: $font-size * $osd-scaling * 0.01; } .osd-container { margin: $osd-margins; opacity: $osd-opacity * 0.01; } .osd-label-container { background: $osd-bar_container; border-radius: if($osd-orientation =="vertical", $osd-radius $osd-radius 0em 0em, 0em $osd-radius $osd-radius 0em); .osd-label { font-size: 1em; padding-top: if($osd-orientation =="vertical", 1em, 0em); padding-right: if($osd-orientation =="horizontal", 1em, 0em); color: $osd-label; &.overflow { color: $osd-bar_overflow_color; } } } .osd-icon-container { background: $osd-icon_container; border-radius: if($osd-orientation =="vertical", 0em 0em $osd-radius $osd-radius, $osd-radius 0em 0em $osd-radius ); .osd-icon { font-size: 2.1em; padding: if($osd-orientation =="vertical", 0.2em 0em, 0em 0.4em); color: $osd-icon; } } .osd-bar-container { padding: 1.25em; background: $osd-bar_container; .osd-bar { levelbar * { transition: 200ms; } trough { min-height: if($osd-orientation =="vertical", 10em, 0); min-width: if($osd-orientation =="horizontal", 10em, 0); } block { border-radius: $osd-radius * 0.5; &.empty { background: $osd-bar_empty_color; } &.filled { background: $osd-bar_color; padding: 0.45em; } } &.overflow { block { &.empty { background: $osd-bar_color; } &.filled { background: $osd-bar_overflow_color; } } } } } } ================================================ FILE: .config/ags/scss/style/settings/dialog.scss ================================================ window.settings-dialog { opacity: $bar-menus-opacity * 0.01; background-color: $bar-menus-cards; color: $bar-menus-text; $widget-bg: $bar-menus-cards; $border: none; $fg: $bar-menus-text; .settings-dialog-box { min-width: 75em; } .header { background-color: transparentize($bar-menus-background, 0.1); border-bottom-left-radius: $bar-menus-border-radius * 0.5; border-bottom-right-radius: $bar-menus-border-radius * 0.5; padding: $padding; button { font-weight: bold; } button.close { color: $bar-menus-iconbuttons-passive; image { font-size: 2em; } &:hover { color: $bar-menus-buttons-active; } } button.reset { color: $bar-menus-iconbuttons-passive; padding: $padding*.5; image { font-size: 1.25em; } &:hover { color: $bar-menus-buttons-active; } } } .page { .page-content { padding: $padding*2; padding-top: 0; } } .group { .group-title { color: $bar-menus-text; margin-bottom: $spacing*.5; } .group-reset { margin: $spacing * .5; padding: $padding * .5; &:disabled { color: transparent; } } &:not(:first-child) { margin-top: $spacing; } } .row { background-color: $widget-bg; padding: $padding; border: $border; border-top: none; &:first-child { border-radius: $radius $radius 0em 0em; border: $border; } &:last-child { border-radius: 0em 0em $radius $radius; } &:first-child:last-child { border-radius: $radius; border: $border; } button.reset { margin-left: $spacing; } label.id, label.note { color: transparentize($fg, .4) } entry, button { padding: $padding; } spinbutton { entry { border-radius: $radius 0em 0em $radius; } button { border-radius: 0em; } button:last-child { border-radius: 0em $radius $radius 0em; } } .enum-setter { label { background-color: $widget-bg; border: $border; padding: 0em $padding; border-radius: $radius 0em 0em $radius; } button { border-radius: 0em; } button:last-child { border-radius: 0em $radius $radius 0em; } } &.wallpaper { button { margin-top: $spacing * .5; } .preview { border-radius: $radius; } } } } .option-item { margin: 0em 2em; margin-bottom: 1em; .reset { color: $bar-menus-iconbuttons-passive; } .options-label { color: $bar-menus-text; } .options-sublabel { font-size: 0.75em; margin-top: 0.2em; color: $bar-menus-dimtext; } .options-sublabel-link { label { font-size: 0.75em; margin-top: 0.2em; color: $bar-menus-dimtext; } &:hover label { color: $bar-menus-listitems-active; } } .inputter-container { border-radius: $bar-menus-border-radius * 0.5; :first-child { border-radius: $bar-menus-border-radius * 0.5; } padding: 0.35em 0.35em; background: transparentize($bar-menus-background, 0.6); margin-right: 1em; } } .options-header { margin: 1em 1em; .label-name { color: $bar-menus-label; font-size: 0.9em; margin-right: 0.5em; } } .pager-button { color: transparentize($bar-menus-text, 0.4); margin: 0.5em 0.75em; &.category label { font-size: 1.4em; } &:hover { label { text-decoration: underline; color: $bar-menus-text; } } &.active { label { text-decoration: underline; color: $bar-menus-text; } } } .bar-theme-page { min-height: 40em; } .settings-menu-stack { background: $red; } .paged-container { .reset-options { color: $bar-menus-text; image:disabled { color: $bar-menus-buttons-disabled; } &:hover { image { color: transparentize($bar-menus-text, 0.5); } } } scrollbar { margin-right: 0.2em; min-width: 0.6em; border-radius: $bar-menus-border-radius; background: $bar-menus-background; slider { min-width: 0.6em; border-radius: $bar-menus-border-radius; background: $bar-menus-buttons-default; } } selection { background: $bar-menus-label; color: $bar-menus-cards; } switch { font-size: 10px; &:checked { background: $bar-menus-switch-enabled; } slider { background-color: $bar-menus-switch-puck; } &:active { background: if($bar-menus-monochrome, $bar-menus-switch-enabled, $bar-menus-menu-bluetooth-switch-enabled); } } entry { min-width: 15em; } } dialog { background: $bar-menus-cards; color: $bar-menus-text; :selected { background: transparentize($bar-menus-label, 0.2); color: transparentize($bar-menus-cards, 0.2); } headerbar { border-bottom: 0.075em solid $bar-menus-border-color; background: $bar-menus-cards; padding: 0.5em; font-size: 1.5em; button { color: $bar-menus-buttons-text; min-width: 4.5em; min-height: 2.5em; border-radius: $bar-menus-border-radius; background: $bar-menus-buttons-default; &:hover { background: transparentize($bar-menus-buttons-default, 0.5); } } } viewport { border-right: .25em solid $bar-menus-border-color; list { row { padding: 0em 1.5em; &:hover { background: $bar-menus-buttons-default; color: $bar-menus-buttons-text; } label { margin: 0.5em 0.5em; font-size: 0.85em; } } } } stack { .horizontal .path-bar { button { background: $bar-menus-iconbuttons-active; min-width: 3em; min-height: 2em; border-radius: $bar-menus-border-radius * 0.5; &:disabled { background: $bar-menus-buttons-disabled; } &:hover { background: transparentize($bar-menus-buttons-active, 0.5); } label { margin: 0em 0.25em; color: $bar-menus-buttons-text } image { margin: 0em 0.5em; color: $bar-menus-buttons-text } margin: 0.25em; } } } treeview header button { padding: 0.25em; border: .15em solid $bar-menus-border-color; } headerbar { color: $bar-menus-label; } } .unsaved-icon { margin-right: 1em; font-size: 1em; color: $yellow; } .options-import, .options-export { border-radius: $bar-menus-border-radius * 0.5; color: $bar-menus-buttons-text; padding: 0.35em 0.35em; background: $bar-menus-buttons-default; margin-right: 1em; margin-left: 0.5em; &:hover { background: transparentize($bar-menus-buttons-default, 0.8); } } .options-import { margin-right: 0em; } ================================================ FILE: .config/ags/scss/style.ts ================================================ import options from 'options'; import { bash, dependencies } from 'lib/utils'; import { MatugenColors, RecursiveOptionsObject } from 'lib/types/options'; import { initializeTrackers } from './optionsTrackers'; import { generateMatugenColors, replaceHexValues } from '../services/matugen/index'; import { isHexColor } from 'globals/variables'; const deps = ['font', 'theme', 'bar.flatButtons', 'bar.position', 'bar.battery.charging', 'bar.battery.blocks']; function extractVariables(theme: RecursiveOptionsObject, prefix = '', matugenColors?: MatugenColors): string[] { let result = [] as string[]; for (const key in theme) { if (!theme.hasOwnProperty(key)) { continue; } const themeValue = theme[key]; const newPrefix = prefix ? `${prefix}-${key}` : key; const replacedValue = isHexColor(themeValue.value) && matugenColors !== undefined ? replaceHexValues(themeValue.value, matugenColors) : themeValue.value; if (typeof themeValue === 'function') { result.push(`$${newPrefix}: ${replacedValue};`); continue; } if (typeof themeValue !== 'object' || themeValue === null || Array.isArray(themeValue)) continue; if (typeof themeValue.value !== 'undefined') { result.push(`$${newPrefix}: ${replacedValue};`); } else { result = result.concat(extractVariables(themeValue, newPrefix, matugenColors)); } } return result; } const resetCss = async (): Promise => { if (!dependencies('sass')) return; try { const matugenColors = await generateMatugenColors(); const variables = extractVariables(options.theme as RecursiveOptionsObject, '', matugenColors); const vars = `${TMP}/variables.scss`; const css = `${TMP}/main.css`; const scss = `${TMP}/entry.scss`; const localScss = `${App.configDir}/scss/main.scss`; const themeVariables = variables; const integratedVariables = themeVariables; const imports = [vars].map((f) => `@import '${f}';`); await Utils.writeFile(integratedVariables.join('\n'), vars); let mainScss = Utils.readFile(localScss); mainScss = `${imports}\n${mainScss}`; await Utils.writeFile(mainScss, scss); await bash(`sass --load-path=${App.configDir}/scss/ ${scss} ${css}`); App.applyCss(css, true); } catch (error) { console.error(error); } }; initializeTrackers(resetCss); Utils.monitorFile(`${App.configDir}/scss/style`, resetCss); options.handler(deps, resetCss); await resetCss(); ================================================ FILE: .config/ags/services/Brightness.ts ================================================ // <3 Aylur for this brightness service import { bash, dependencies, sh } from 'lib/utils'; if (!dependencies('brightnessctl')) App.quit(); const get = (args: string): number => Number(Utils.exec(`brightnessctl ${args}`)); const screen = await bash`ls -w1 /sys/class/backlight | head -1`; const kbd = await bash`ls -w1 /sys/class/leds | grep '::kbd_backlight$' | head -1`; class Brightness extends Service { static { Service.register( this, {}, { screen: ['float', 'rw'], kbd: ['int', 'rw'], }, ); } #kbdMax = get(`--device ${kbd} max`); #kbd = get(`--device ${kbd} get`); #screenMax = get(`--device ${screen} max`); #screen = get(`--device ${screen} get`) / (get(`--device ${screen} max`) || 1); get kbd(): number { return this.#kbd; } get screen(): number { return this.#screen; } set kbd(value) { if (value < 0 || value > this.#kbdMax) return; sh(`brightnessctl -d ${kbd} s ${value} -q`).then(() => { this.#kbd = value; this.changed('kbd'); }); } set screen(percent) { if (percent < 0) percent = 0; if (percent > 1) percent = 1; sh(`brightnessctl set ${Math.round(percent * 100)}% -d ${screen} -q`).then(() => { this.#screen = percent; this.changed('screen'); }); } constructor() { super(); const screenPath = `/sys/class/backlight/${screen}/brightness`; const kbdPath = `/sys/class/leds/${kbd}/brightness`; Utils.monitorFile(screenPath, async (f) => { const v = await Utils.readFileAsync(f); this.#screen = Number(v) / this.#screenMax; this.changed('screen'); }); Utils.monitorFile(kbdPath, async (f) => { const v = await Utils.readFileAsync(f); this.#kbd = Number(v) / this.#kbdMax; this.changed('kbd'); }); } } export default new Brightness(); ================================================ FILE: .config/ags/services/Cpu.ts ================================================ // TODO: Convert to a real service // @ts-expect-error: This import is a special directive that tells the compiler to use the GTop library import GTop from 'gi://GTop'; import { pollVariable } from 'customModules/PollVar'; class Cpu { private updateFrequency = Variable(2000); public cpu = Variable(0); private previousCpuData = new GTop.glibtop_cpu(); constructor() { GTop.glibtop_get_cpu(this.previousCpuData); this.calculateUsage = this.calculateUsage.bind(this); pollVariable(this.cpu, [], this.updateFrequency.bind('value'), this.calculateUsage); } public calculateUsage(): number { const currentCpuData = new GTop.glibtop_cpu(); GTop.glibtop_get_cpu(currentCpuData); // Calculate the differences from the previous to current data const totalDiff = currentCpuData.total - this.previousCpuData.total; const idleDiff = currentCpuData.idle - this.previousCpuData.idle; const cpuUsagePercentage = totalDiff > 0 ? ((totalDiff - idleDiff) / totalDiff) * 100 : 0; this.previousCpuData = currentCpuData; return cpuUsagePercentage; } public updateTimer(timerInMs: number): void { this.updateFrequency.value = timerInMs; } } export default Cpu; ================================================ FILE: .config/ags/services/Ram.ts ================================================ // TODO: Convert to a real service const GLib = imports.gi.GLib; import { pollVariable } from 'customModules/PollVar'; import { GenericResourceData } from 'lib/types/customModules/generic'; class Ram { private updateFrequency = Variable(2000); private shouldRound = false; public ram = Variable({ total: 0, used: 0, percentage: 0, free: 0 }); constructor() { this.calculateUsage = this.calculateUsage.bind(this); pollVariable(this.ram, [], this.updateFrequency.bind('value'), this.calculateUsage); } public calculateUsage(): GenericResourceData { try { const [success, meminfoBytes] = GLib.file_get_contents('/proc/meminfo'); if (!success || !meminfoBytes) { throw new Error('Failed to read /proc/meminfo or file content is null.'); } const meminfo = new TextDecoder('utf-8').decode(meminfoBytes); const totalMatch = meminfo.match(/MemTotal:\s+(\d+)/); const availableMatch = meminfo.match(/MemAvailable:\s+(\d+)/); if (!totalMatch || !availableMatch) { throw new Error('Failed to parse /proc/meminfo for memory values.'); } const totalRamInBytes = parseInt(totalMatch[1], 10) * 1024; const availableRamInBytes = parseInt(availableMatch[1], 10) * 1024; let usedRam = totalRamInBytes - availableRamInBytes; usedRam = isNaN(usedRam) || usedRam < 0 ? 0 : usedRam; return { percentage: this.divide([totalRamInBytes, usedRam]), total: totalRamInBytes, used: usedRam, free: availableRamInBytes, }; } catch (error) { console.error('Error calculating RAM usage:', error); return { total: 0, used: 0, percentage: 0, free: 0 }; } } public setShouldRound(round: boolean): void { this.shouldRound = round; } private divide([total, used]: number[]): number { const percentageTotal = (used / total) * 100; if (this.shouldRound) { return total > 0 ? Math.round(percentageTotal) : 0; } return total > 0 ? parseFloat(percentageTotal.toFixed(2)) : 0; } updateTimer(timerInMs: number): void { this.updateFrequency.value = timerInMs; } } export default Ram; ================================================ FILE: .config/ags/services/Storage.ts ================================================ // TODO: Convert to a real service // @ts-expect-error: This import is a special directive that tells the compiler to use the GTop library import GTop from 'gi://GTop'; import { pollVariable } from 'customModules/PollVar'; import { GenericResourceData } from 'lib/types/customModules/generic'; class Storage { private updateFrequency = Variable(2000); private shouldRound = false; public storage = Variable({ total: 0, used: 0, percentage: 0, free: 0 }); constructor() { this.calculateUsage = this.calculateUsage.bind(this); pollVariable(this.storage, [], this.updateFrequency.bind('value'), this.calculateUsage); } public calculateUsage(): GenericResourceData { try { const currentFsUsage = new GTop.glibtop_fsusage(); GTop.glibtop_get_fsusage(currentFsUsage, '/'); const total = currentFsUsage.blocks * currentFsUsage.block_size; const available = currentFsUsage.bavail * currentFsUsage.block_size; const used = total - available; return { total, used, free: available, percentage: this.divide([total, used]), }; } catch (error) { console.error('Error calculating Storage usage:', error); return { total: 0, used: 0, percentage: 0, free: 0 }; } } public setShouldRound(round: boolean): void { this.shouldRound = round; } private divide([total, used]: number[]): number { const percentageTotal = (used / total) * 100; if (this.shouldRound) { return total > 0 ? Math.round(percentageTotal) : 0; } return total > 0 ? parseFloat(percentageTotal.toFixed(2)) : 0; } public updateTimer(timerInMs: number): void { this.updateFrequency.value = timerInMs; } } export default Storage; ================================================ FILE: .config/ags/services/Wallpaper.ts ================================================ import { dependencies, sh } from 'lib/utils'; import options from 'options'; const hyprland = await Service.import('hyprland'); const WP = `${Utils.HOME}/.config/background`; class Wallpaper extends Service { static { Service.register( this, {}, { wallpaper: ['string'], }, ); } #blockMonitor = false; #isRunning = false; #wallpaper(): void { if (!dependencies('swww')) return; hyprland.monitors.map((m) => m.name); sh('hyprctl cursorpos').then((pos) => { sh([ 'swww', 'img', '--invert-y', '--transition-type', 'grow', '--transition-duration', '1.5', '--transition-fps', '30', '--transition-pos', pos.replace(' ', ''), WP, ]).then(() => { this.changed('wallpaper'); }); }); } async #setWallpaper(path: string): Promise { this.#blockMonitor = true; await sh(`cp ${path} ${WP}`); this.#wallpaper(); this.#blockMonitor = false; } readonly set = (path: string): void => { this.#setWallpaper(path); }; readonly isRunning = (): boolean => { return this.#isRunning; }; get wallpaper(): string { return WP; } constructor() { super(); options.wallpaper.enable.connect('changed', () => { if (options.wallpaper.enable.value) { this.#isRunning = true; Utils.execAsync('swww-daemon') .then(() => { this.#wallpaper(); }) .catch(() => null); } else { this.#isRunning = false; Utils.execAsync('pkill swww-daemon').catch(() => null); } }); if (!dependencies('swww') || !options.wallpaper.enable.value) return this; this.#isRunning = true; Utils.monitorFile(WP, () => { if (!this.#blockMonitor) this.#wallpaper(); }); Utils.execAsync('swww-daemon') .then(() => { this.#wallpaper(); }) .catch(() => null); } } export default new Wallpaper(); ================================================ FILE: .config/ags/services/bluetooth.py ================================================ #!/usr/bin/env python3 import dbus import dbus.service import dbus.mainloop.glib from gi.repository import GLib import subprocess import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') AGENT_PATH = "/test/agent" CAPABILITY = "NoInputNoOutput" def send_notification_with_actions(title, message, actions, action_handler): bus = dbus.SessionBus() notification_object = bus.get_object("org.freedesktop.Notifications", "/org/freedesktop/Notifications") notify_interface = dbus.Interface(notification_object, "org.freedesktop.Notifications") bus.add_signal_receiver(action_handler, dbus_interface="org.freedesktop.Notifications", signal_name="ActionInvoked") notify_interface.Notify("bluetooth_agent", 0, "", title, message, actions, {}, -1) class Agent(dbus.service.Object): def __init__(self, bus): dbus.service.Object.__init__(self, bus, AGENT_PATH) @dbus.service.method("org.bluez.Agent1", in_signature="", out_signature="") def Release(self): logging.info("Release") def get_device_name(self, device): bus = dbus.SystemBus() device_proxy = bus.get_object("org.bluez", device) device_properties = dbus.Interface(device_proxy, "org.freedesktop.DBus.Properties") return device_properties.Get("org.bluez.Device1", "Name") @dbus.service.method("org.bluez.Agent1", in_signature="o", out_signature="") def RequestPinCode(self, device): device_name = self.get_device_name(device) logging.info(f"RequestPinCode {device_name} ({device})") self.request_input("Enter PIN code", f"Enter PIN code for device {device_name}", device, "pin") @dbus.service.method("org.bluez.Agent1", in_signature="o", out_signature="u") def RequestPasskey(self, device): device_name = self.get_device_name(device) logging.info(f"RequestPasskey {device_name} ({device})") self.request_input("Enter Passkey", f"Enter passkey for device {device_name}", device, "passkey") @dbus.service.method("org.bluez.Agent1", in_signature="ou", out_signature="") def DisplayPasskey(self, device, passkey): device_name = self.get_device_name(device) logging.info(f"DisplayPasskey {device_name} passkey {passkey}") send_notification_with_actions("Bluetooth Pairing Request", f"Passkey for device {device_name} is {passkey}", [], lambda *args: None) @dbus.service.method("org.bluez.Agent1", in_signature="ou", out_signature="") def RequestConfirmation(self, device, passkey): device_name = self.get_device_name(device) logging.info(f"RequestConfirmation {device_name} passkey {passkey}") actions = ["confirm", "Confirm", "deny", "Deny"] def action_handler(notification_id, action_key): if action_key == "confirm": logging.info(f"Confirmed pairing for {device_name}") self.send_reply(device) elif action_key == "deny": logging.info(f"Denied pairing for {device_name}") self.send_error(device, "org.bluez.Error.Rejected") send_notification_with_actions("Bluetooth Pairing Request", f"Confirm passkey {passkey} for device {device_name}", actions, action_handler) return @dbus.service.method("org.bluez.Agent1", in_signature="o", out_signature="") def RequestAuthorization(self, device): device_name = self.get_device_name(device) logging.info(f"RequestAuthorization {device_name}") actions = ["confirm", "Confirm", "deny", "Deny"] def action_handler(notification_id, action_key): if action_key == "confirm": logging.info(f"Authorized device {device_name}") self.send_reply(device) elif action_key == "deny": logging.info(f"Denied authorization for {device_name}") self.send_error(device, "org.bluez.Error.Rejected") send_notification_with_actions("Bluetooth Service Authorization", f"Authorize device {device_name}", actions, action_handler) return @dbus.service.method("org.bluez.Agent1", in_signature="os", out_signature="") def AuthorizeService(self, device, uuid): device_name = self.get_device_name(device) logging.info(f"AuthorizeService {device_name} uuid {uuid}") actions = ["confirm", "Confirm", "deny", "Deny"] def action_handler(notification_id, action_key): if action_key == "confirm": logging.info(f"Authorized service {uuid} for device {device_name}") self.send_reply(device) elif action_key == "deny": logging.info(f"Denied authorization for service {uuid} on device {device_name}") self.send_error(device, "org.bluez.Error.Rejected") send_notification_with_actions("Bluetooth Service Authorization", f"Authorize service {uuid} for device {device_name}", actions, action_handler) return @dbus.service.method("org.bluez.Agent1", in_signature="", out_signature="") def Cancel(self): logging.info("Cancel") def request_input(self, title, message, device, input_type): def action_handler(notification_id, action_key): if action_key == "input": result = subprocess.run(["zenity", "--entry", "--title", title, "--text", message], capture_output=True, text=True) user_input = result.stdout.strip() if input_type == "pin": self.handle_pin_input(device, user_input) elif input_type == "passkey": self.handle_passkey_input(device, user_input) elif action_key == "cancel": self.send_error(device, "org.bluez.Error.Rejected") actions = ["input", "Enter", "cancel", "Cancel"] send_notification_with_actions(title, message, actions, action_handler) def handle_pin_input(self, device, pin_code): logging.info(f"PIN code entered for {device}: {pin_code}") self.send_reply(device) def handle_passkey_input(self, device, passkey): logging.info(f"Passkey entered for {device}: {passkey}") self.send_reply(device) def send_reply(self, device): logging.info(f"Sending reply for {device}") bus = dbus.SystemBus() agent = bus.get_object("org.bluez", device) agent_interface = dbus.Interface(agent, "org.bluez.Device1") agent_interface.Pair(reply_handler=self.success_callback, error_handler=self.error_callback) def send_error(self, device, error): logging.info(f"Sending error for {device}") bus = dbus.SystemBus() agent = bus.get_object("org.bluez", device) agent_interface = dbus.Interface(agent, "org.bluez.Device1") agent_interface.CancelPairing(reply_handler=self.success_callback, error_handler=self.error_callback) def success_callback(self): logging.info("Operation succeeded") def error_callback(self, error): logging.error(f"Operation failed: {error}") def register_agent(): bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object("org.bluez", "/org/bluez"), "org.bluez.AgentManager1") path = AGENT_PATH agent = Agent(bus) manager.RegisterAgent(path, CAPABILITY) manager.RequestDefaultAgent(path) logging.info("Agent registered") if __name__ == "__main__": dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) register_agent() loop = GLib.MainLoop() loop.run() ================================================ FILE: .config/ags/services/matugen/index.ts ================================================ import { defaultColorMap } from 'lib/types/defaults/options'; import { ColorMapValue, ColorMapKey, HexColor, MatugenColors } from 'lib/types/options'; import { getMatugenVariations } from './variations'; import { bash, dependencies, Notify, isAnImage } from 'lib/utils'; import options from 'options'; import icons from 'lib/icons'; import { Variable } from 'types/variable'; const { scheme_type, contrast } = options.theme.matugen_settings; const { matugen } = options.theme; const updateOptColor = (color: HexColor, opt: Variable): void => { opt.value = color; }; export async function generateMatugenColors(): Promise { if (!matugen.value || !dependencies('matugen')) { return; } const wallpaperPath = options.wallpaper.image.value; try { if (!wallpaperPath.length || !isAnImage(wallpaperPath)) { Notify({ summary: 'Matugen Failed', body: "Please select a wallpaper in 'Theming > General' first.", iconName: icons.ui.warning, timeout: 7000, }); return; } const normalizedContrast = contrast.value > 1 ? 1 : contrast.value < -1 ? -1 : contrast.value; const contents = await bash( `matugen image ${wallpaperPath} -t scheme-${scheme_type.value} --contrast ${normalizedContrast} --json hex`, ); return JSON.parse(contents).colors[options.theme.matugen_settings.mode.value]; } catch (error) { const errMsg = `An error occurred while generating matugen colors: ${error}`; console.error(errMsg); return; } } const isColorValid = (color: string): color is ColorMapKey => { return defaultColorMap.hasOwnProperty(color); }; export const replaceHexValues = (incomingHex: HexColor, matugenColors: MatugenColors): HexColor => { if (!options.theme.matugen.value) { return incomingHex; } const matugenVariation = getMatugenVariations(matugenColors, options.theme.matugen_settings.variation.value); updateOptColor(matugenVariation.base, options.theme.bar.menus.menu.media.card.color as Variable); for (const curColor of Object.keys(defaultColorMap)) { const currentColor: string = curColor; if (!isColorValid(currentColor)) { continue; } const curColorValue: ColorMapValue = defaultColorMap[currentColor]; if (curColorValue === incomingHex) { return matugenVariation[currentColor]; } } return incomingHex; }; ================================================ FILE: .config/ags/services/matugen/variations.ts ================================================ import { MatugenColors, MatugenVariation, MatugenVariations } from 'lib/types/options'; /* * NOTE: This maps the values of the default colors to the values generated by Matugen. * Each of the variations are carefully tested and curated to make sure that colors don't * have weird luminocity overlaps (light on light, dark on dark). */ export const getMatugenVariations = (matugenColors: MatugenColors, variation: MatugenVariations): MatugenVariation => { const matVtns = { standard_1: { rosewater: matugenColors.secondary, flamingo: matugenColors.secondary, pink: matugenColors.tertiary, mauve: matugenColors.primary, red: matugenColors.tertiary, maroon: matugenColors.primary, peach: matugenColors.tertiary, yellow: matugenColors.secondary, green: matugenColors.primary, teal: matugenColors.secondary, sky: matugenColors.secondary, sapphire: matugenColors.primary, blue: matugenColors.primary, lavender: matugenColors.primary, text: matugenColors.on_background, subtext1: matugenColors.outline, subtext2: matugenColors.outline, overlay2: matugenColors.outline, overlay1: matugenColors.outline, overlay0: matugenColors.outline, surface2: matugenColors.outline, surface1: matugenColors.surface_bright, surface0: matugenColors.surface_bright, base2: matugenColors.inverse_on_surface, base: matugenColors.inverse_on_surface, mantle: matugenColors.surface_dim, crust: matugenColors.surface_dim, notifications_closer: matugenColors.primary, notifications_background: matugenColors.surface_dim, dashboard_btn_text: matugenColors.surface_dim, red2: matugenColors.tertiary, peach2: matugenColors.tertiary, pink2: matugenColors.tertiary, mantle2: matugenColors.surface_dim, surface1_2: matugenColors.inverse_on_surface, surface0_2: matugenColors.surface_bright, overlay1_2: matugenColors.outline, text2: matugenColors.on_background, lavender2: matugenColors.primary, crust2: matugenColors.surface_dim, maroon2: matugenColors.primary, mauve2: matugenColors.primary, green2: matugenColors.primary, surface2_2: matugenColors.surface, sky2: matugenColors.secondary, teal2: matugenColors.secondary, yellow2: matugenColors.secondary, pink3: matugenColors.tertiary, red3: matugenColors.secondary, mantle3: matugenColors.inverse_on_surface, surface0_3: matugenColors.outline, surface2_3: matugenColors.outline, overlay1_3: matugenColors.outline, lavender3: matugenColors.primary, mauve3: matugenColors.primary, green3: matugenColors.primary, sky3: matugenColors.secondary, teal3: matugenColors.secondary, yellow3: matugenColors.secondary, maroon3: matugenColors.primary, crust3: matugenColors.surface_dim, }, standard_2: { rosewater: matugenColors.primary, flamingo: matugenColors.primary, pink: matugenColors.tertiary, mauve: matugenColors.secondary, red: matugenColors.tertiary, maroon: matugenColors.secondary, peach: matugenColors.tertiary, yellow: matugenColors.primary, green: matugenColors.secondary, teal: matugenColors.primary, sky: matugenColors.primary, sapphire: matugenColors.secondary, blue: matugenColors.secondary, lavender: matugenColors.secondary, text: matugenColors.on_background, subtext1: matugenColors.outline, subtext2: matugenColors.outline, overlay2: matugenColors.outline, overlay1: matugenColors.outline, overlay0: matugenColors.outline, surface2: matugenColors.outline, surface1: matugenColors.surface_bright, surface0: matugenColors.surface_bright, base2: matugenColors.inverse_on_surface, base: matugenColors.inverse_on_surface, mantle: matugenColors.surface_dim, crust: matugenColors.surface_dim, notifications_closer: matugenColors.tertiary, notifications_background: matugenColors.surface_dim, dashboard_btn_text: matugenColors.surface_dim, red2: matugenColors.tertiary, peach2: matugenColors.tertiary, pink2: matugenColors.tertiary, mantle2: matugenColors.surface_dim, surface1_2: matugenColors.inverse_on_surface, surface0_2: matugenColors.surface_bright, overlay1_2: matugenColors.outline, text2: matugenColors.on_background, lavender2: matugenColors.secondary, crust2: matugenColors.surface_dim, maroon2: matugenColors.secondary, surface2_2: matugenColors.surface, mauve2: matugenColors.secondary, green2: matugenColors.secondary, sky2: matugenColors.primary, teal2: matugenColors.primary, yellow2: matugenColors.primary, pink3: matugenColors.tertiary, red3: matugenColors.secondary, mantle3: matugenColors.inverse_on_surface, surface0_3: matugenColors.outline, surface2_3: matugenColors.outline, overlay1_3: matugenColors.outline, lavender3: matugenColors.secondary, mauve3: matugenColors.secondary, green3: matugenColors.secondary, sky3: matugenColors.primary, teal3: matugenColors.primary, yellow3: matugenColors.primary, maroon3: matugenColors.secondary, crust3: matugenColors.surface_dim, }, standard_3: { rosewater: matugenColors.secondary, flamingo: matugenColors.secondary, pink: matugenColors.secondary, mauve: matugenColors.primary, red: matugenColors.secondary, maroon: matugenColors.primary, peach: matugenColors.secondary, yellow: matugenColors.secondary, green: matugenColors.primary, teal: matugenColors.secondary, sky: matugenColors.secondary, sapphire: matugenColors.primary, blue: matugenColors.primary, lavender: matugenColors.primary, text: matugenColors.on_background, subtext1: matugenColors.outline, subtext2: matugenColors.outline, overlay2: matugenColors.outline, overlay1: matugenColors.outline, overlay0: matugenColors.outline, surface2: matugenColors.outline, surface1: matugenColors.surface_bright, surface0: matugenColors.surface_bright, base2: matugenColors.inverse_on_surface, base: matugenColors.inverse_on_surface, mantle: matugenColors.surface_dim, crust: matugenColors.surface_dim, notifications_closer: matugenColors.secondary, notifications_background: matugenColors.surface_dim, dashboard_btn_text: matugenColors.surface_dim, red2: matugenColors.secondary, peach2: matugenColors.secondary, pink2: matugenColors.secondary, mantle2: matugenColors.surface_dim, surface1_2: matugenColors.inverse_on_surface, surface0_2: matugenColors.surface_bright, surface2_2: matugenColors.surface, overlay1_2: matugenColors.outline, text2: matugenColors.on_background, lavender2: matugenColors.primary, crust2: matugenColors.surface_dim, maroon2: matugenColors.primary, mauve2: matugenColors.primary, green2: matugenColors.primary, sky2: matugenColors.secondary, teal2: matugenColors.secondary, yellow2: matugenColors.secondary, pink3: matugenColors.secondary, red3: matugenColors.secondary, mantle3: matugenColors.inverse_on_surface, surface0_3: matugenColors.outline, surface2_3: matugenColors.outline, overlay1_3: matugenColors.outline, lavender3: matugenColors.primary, mauve3: matugenColors.primary, green3: matugenColors.primary, sky3: matugenColors.secondary, teal3: matugenColors.secondary, yellow3: matugenColors.secondary, maroon3: matugenColors.primary, crust3: matugenColors.surface_dim, }, vivid_1: { rosewater: matugenColors.surface, flamingo: matugenColors.surface, pink: matugenColors.surface, mauve: matugenColors.surface, red: matugenColors.surface, maroon: matugenColors.surface, peach: matugenColors.surface, yellow: matugenColors.surface, green: matugenColors.surface, teal: matugenColors.surface, sky: matugenColors.surface, sapphire: matugenColors.surface, blue: matugenColors.surface, lavender: matugenColors.surface, text: matugenColors.surface, subtext1: matugenColors.primary_container, subtext2: matugenColors.primary_container, overlay2: matugenColors.primary_container, overlay1: matugenColors.primary_container, overlay0: matugenColors.primary_container, surface2: matugenColors.surface_container_high, surface1: matugenColors.surface_container_high, surface0: matugenColors.surface_container_high, base2: matugenColors.primary, base: matugenColors.primary, mantle: matugenColors.surface_container_low, crust: matugenColors.surface_container_lowest, red2: matugenColors.primary_container, peach2: matugenColors.primary_container, pink2: matugenColors.primary_container, mantle2: matugenColors.primary, surface1_2: matugenColors.primary, surface0_2: matugenColors.primary, overlay1_2: matugenColors.surface_container_high, text2: matugenColors.outline, lavender2: matugenColors.primary_container, crust2: matugenColors.primary, maroon2: matugenColors.primary_container, mauve2: matugenColors.primary_container, surface2_2: matugenColors.primary_container, green2: matugenColors.primary_container, sky2: matugenColors.primary_container, teal2: matugenColors.primary_container, yellow2: matugenColors.primary_container, pink3: matugenColors.primary_fixed, red3: matugenColors.secondary, mantle3: matugenColors.primary, surface0_3: matugenColors.primary, surface2_3: matugenColors.outline, overlay1_3: matugenColors.primary, lavender3: matugenColors.primary, mauve3: matugenColors.primary, green3: matugenColors.primary_fixed, sky3: matugenColors.primary, teal3: matugenColors.primary, yellow3: matugenColors.primary_fixed, maroon3: matugenColors.primary_fixed, crust3: matugenColors.primary, }, vivid_2: { rosewater: matugenColors.surface, flamingo: matugenColors.surface, pink: matugenColors.surface, mauve: matugenColors.surface, red: matugenColors.surface, maroon: matugenColors.surface, peach: matugenColors.surface, yellow: matugenColors.surface, green: matugenColors.surface, teal: matugenColors.surface, sky: matugenColors.surface, sapphire: matugenColors.surface, blue: matugenColors.surface, lavender: matugenColors.surface, text: matugenColors.surface, subtext1: matugenColors.secondary_container, subtext2: matugenColors.secondary_container, overlay2: matugenColors.secondary_container, overlay1: matugenColors.secondary_container, overlay0: matugenColors.secondary_container, surface2: matugenColors.surface_container_high, surface1: matugenColors.surface_container_high, surface0: matugenColors.surface_container_high, base2: matugenColors.secondary, base: matugenColors.secondary, mantle: matugenColors.surface_container_low, crust: matugenColors.surface_container_lowest, red2: matugenColors.secondary_container, peach2: matugenColors.secondary_container, pink2: matugenColors.secondary_container, surface2_2: matugenColors.primary_container, mantle2: matugenColors.secondary, surface1_2: matugenColors.secondary, surface0_2: matugenColors.secondary, overlay1_2: matugenColors.surface_container_high, text2: matugenColors.outline, lavender2: matugenColors.secondary_container, crust2: matugenColors.secondary, maroon2: matugenColors.secondary_container, mauve2: matugenColors.secondary_container, green2: matugenColors.secondary_container, sky2: matugenColors.secondary_container, teal2: matugenColors.secondary_container, yellow2: matugenColors.secondary_container, pink3: matugenColors.secondary_fixed, red3: matugenColors.secondary, mantle3: matugenColors.secondary, surface0_3: matugenColors.secondary, surface2_3: matugenColors.outline, overlay1_3: matugenColors.secondary, lavender3: matugenColors.secondary, mauve3: matugenColors.secondary, green3: matugenColors.secondary_fixed, sky3: matugenColors.secondary, teal3: matugenColors.secondary, yellow3: matugenColors.secondary_fixed, maroon3: matugenColors.secondary_fixed, crust3: matugenColors.secondary, }, vivid_3: { rosewater: matugenColors.surface, flamingo: matugenColors.surface, pink: matugenColors.surface, mauve: matugenColors.surface, red: matugenColors.surface, maroon: matugenColors.surface, peach: matugenColors.surface, yellow: matugenColors.surface, green: matugenColors.surface, teal: matugenColors.surface, sky: matugenColors.surface, sapphire: matugenColors.surface, blue: matugenColors.surface, lavender: matugenColors.surface, text: matugenColors.surface, subtext1: matugenColors.tertiary_container, subtext2: matugenColors.tertiary_container, overlay2: matugenColors.tertiary_container, overlay1: matugenColors.tertiary_container, overlay0: matugenColors.tertiary_container, surface2: matugenColors.surface_container_high, surface1: matugenColors.surface_container_high, surface0: matugenColors.surface_container_high, base2: matugenColors.tertiary, base: matugenColors.tertiary, mantle: matugenColors.surface_container_low, crust: matugenColors.surface_container_lowest, red2: matugenColors.tertiary_container, peach2: matugenColors.tertiary_container, pink2: matugenColors.tertiary_container, mantle2: matugenColors.tertiary, surface1_2: matugenColors.tertiary, surface0_2: matugenColors.tertiary, overlay1_2: matugenColors.surface_container_high, text2: matugenColors.outline, lavender2: matugenColors.tertiary_container, surface2_2: matugenColors.primary_container, crust2: matugenColors.tertiary, maroon2: matugenColors.tertiary_container, mauve2: matugenColors.tertiary_container, green2: matugenColors.tertiary_container, sky2: matugenColors.tertiary_container, teal2: matugenColors.tertiary_container, yellow2: matugenColors.tertiary_container, pink3: matugenColors.tertiary_fixed, red3: matugenColors.secondary, mantle3: matugenColors.tertiary, surface0_3: matugenColors.tertiary, surface2_3: matugenColors.outline, overlay1_3: matugenColors.tertiary, lavender3: matugenColors.tertiary, mauve3: matugenColors.tertiary, green3: matugenColors.tertiary_fixed, sky3: matugenColors.tertiary, teal3: matugenColors.tertiary, yellow3: matugenColors.tertiary_fixed, maroon3: matugenColors.tertiary_fixed, crust3: matugenColors.tertiary, }, monochrome_1: { rosewater: matugenColors.primary, flamingo: matugenColors.primary, pink: matugenColors.primary, mauve: matugenColors.primary, red: matugenColors.primary, maroon: matugenColors.primary, peach: matugenColors.primary, yellow: matugenColors.primary, green: matugenColors.primary, teal: matugenColors.primary, sky: matugenColors.primary, sapphire: matugenColors.primary, blue: matugenColors.primary, lavender: matugenColors.primary, text: matugenColors.on_background, subtext1: matugenColors.outline, subtext2: matugenColors.outline, overlay2: matugenColors.outline, overlay1: matugenColors.outline, overlay0: matugenColors.outline, surface2: matugenColors.outline, surface1: matugenColors.surface_bright, surface0: matugenColors.surface_bright, base2: matugenColors.inverse_on_surface, base: matugenColors.inverse_on_surface, mantle: matugenColors.surface_dim, crust: matugenColors.surface_dim, notifications_closer: matugenColors.primary, notifications_background: matugenColors.surface_dim, dashboard_btn_text: matugenColors.surface_dim, red2: matugenColors.primary, peach2: matugenColors.primary, pink2: matugenColors.primary, mantle2: matugenColors.surface_dim, surface1_2: matugenColors.inverse_on_surface, surface0_2: matugenColors.surface_bright, surface2_2: matugenColors.surface, overlay1_2: matugenColors.outline, text2: matugenColors.on_background, lavender2: matugenColors.primary, crust2: matugenColors.surface_dim, maroon2: matugenColors.primary, mauve2: matugenColors.primary, green2: matugenColors.primary, sky2: matugenColors.primary, teal2: matugenColors.primary, yellow2: matugenColors.primary, pink3: matugenColors.primary, red3: matugenColors.secondary, mantle3: matugenColors.inverse_on_surface, surface0_3: matugenColors.outline, surface2_3: matugenColors.outline, overlay1_3: matugenColors.outline, lavender3: matugenColors.primary, mauve3: matugenColors.primary, green3: matugenColors.primary, sky3: matugenColors.primary, teal3: matugenColors.primary, yellow3: matugenColors.primary, maroon3: matugenColors.primary, crust3: matugenColors.surface_dim, }, monochrome_2: { rosewater: matugenColors.secondary, flamingo: matugenColors.secondary, pink: matugenColors.secondary, mauve: matugenColors.secondary, red: matugenColors.secondary, maroon: matugenColors.secondary, peach: matugenColors.secondary, yellow: matugenColors.secondary, green: matugenColors.secondary, teal: matugenColors.secondary, sky: matugenColors.secondary, sapphire: matugenColors.secondary, blue: matugenColors.secondary, lavender: matugenColors.secondary, text: matugenColors.on_background, subtext1: matugenColors.outline, subtext2: matugenColors.outline, overlay2: matugenColors.outline, overlay1: matugenColors.outline, overlay0: matugenColors.outline, surface2: matugenColors.outline, surface1: matugenColors.surface_bright, surface0: matugenColors.surface_bright, base2: matugenColors.inverse_on_surface, base: matugenColors.inverse_on_surface, mantle: matugenColors.surface_dim, crust: matugenColors.surface_dim, notifications_closer: matugenColors.secondary, notifications_background: matugenColors.surface_dim, dashboard_btn_text: matugenColors.surface_dim, red2: matugenColors.secondary, peach2: matugenColors.secondary, pink2: matugenColors.secondary, mantle2: matugenColors.surface_dim, surface1_2: matugenColors.inverse_on_surface, surface0_2: matugenColors.surface_bright, overlay1_2: matugenColors.outline, surface2_2: matugenColors.surface, text2: matugenColors.on_background, lavender2: matugenColors.secondary, crust2: matugenColors.surface_dim, maroon2: matugenColors.secondary, mauve2: matugenColors.secondary, green2: matugenColors.secondary, sky2: matugenColors.secondary, teal2: matugenColors.secondary, yellow2: matugenColors.secondary, pink3: matugenColors.secondary, red3: matugenColors.secondary, mantle3: matugenColors.inverse_on_surface, surface0_3: matugenColors.outline, surface2_3: matugenColors.outline, overlay1_3: matugenColors.outline, lavender3: matugenColors.secondary, mauve3: matugenColors.secondary, green3: matugenColors.secondary, sky3: matugenColors.secondary, teal3: matugenColors.secondary, yellow3: matugenColors.secondary, maroon3: matugenColors.secondary, crust3: matugenColors.surface_dim, }, monochrome_3: { rosewater: matugenColors.tertiary, flamingo: matugenColors.tertiary, pink: matugenColors.tertiary, mauve: matugenColors.tertiary, red: matugenColors.tertiary, maroon: matugenColors.tertiary, peach: matugenColors.tertiary, yellow: matugenColors.tertiary, green: matugenColors.tertiary, teal: matugenColors.tertiary, sky: matugenColors.tertiary, sapphire: matugenColors.tertiary, blue: matugenColors.tertiary, lavender: matugenColors.tertiary, text: matugenColors.on_background, subtext1: matugenColors.outline, subtext2: matugenColors.outline, overlay2: matugenColors.outline, overlay1: matugenColors.outline, overlay0: matugenColors.outline, surface2: matugenColors.outline, surface1: matugenColors.surface_bright, surface0: matugenColors.surface_bright, base2: matugenColors.inverse_on_surface, base: matugenColors.inverse_on_surface, mantle: matugenColors.surface_dim, crust: matugenColors.surface_dim, notifications_closer: matugenColors.tertiary, notifications_background: matugenColors.surface_dim, dashboard_btn_text: matugenColors.surface_dim, red2: matugenColors.tertiary, peach2: matugenColors.tertiary, pink2: matugenColors.tertiary, mantle2: matugenColors.surface_dim, surface1_2: matugenColors.inverse_on_surface, surface0_2: matugenColors.surface_bright, overlay1_2: matugenColors.outline, text2: matugenColors.on_background, lavender2: matugenColors.tertiary, crust2: matugenColors.surface_dim, maroon2: matugenColors.tertiary, surface2_2: matugenColors.surface, mauve2: matugenColors.tertiary, green2: matugenColors.tertiary, sky2: matugenColors.tertiary, teal2: matugenColors.tertiary, yellow2: matugenColors.tertiary, pink3: matugenColors.tertiary, red3: matugenColors.secondary, mantle3: matugenColors.inverse_on_surface, surface0_3: matugenColors.outline, surface2_3: matugenColors.outline, overlay1_3: matugenColors.outline, lavender3: matugenColors.tertiary, mauve3: matugenColors.tertiary, green3: matugenColors.tertiary, sky3: matugenColors.tertiary, teal3: matugenColors.tertiary, yellow3: matugenColors.tertiary, maroon3: matugenColors.tertiary, crust3: matugenColors.surface_dim, }, }; return matVtns[variation]; }; ================================================ FILE: .config/ags/services/screen_record.sh ================================================ #!/usr/bin/env bash outputDir="$HOME/Videos/Screencasts" checkRecording() { if pgrep -f "gpu-screen-recorder" >/dev/null; then return 0 else return 1 fi } startRecording() { if checkRecording; then echo "A recording is already in progress." exit 1 fi target="$2" outputFile="recording_$(date +%Y-%m-%d_%H-%M-%S).mp4" outputPath="$outputDir/$outputFile" mkdir -p "$outputDir" if [ -z "$target" ]; then echo "Usage: $0 start screen [screen_name]" exit 1 fi GPU_TYPE=$(lspci | grep -E 'VGA|3D' | grep -Ev '00:02.0|Integrated' > /dev/null && echo "" || echo "-encoder cpu") gpu-screen-recorder -w "$target" -f 60 -a "$(pactl get-default-sink).monitor" -o "$outputPath" $GPU_TYPE & echo "Recording started. Output will be saved to $outputPath" } stopRecording() { if ! checkRecording; then echo "No recording is in progress." exit 1 fi pkill -f gpu-screen-recorder recentFile=$(ls -t "$outputDir"/recording_*.mp4 | head -n 1) notify-send "Recording stopped" "Your recording has been saved." \ -i video-x-generic \ -a "Screen Recorder" \ -t 10000 \ -u normal \ --action="scriptAction:-xdg-open $outputDir=Directory" \ --action="scriptAction:-xdg-open $recentFile=Play" } case "$1" in start) startRecording "$@" ;; stop) stopRecording ;; status) if checkRecording; then echo "recording" else echo "not recording" fi ;; *) echo "Usage: $0 {start [screen_name|window_id]|stop|status}" exit 1 ;; esac ================================================ FILE: .config/ags/services/snapshot.sh ================================================ #!/usr/bin/env bash outputDir="$HOME/Pictures/Screenshots/" outputFile="snapshot_$(date +%Y-%m-%d_%H-%M-%S).png" outputPath="$outputDir/$outputFile" mkdir -p "$outputDir" mode=${1:-area} case "$mode" in active) command="grimblast copysave active $outputPath" ;; output) command="grimblast copysave output $outputPath" ;; area) command="grimblast copysave area $outputPath" ;; *) echo "Invalid option: $mode" echo "Usage: $0 {active|output|area}" exit 1 ;; esac if eval "$command"; then recentFile=$(find "$outputDir" -name 'snapshot_*.png' -printf '%T+ %p\n' | sort -r | head -n 1 | cut -d' ' -f2-) notify-send "Grimblast" "Your snapshot has been saved." \ -i video-x-generic \ -a "Grimblast" \ -t 7000 \ -u normal \ --action="scriptAction:-xdg-open $outputDir=Directory" \ --action="scriptAction:-xdg-open $recentFile=View" fi ================================================ FILE: .config/ags/themes/catppuccin_frappe.json ================================================ { "theme.bar.menus.background": "#232634", "theme.bar.background": "#232634", "theme.bar.buttons.media.icon": "#babbf1", "theme.bar.buttons.media.text": "#babbf1", "theme.bar.buttons.icon": "#babbf1", "theme.bar.buttons.text": "#babbf1", "theme.bar.buttons.hover": "#51576d", "theme.bar.buttons.background": "#303446", "theme.bar.menus.text": "#c6d0f5", "theme.bar.menus.border.color": "#414559", "theme.bar.buttons.media.background": "#303446", "theme.bar.menus.menu.volume.text": "#c6d0f5", "theme.bar.menus.menu.volume.card.color": "#292c3c", "theme.bar.menus.menu.volume.label.color": "#ea999c", "theme.bar.menus.popover.text": "#babbf1", "theme.bar.menus.popover.background": "#232634", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#e78284", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#e78284", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a6d189", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#232634", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#c6d0f5", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#babbf1", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#414559", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#232634", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#292c3c", "theme.bar.menus.menu.notifications.switch.puck": "#51576d", "theme.bar.menus.menu.notifications.switch.disabled": "#414559", "theme.bar.menus.menu.notifications.switch.enabled": "#babbf1", "theme.bar.menus.menu.notifications.clear": "#e78284", "theme.bar.menus.menu.notifications.switch_divider": "#51576d", "theme.bar.menus.menu.notifications.border": "#414559", "theme.bar.menus.menu.notifications.card": "#292c3c", "theme.bar.menus.menu.notifications.background": "#232634", "theme.bar.menus.menu.notifications.no_notifications_label": "#414559", "theme.bar.menus.menu.notifications.label": "#babbf1", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f4b8e4", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f4b8e4", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f4b8e4", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a6d189", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a6d189", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a6d189", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#e5c890", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#e5c890", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#e5c890", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ea999c", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ea999c", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ea999c", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#51576d", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#babbf1", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#ca9ee6", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#81c8be", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ea999c", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#e5c890", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f4b8e4", "theme.bar.menus.menu.dashboard.controls.input.text": "#232634", "theme.bar.menus.menu.dashboard.controls.input.background": "#f4b8e4", "theme.bar.menus.menu.dashboard.controls.volume.text": "#232634", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ea999c", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#232634", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#e5c890", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#232634", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#99d1db", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#232634", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#ca9ee6", "theme.bar.menus.menu.dashboard.controls.disabled": "#626880", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a6d189", "theme.bar.menus.menu.dashboard.shortcuts.text": "#232634", "theme.bar.menus.menu.dashboard.shortcuts.background": "#babbf1", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#99d1db", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a6d189", "theme.bar.menus.menu.dashboard.powermenu.restart": "#ef9f76", "theme.bar.menus.menu.dashboard.profile.name": "#f4b8e4", "theme.bar.menus.menu.dashboard.border.color": "#414559", "theme.bar.menus.menu.dashboard.background.color": "#232634", "theme.bar.menus.menu.dashboard.card.color": "#292c3c", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f4b8e4", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f4b8e4", "theme.bar.menus.menu.clock.weather.hourly.time": "#f4b8e4", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#99d1db", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#8caaee", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#babbf1", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#ef9f76", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#e78284", "theme.bar.menus.menu.clock.weather.stats": "#f4b8e4", "theme.bar.menus.menu.clock.weather.status": "#81c8be", "theme.bar.menus.menu.clock.weather.temperature": "#c6d0f5", "theme.bar.menus.menu.clock.weather.icon": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.contextdays": "#626880", "theme.bar.menus.menu.clock.calendar.days": "#c6d0f5", "theme.bar.menus.menu.clock.calendar.currentday": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.paginator": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.weekdays": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.yearmonth": "#81c8be", "theme.bar.menus.menu.clock.time.timeperiod": "#81c8be", "theme.bar.menus.menu.clock.time.time": "#f4b8e4", "theme.bar.menus.menu.clock.text": "#c6d0f5", "theme.bar.menus.menu.clock.border.color": "#414559", "theme.bar.menus.menu.clock.background.color": "#232634", "theme.bar.menus.menu.clock.card.color": "#292c3c", "theme.bar.menus.menu.battery.slider.puck": "#737994", "theme.bar.menus.menu.battery.slider.backgroundhover": "#51576d", "theme.bar.menus.menu.battery.slider.background": "#626880", "theme.bar.menus.menu.battery.slider.primary": "#e5c890", "theme.bar.menus.menu.battery.icons.active": "#e5c890", "theme.bar.menus.menu.battery.icons.passive": "#949cbb", "theme.bar.menus.menu.battery.listitems.active": "#e5c890", "theme.bar.menus.menu.battery.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.battery.text": "#c6d0f5", "theme.bar.menus.menu.battery.label.color": "#e5c890", "theme.bar.menus.menu.battery.border.color": "#414559", "theme.bar.menus.menu.battery.background.color": "#232634", "theme.bar.menus.menu.battery.card.color": "#292c3c", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#292c3c", "theme.bar.menus.menu.systray.dropdownmenu.text": "#c6d0f5", "theme.bar.menus.menu.systray.dropdownmenu.background": "#232634", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#99d1db", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#c6d0f5", "theme.bar.menus.menu.bluetooth.icons.active": "#99d1db", "theme.bar.menus.menu.bluetooth.icons.passive": "#949cbb", "theme.bar.menus.menu.bluetooth.listitems.active": "#99d1db", "theme.bar.menus.menu.bluetooth.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.bluetooth.switch.puck": "#51576d", "theme.bar.menus.menu.bluetooth.switch.disabled": "#414559", "theme.bar.menus.menu.bluetooth.switch.enabled": "#99d1db", "theme.bar.menus.menu.bluetooth.switch_divider": "#51576d", "theme.bar.menus.menu.bluetooth.status": "#737994", "theme.bar.menus.menu.bluetooth.text": "#c6d0f5", "theme.bar.menus.menu.bluetooth.label.color": "#99d1db", "theme.bar.menus.menu.bluetooth.border.color": "#414559", "theme.bar.menus.menu.bluetooth.background.color": "#232634", "theme.bar.menus.menu.bluetooth.card.color": "#292c3c", "theme.bar.menus.menu.network.iconbuttons.active": "#ca9ee6", "theme.bar.menus.menu.network.iconbuttons.passive": "#c6d0f5", "theme.bar.menus.menu.network.icons.active": "#ca9ee6", "theme.bar.menus.menu.network.icons.passive": "#949cbb", "theme.bar.menus.menu.network.listitems.active": "#ca9ee6", "theme.bar.menus.menu.network.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.network.status.color": "#737994", "theme.bar.menus.menu.network.text": "#c6d0f5", "theme.bar.menus.menu.network.label.color": "#ca9ee6", "theme.bar.menus.menu.network.border.color": "#414559", "theme.bar.menus.menu.network.background.color": "#232634", "theme.bar.menus.menu.network.card.color": "#292c3c", "theme.bar.menus.menu.volume.input_slider.puck": "#626880", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#51576d", "theme.bar.menus.menu.volume.input_slider.background": "#626880", "theme.bar.menus.menu.volume.input_slider.primary": "#ea999c", "theme.bar.menus.menu.volume.audio_slider.puck": "#626880", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#51576d", "theme.bar.menus.menu.volume.audio_slider.background": "#626880", "theme.bar.menus.menu.volume.audio_slider.primary": "#ea999c", "theme.bar.menus.menu.volume.icons.active": "#ea999c", "theme.bar.menus.menu.volume.icons.passive": "#949cbb", "theme.bar.menus.menu.volume.iconbutton.active": "#ea999c", "theme.bar.menus.menu.volume.iconbutton.passive": "#c6d0f5", "theme.bar.menus.menu.volume.listitems.active": "#ea999c", "theme.bar.menus.menu.volume.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.volume.border.color": "#414559", "theme.bar.menus.menu.volume.background.color": "#232634", "theme.bar.menus.menu.media.slider.puck": "#737994", "theme.bar.menus.menu.media.slider.backgroundhover": "#51576d", "theme.bar.menus.menu.media.slider.background": "#626880", "theme.bar.menus.menu.media.slider.primary": "#f4b8e4", "theme.bar.menus.menu.media.buttons.text": "#232634", "theme.bar.menus.menu.media.buttons.background": "#babbf1", "theme.bar.menus.menu.media.buttons.enabled": "#81c8be", "theme.bar.menus.menu.media.buttons.inactive": "#626880", "theme.bar.menus.menu.media.border.color": "#414559", "theme.bar.menus.menu.media.background.color": "#232634", "theme.bar.menus.menu.media.album": "#f4b8e4", "theme.bar.menus.menu.media.artist": "#81c8be", "theme.bar.menus.menu.media.song": "#babbf1", "theme.bar.menus.tooltip.text": "#c6d0f5", "theme.bar.menus.tooltip.background": "#232634", "theme.bar.menus.dropdownmenu.divider": "#292c3c", "theme.bar.menus.dropdownmenu.text": "#c6d0f5", "theme.bar.menus.dropdownmenu.background": "#232634", "theme.bar.menus.slider.puck": "#737994", "theme.bar.menus.slider.backgroundhover": "#51576d", "theme.bar.menus.slider.background": "#626880", "theme.bar.menus.slider.primary": "#babbf1", "theme.bar.menus.progressbar.background": "#51576d", "theme.bar.menus.progressbar.foreground": "#babbf1", "theme.bar.menus.iconbuttons.active": "#babbf1", "theme.bar.menus.iconbuttons.passive": "#c6d0f5", "theme.bar.menus.buttons.text": "#232634", "theme.bar.menus.buttons.disabled": "#626880", "theme.bar.menus.buttons.active": "#f4b8e4", "theme.bar.menus.buttons.default": "#babbf1", "theme.bar.menus.switch.puck": "#51576d", "theme.bar.menus.switch.disabled": "#414559", "theme.bar.menus.switch.enabled": "#babbf1", "theme.bar.menus.icons.active": "#babbf1", "theme.bar.menus.icons.passive": "#626880", "theme.bar.menus.listitems.active": "#babbf1", "theme.bar.menus.listitems.passive": "#c6d0f5", "theme.bar.menus.label": "#babbf1", "theme.bar.menus.feinttext": "#414559", "theme.bar.menus.dimtext": "#626880", "theme.bar.menus.cards": "#292c3c", "theme.bar.buttons.notifications.total": "#babbf1", "theme.bar.buttons.notifications.icon": "#babbf1", "theme.bar.buttons.notifications.background": "#303446", "theme.bar.buttons.clock.icon": "#f4b8e4", "theme.bar.buttons.clock.text": "#f4b8e4", "theme.bar.buttons.clock.background": "#303446", "theme.bar.buttons.battery.icon": "#e5c890", "theme.bar.buttons.battery.text": "#e5c890", "theme.bar.buttons.battery.background": "#303446", "theme.bar.buttons.systray.background": "#303446", "theme.bar.buttons.bluetooth.icon": "#99d1db", "theme.bar.buttons.bluetooth.text": "#99d1db", "theme.bar.buttons.bluetooth.background": "#303446", "theme.bar.buttons.network.icon": "#ca9ee6", "theme.bar.buttons.network.text": "#ca9ee6", "theme.bar.buttons.network.background": "#303446", "theme.bar.buttons.volume.icon": "#ea999c", "theme.bar.buttons.volume.text": "#ea999c", "theme.bar.buttons.volume.background": "#303446", "theme.bar.buttons.windowtitle.icon": "#f4b8e4", "theme.bar.buttons.windowtitle.text": "#f4b8e4", "theme.bar.buttons.windowtitle.background": "#303446", "theme.bar.buttons.workspaces.active": "#f4b8e4", "theme.bar.buttons.workspaces.occupied": "#eebebe", "theme.bar.buttons.workspaces.available": "#99d1db", "theme.bar.buttons.workspaces.hover": "#51576d", "theme.bar.buttons.workspaces.background": "#303446", "theme.bar.buttons.dashboard.icon": "#e5c890", "theme.bar.buttons.dashboard.background": "#303446", "theme.osd.label": "#babbf1", "theme.osd.icon": "#232634", "theme.osd.bar_overflow_color": "#e78284", "theme.osd.bar_empty_color": "#414559", "theme.osd.bar_color": "#babbf1", "theme.osd.icon_container": "#babbf1", "theme.osd.bar_container": "#232634", "theme.notification.close_button.label": "#232634", "theme.notification.close_button.background": "#e78284", "theme.notification.labelicon": "#babbf1", "theme.notification.text": "#c6d0f5", "theme.notification.time": "#838ba7", "theme.notification.border": "#414559", "theme.notification.label": "#babbf1", "theme.notification.actions.text": "#232634", "theme.notification.actions.background": "#babbf1", "theme.notification.background": "#232634", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#292c3c", "theme.bar.menus.check_radio_button.background": "#232534", "theme.bar.menus.check_radio_button.active": "#b9baf1", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#babbf1", "theme.bar.menus.menu.notifications.scrollbar.color": "#babbf1", "theme.bar.menus.menu.notifications.pager.label": "#949cbb", "theme.bar.menus.menu.notifications.pager.background": "#232634", "theme.bar.buttons.clock.icon_background": "#f4b8e4", "theme.bar.buttons.modules.ram.icon": "#e5c890", "theme.bar.buttons.modules.storage.icon_background": "#e78284", "theme.bar.menus.popover.border": "#232634", "theme.bar.buttons.volume.icon_background": "#ea999c", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#99d1db", "theme.bar.menus.menu.power.buttons.restart.text": "#ef9f76", "theme.bar.buttons.modules.updates.background": "#303446", "theme.bar.buttons.modules.storage.icon": "#e78284", "theme.bar.buttons.modules.netstat.background": "#303446", "theme.bar.buttons.modules.weather.icon": "#babbf1", "theme.bar.buttons.modules.netstat.text": "#a6d189", "theme.bar.buttons.modules.storage.background": "#303446", "theme.bar.buttons.modules.power.icon": "#e78284", "theme.bar.buttons.modules.storage.text": "#e78284", "theme.bar.buttons.modules.cpu.background": "#303446", "theme.bar.menus.menu.power.border.color": "#414559", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#e78284", "theme.bar.menus.menu.power.buttons.logout.icon": "#232634", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#ef9f76", "theme.bar.menus.menu.power.buttons.restart.icon": "#232634", "theme.bar.buttons.modules.cpu.icon": "#e78284", "theme.bar.buttons.battery.icon_background": "#e5c890", "theme.bar.buttons.modules.kbLayout.icon_background": "#99d1db", "theme.bar.buttons.modules.weather.text": "#babbf1", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#232634", "theme.bar.menus.menu.power.buttons.sleep.text": "#99d1db", "theme.bar.buttons.modules.weather.icon_background": "#babbf1", "theme.bar.menus.menu.power.buttons.shutdown.background": "#292c3c", "theme.bar.buttons.media.icon_background": "#babbf1", "theme.bar.menus.menu.power.buttons.logout.background": "#292c3c", "theme.bar.buttons.modules.kbLayout.icon": "#99d1db", "theme.bar.buttons.modules.ram.icon_background": "#e5c890", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#e78284", "theme.bar.menus.menu.power.buttons.shutdown.text": "#e78284", "theme.bar.menus.menu.power.buttons.sleep.background": "#292c3c", "theme.bar.buttons.modules.ram.text": "#e5c890", "theme.bar.menus.menu.power.buttons.logout.text": "#a6d189", "theme.bar.buttons.modules.updates.icon_background": "#ca9ee6", "theme.bar.buttons.modules.kbLayout.background": "#303446", "theme.bar.buttons.modules.power.background": "#303446", "theme.bar.buttons.modules.weather.background": "#303446", "theme.bar.buttons.icon_background": "#303446", "theme.bar.menus.menu.power.background.color": "#232634", "theme.bar.buttons.modules.ram.background": "#303446", "theme.bar.buttons.modules.netstat.icon": "#a6d189", "theme.bar.buttons.windowtitle.icon_background": "#f4b8e4", "theme.bar.buttons.modules.cpu.icon_background": "#e78284", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a6d189", "theme.bar.buttons.modules.updates.text": "#ca9ee6", "theme.bar.menus.menu.power.buttons.sleep.icon": "#232634", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#292c3c", "theme.bar.buttons.modules.updates.icon": "#ca9ee6", "theme.bar.buttons.modules.cpu.text": "#e78284", "theme.bar.buttons.modules.netstat.icon_background": "#a6d189", "theme.bar.buttons.modules.kbLayout.text": "#99d1db", "theme.bar.buttons.notifications.icon_background": "#babbf1", "theme.bar.buttons.modules.power.border": "#e78284", "theme.bar.buttons.modules.weather.border": "#babbf1", "theme.bar.buttons.modules.updates.border": "#ca9ee6", "theme.bar.buttons.modules.kbLayout.border": "#99d1db", "theme.bar.buttons.modules.netstat.border": "#a6d189", "theme.bar.buttons.modules.storage.border": "#e78284", "theme.bar.buttons.modules.cpu.border": "#e78284", "theme.bar.buttons.modules.ram.border": "#e5c890", "theme.bar.buttons.notifications.border": "#babbf1", "theme.bar.buttons.clock.border": "#f4b8e4", "theme.bar.buttons.battery.border": "#e5c890", "theme.bar.buttons.systray.border": "#51576d", "theme.bar.buttons.bluetooth.border": "#99d1db", "theme.bar.buttons.network.border": "#ca9ee6", "theme.bar.buttons.volume.border": "#ea999c", "theme.bar.buttons.media.border": "#babbf1", "theme.bar.buttons.windowtitle.border": "#f4b8e4", "theme.bar.buttons.workspaces.border": "#232634", "theme.bar.buttons.dashboard.border": "#e5c890", "theme.bar.buttons.modules.submap.background": "#303446", "theme.bar.buttons.modules.submap.text": "#81c8be", "theme.bar.buttons.modules.submap.border": "#81c8be", "theme.bar.buttons.modules.submap.icon": "#81c8be", "theme.bar.buttons.modules.submap.icon_background": "#303446" } ================================================ FILE: .config/ags/themes/catppuccin_frappe_split.json ================================================ { "theme.bar.menus.background": "#232634", "theme.bar.background": "#232634", "theme.bar.buttons.media.icon": "#303446", "theme.bar.buttons.media.text": "#babbf1", "theme.bar.buttons.icon": "#babbf1", "theme.bar.buttons.text": "#babbf1", "theme.bar.buttons.hover": "#51576d", "theme.bar.buttons.background": "#303446", "theme.bar.menus.text": "#c6d0f5", "theme.bar.menus.border.color": "#414559", "theme.bar.buttons.media.background": "#303446", "theme.bar.menus.menu.volume.text": "#c6d0f5", "theme.bar.menus.menu.volume.card.color": "#292c3c", "theme.bar.menus.menu.volume.label.color": "#ea999c", "theme.bar.menus.popover.text": "#babbf1", "theme.bar.menus.popover.background": "#232634", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#e78284", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#e78284", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a6d189", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#232634", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#c6d0f5", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#babbf1", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#414559", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#232634", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#292c3c", "theme.bar.menus.menu.notifications.switch.puck": "#51576d", "theme.bar.menus.menu.notifications.switch.disabled": "#414559", "theme.bar.menus.menu.notifications.switch.enabled": "#babbf1", "theme.bar.menus.menu.notifications.clear": "#e78284", "theme.bar.menus.menu.notifications.switch_divider": "#51576d", "theme.bar.menus.menu.notifications.border": "#414559", "theme.bar.menus.menu.notifications.card": "#292c3c", "theme.bar.menus.menu.notifications.background": "#232634", "theme.bar.menus.menu.notifications.no_notifications_label": "#414559", "theme.bar.menus.menu.notifications.label": "#babbf1", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f4b8e4", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f4b8e4", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f4b8e4", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a6d189", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a6d189", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a6d189", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#e5c890", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#e5c890", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#e5c890", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ea999c", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ea999c", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ea999c", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#51576d", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#babbf1", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#ca9ee6", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#81c8be", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ea999c", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#e5c890", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f4b8e4", "theme.bar.menus.menu.dashboard.controls.input.text": "#232634", "theme.bar.menus.menu.dashboard.controls.input.background": "#f4b8e4", "theme.bar.menus.menu.dashboard.controls.volume.text": "#232634", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ea999c", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#232634", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#e5c890", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#232634", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#99d1db", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#232634", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#ca9ee6", "theme.bar.menus.menu.dashboard.controls.disabled": "#626880", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a6d189", "theme.bar.menus.menu.dashboard.shortcuts.text": "#232634", "theme.bar.menus.menu.dashboard.shortcuts.background": "#babbf1", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#99d1db", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a6d189", "theme.bar.menus.menu.dashboard.powermenu.restart": "#ef9f76", "theme.bar.menus.menu.dashboard.profile.name": "#f4b8e4", "theme.bar.menus.menu.dashboard.border.color": "#414559", "theme.bar.menus.menu.dashboard.background.color": "#232634", "theme.bar.menus.menu.dashboard.card.color": "#292c3c", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f4b8e4", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f4b8e4", "theme.bar.menus.menu.clock.weather.hourly.time": "#f4b8e4", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#99d1db", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#8caaee", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#babbf1", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#ef9f76", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#e78284", "theme.bar.menus.menu.clock.weather.stats": "#f4b8e4", "theme.bar.menus.menu.clock.weather.status": "#81c8be", "theme.bar.menus.menu.clock.weather.temperature": "#c6d0f5", "theme.bar.menus.menu.clock.weather.icon": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.contextdays": "#626880", "theme.bar.menus.menu.clock.calendar.days": "#c6d0f5", "theme.bar.menus.menu.clock.calendar.currentday": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.paginator": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.weekdays": "#f4b8e4", "theme.bar.menus.menu.clock.calendar.yearmonth": "#81c8be", "theme.bar.menus.menu.clock.time.timeperiod": "#81c8be", "theme.bar.menus.menu.clock.time.time": "#f4b8e4", "theme.bar.menus.menu.clock.text": "#c6d0f5", "theme.bar.menus.menu.clock.border.color": "#414559", "theme.bar.menus.menu.clock.background.color": "#232634", "theme.bar.menus.menu.clock.card.color": "#292c3c", "theme.bar.menus.menu.battery.slider.puck": "#737994", "theme.bar.menus.menu.battery.slider.backgroundhover": "#51576d", "theme.bar.menus.menu.battery.slider.background": "#626880", "theme.bar.menus.menu.battery.slider.primary": "#e5c890", "theme.bar.menus.menu.battery.icons.active": "#e5c890", "theme.bar.menus.menu.battery.icons.passive": "#949cbb", "theme.bar.menus.menu.battery.listitems.active": "#e5c890", "theme.bar.menus.menu.battery.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.battery.text": "#c6d0f5", "theme.bar.menus.menu.battery.label.color": "#e5c890", "theme.bar.menus.menu.battery.border.color": "#414559", "theme.bar.menus.menu.battery.background.color": "#232634", "theme.bar.menus.menu.battery.card.color": "#292c3c", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#292c3c", "theme.bar.menus.menu.systray.dropdownmenu.text": "#c6d0f5", "theme.bar.menus.menu.systray.dropdownmenu.background": "#232634", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#99d1db", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#c6d0f5", "theme.bar.menus.menu.bluetooth.icons.active": "#99d1db", "theme.bar.menus.menu.bluetooth.icons.passive": "#949cbb", "theme.bar.menus.menu.bluetooth.listitems.active": "#99d1db", "theme.bar.menus.menu.bluetooth.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.bluetooth.switch.puck": "#51576d", "theme.bar.menus.menu.bluetooth.switch.disabled": "#414559", "theme.bar.menus.menu.bluetooth.switch.enabled": "#99d1db", "theme.bar.menus.menu.bluetooth.switch_divider": "#51576d", "theme.bar.menus.menu.bluetooth.status": "#737994", "theme.bar.menus.menu.bluetooth.text": "#c6d0f5", "theme.bar.menus.menu.bluetooth.label.color": "#99d1db", "theme.bar.menus.menu.bluetooth.border.color": "#414559", "theme.bar.menus.menu.bluetooth.background.color": "#232634", "theme.bar.menus.menu.bluetooth.card.color": "#292c3c", "theme.bar.menus.menu.network.iconbuttons.active": "#ca9ee6", "theme.bar.menus.menu.network.iconbuttons.passive": "#c6d0f5", "theme.bar.menus.menu.network.icons.active": "#ca9ee6", "theme.bar.menus.menu.network.icons.passive": "#949cbb", "theme.bar.menus.menu.network.listitems.active": "#ca9ee6", "theme.bar.menus.menu.network.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.network.status.color": "#737994", "theme.bar.menus.menu.network.text": "#c6d0f5", "theme.bar.menus.menu.network.label.color": "#ca9ee6", "theme.bar.menus.menu.network.border.color": "#414559", "theme.bar.menus.menu.network.background.color": "#232634", "theme.bar.menus.menu.network.card.color": "#292c3c", "theme.bar.menus.menu.volume.input_slider.puck": "#626880", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#51576d", "theme.bar.menus.menu.volume.input_slider.background": "#626880", "theme.bar.menus.menu.volume.input_slider.primary": "#ea999c", "theme.bar.menus.menu.volume.audio_slider.puck": "#626880", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#51576d", "theme.bar.menus.menu.volume.audio_slider.background": "#626880", "theme.bar.menus.menu.volume.audio_slider.primary": "#ea999c", "theme.bar.menus.menu.volume.icons.active": "#ea999c", "theme.bar.menus.menu.volume.icons.passive": "#949cbb", "theme.bar.menus.menu.volume.iconbutton.active": "#ea999c", "theme.bar.menus.menu.volume.iconbutton.passive": "#c6d0f5", "theme.bar.menus.menu.volume.listitems.active": "#ea999c", "theme.bar.menus.menu.volume.listitems.passive": "#c6d0f5", "theme.bar.menus.menu.volume.border.color": "#414559", "theme.bar.menus.menu.volume.background.color": "#232634", "theme.bar.menus.menu.media.slider.puck": "#737994", "theme.bar.menus.menu.media.slider.backgroundhover": "#51576d", "theme.bar.menus.menu.media.slider.background": "#626880", "theme.bar.menus.menu.media.slider.primary": "#f4b8e4", "theme.bar.menus.menu.media.buttons.text": "#232634", "theme.bar.menus.menu.media.buttons.background": "#babbf1", "theme.bar.menus.menu.media.buttons.enabled": "#81c8be", "theme.bar.menus.menu.media.buttons.inactive": "#626880", "theme.bar.menus.menu.media.border.color": "#414559", "theme.bar.menus.menu.media.background.color": "#232634", "theme.bar.menus.menu.media.album": "#f4b8e4", "theme.bar.menus.menu.media.artist": "#81c8be", "theme.bar.menus.menu.media.song": "#babbf1", "theme.bar.menus.tooltip.text": "#c6d0f5", "theme.bar.menus.tooltip.background": "#232634", "theme.bar.menus.dropdownmenu.divider": "#292c3c", "theme.bar.menus.dropdownmenu.text": "#c6d0f5", "theme.bar.menus.dropdownmenu.background": "#232634", "theme.bar.menus.slider.puck": "#737994", "theme.bar.menus.slider.backgroundhover": "#51576d", "theme.bar.menus.slider.background": "#626880", "theme.bar.menus.slider.primary": "#babbf1", "theme.bar.menus.progressbar.background": "#51576d", "theme.bar.menus.progressbar.foreground": "#babbf1", "theme.bar.menus.iconbuttons.active": "#babbf1", "theme.bar.menus.iconbuttons.passive": "#c6d0f5", "theme.bar.menus.buttons.text": "#232634", "theme.bar.menus.buttons.disabled": "#626880", "theme.bar.menus.buttons.active": "#f4b8e4", "theme.bar.menus.buttons.default": "#babbf1", "theme.bar.menus.switch.puck": "#51576d", "theme.bar.menus.switch.disabled": "#414559", "theme.bar.menus.switch.enabled": "#babbf1", "theme.bar.menus.icons.active": "#babbf1", "theme.bar.menus.icons.passive": "#626880", "theme.bar.menus.listitems.active": "#babbf1", "theme.bar.menus.listitems.passive": "#c6d0f5", "theme.bar.menus.label": "#babbf1", "theme.bar.menus.feinttext": "#414559", "theme.bar.menus.dimtext": "#626880", "theme.bar.menus.cards": "#292c3c", "theme.bar.buttons.notifications.total": "#babbf1", "theme.bar.buttons.notifications.icon": "#303446", "theme.bar.buttons.notifications.background": "#303446", "theme.bar.buttons.clock.icon": "#303446", "theme.bar.buttons.clock.text": "#f4b8e4", "theme.bar.buttons.clock.background": "#303446", "theme.bar.buttons.battery.icon": "#303446", "theme.bar.buttons.battery.text": "#e5c890", "theme.bar.buttons.battery.background": "#303446", "theme.bar.buttons.systray.background": "#303446", "theme.bar.buttons.bluetooth.icon": "#303446", "theme.bar.buttons.bluetooth.text": "#99d1db", "theme.bar.buttons.bluetooth.background": "#303446", "theme.bar.buttons.network.icon": "#303446", "theme.bar.buttons.network.text": "#ca9ee6", "theme.bar.buttons.network.background": "#303446", "theme.bar.buttons.volume.icon": "#303446", "theme.bar.buttons.volume.text": "#ea999c", "theme.bar.buttons.volume.background": "#303446", "theme.bar.buttons.windowtitle.icon": "#303446", "theme.bar.buttons.windowtitle.text": "#f4b8e4", "theme.bar.buttons.windowtitle.background": "#303446", "theme.bar.buttons.workspaces.active": "#f4b8e4", "theme.bar.buttons.workspaces.occupied": "#eebebe", "theme.bar.buttons.workspaces.available": "#99d1db", "theme.bar.buttons.workspaces.hover": "#51576d", "theme.bar.buttons.workspaces.background": "#303446", "theme.bar.buttons.dashboard.icon": "#303446", "theme.bar.buttons.dashboard.background": "#e5c890", "theme.osd.label": "#babbf1", "theme.osd.icon": "#232634", "theme.osd.bar_overflow_color": "#e78284", "theme.osd.bar_empty_color": "#414559", "theme.osd.bar_color": "#babbf1", "theme.osd.icon_container": "#babbf1", "theme.osd.bar_container": "#232634", "theme.notification.close_button.label": "#232634", "theme.notification.close_button.background": "#e78284", "theme.notification.labelicon": "#babbf1", "theme.notification.text": "#c6d0f5", "theme.notification.time": "#838ba7", "theme.notification.border": "#414559", "theme.notification.label": "#babbf1", "theme.notification.actions.text": "#232634", "theme.notification.actions.background": "#babbf1", "theme.notification.background": "#232634", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.menus.menu.media.card.color": "#292c3c", "theme.bar.menus.check_radio_button.background": "#232534", "theme.bar.menus.check_radio_button.active": "#b9baf1", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#ea999c", "theme.bar.buttons.network.icon_background": "#ca9ee6", "theme.bar.buttons.bluetooth.icon_background": "#99d1db", "theme.bar.buttons.windowtitle.icon_background": "#f4b8e4", "theme.bar.buttons.media.icon_background": "#babbf1", "theme.bar.buttons.notifications.icon_background": "#b4befe", "theme.bar.buttons.battery.icon_background": "#e5c890", "theme.bar.buttons.clock.icon_background": "#f4b8e4", "theme.bar.menus.menu.notifications.pager.button": "#babbf1", "theme.bar.menus.menu.notifications.scrollbar.color": "#babbf1", "theme.bar.menus.menu.notifications.pager.label": "#949cbb", "theme.bar.menus.menu.notifications.pager.background": "#232634", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.storage.icon_background": "#e78284", "theme.bar.menus.popover.border": "#232634", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#99d1db", "theme.bar.menus.menu.power.buttons.restart.text": "#ef9f76", "theme.bar.buttons.modules.updates.background": "#303446", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.netstat.background": "#303446", "theme.bar.buttons.modules.weather.icon": "#303446", "theme.bar.buttons.modules.netstat.text": "#a6d189", "theme.bar.buttons.modules.storage.background": "#303446", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.buttons.modules.storage.text": "#e78284", "theme.bar.buttons.modules.cpu.background": "#303446", "theme.bar.menus.menu.power.border.color": "#414559", "theme.bar.buttons.modules.power.icon_background": "#e78284", "theme.bar.menus.menu.power.buttons.logout.icon": "#232634", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#ef9f76", "theme.bar.menus.menu.power.buttons.restart.icon": "#232634", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.kbLayout.icon_background": "#99d1db", "theme.bar.buttons.modules.weather.text": "#babbf1", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#232634", "theme.bar.menus.menu.power.buttons.sleep.text": "#99d1db", "theme.bar.buttons.modules.weather.icon_background": "#babbf1", "theme.bar.menus.menu.power.buttons.shutdown.background": "#292c3c", "theme.bar.menus.menu.power.buttons.logout.background": "#292c3c", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.ram.icon_background": "#e5c890", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#e78284", "theme.bar.menus.menu.power.buttons.shutdown.text": "#e78284", "theme.bar.menus.menu.power.buttons.sleep.background": "#292c3c", "theme.bar.buttons.modules.ram.text": "#e5c890", "theme.bar.menus.menu.power.buttons.logout.text": "#a6d189", "theme.bar.buttons.modules.updates.icon_background": "#ca9ee6", "theme.bar.buttons.modules.kbLayout.background": "#303446", "theme.bar.buttons.modules.power.background": "#303446", "theme.bar.buttons.modules.weather.background": "#303446", "theme.bar.menus.menu.power.background.color": "#232634", "theme.bar.buttons.modules.ram.background": "#303446", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.cpu.icon_background": "#e78284", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a6d189", "theme.bar.buttons.modules.updates.text": "#ca9ee6", "theme.bar.menus.menu.power.buttons.sleep.icon": "#232634", "theme.bar.menus.menu.power.buttons.restart.background": "#292c3c", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.cpu.text": "#e78284", "theme.bar.buttons.modules.netstat.icon_background": "#a6d189", "theme.bar.buttons.modules.kbLayout.text": "#99d1db", "theme.bar.buttons.modules.power.border": "#e78284", "theme.bar.buttons.modules.weather.border": "#babbf1", "theme.bar.buttons.modules.updates.border": "#ca9ee6", "theme.bar.buttons.modules.kbLayout.border": "#99d1db", "theme.bar.buttons.modules.netstat.border": "#a6d189", "theme.bar.buttons.modules.storage.border": "#e78284", "theme.bar.buttons.modules.cpu.border": "#e78284", "theme.bar.buttons.modules.ram.border": "#e5c890", "theme.bar.buttons.notifications.border": "#babbf1", "theme.bar.buttons.clock.border": "#f4b8e4", "theme.bar.buttons.battery.border": "#e5c890", "theme.bar.buttons.systray.border": "#51576d", "theme.bar.buttons.bluetooth.border": "#99d1db", "theme.bar.buttons.network.border": "#ca9ee6", "theme.bar.buttons.volume.border": "#ea999c", "theme.bar.buttons.media.border": "#babbf1", "theme.bar.buttons.windowtitle.border": "#f4b8e4", "theme.bar.buttons.workspaces.border": "#232634", "theme.bar.buttons.dashboard.border": "#e5c890", "theme.bar.buttons.modules.submap.background": "#303446", "theme.bar.buttons.modules.submap.text": "#81c8be", "theme.bar.buttons.modules.submap.border": "#81c8be", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.icon_background": "#81c8be" } ================================================ FILE: .config/ags/themes/catppuccin_latte.json ================================================ { "theme.bar.menus.background": "#eff1f5", "theme.bar.background": "#eff1f5", "theme.bar.buttons.media.icon": "#7287fd", "theme.bar.buttons.media.text": "#7287fd", "theme.bar.buttons.icon": "#7287fd", "theme.bar.buttons.text": "#7287fd", "theme.bar.buttons.hover": "#bcc0cc", "theme.bar.buttons.background": "#e6e9ef", "theme.bar.menus.text": "#4c4f69", "theme.bar.menus.border.color": "#ccd0da", "theme.bar.buttons.media.background": "#dcdfe8", "theme.bar.menus.menu.volume.text": "#4c4f69", "theme.bar.menus.menu.volume.card.color": "#dcdfe8", "theme.bar.menus.menu.volume.label.color": "#e64553", "theme.bar.menus.popover.text": "#7287fd", "theme.bar.menus.popover.background": "#dce0e8", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#d20f39", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#d20f39", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#40a02b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#dce0e8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#4c4f69", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#7287fd", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#ccd0da", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#dce0e8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#eff1f5", "theme.bar.menus.menu.notifications.switch.puck": "#bcc0cc", "theme.bar.menus.menu.notifications.switch.disabled": "#ccd0da", "theme.bar.menus.menu.notifications.switch.enabled": "#7287fd", "theme.bar.menus.menu.notifications.clear": "#d20f39", "theme.bar.menus.menu.notifications.switch_divider": "#bcc0cc", "theme.bar.menus.menu.notifications.border": "#ccd0da", "theme.bar.menus.menu.notifications.card": "#dcdfe8", "theme.bar.menus.menu.notifications.background": "#eff1f5", "theme.bar.menus.menu.notifications.no_notifications_label": "#ccd0da", "theme.bar.menus.menu.notifications.label": "#7287fd", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#ea76cb", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#ea76cb", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#ea76cb", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#40a02b", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#40a02b", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#40a02b", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#df8e1d", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#df8e1d", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#df8e1d", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#e64553", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#e64553", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#e64553", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#bcc0cc", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#7287fd", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#8839ef", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#179299", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#e64553", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#df8e1d", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#ea76cb", "theme.bar.menus.menu.dashboard.controls.input.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.input.background": "#ea76cb", "theme.bar.menus.menu.dashboard.controls.volume.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.volume.background": "#e64553", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#df8e1d", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#04a5e5", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#8839ef", "theme.bar.menus.menu.dashboard.controls.disabled": "#acb0be", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#40a02b", "theme.bar.menus.menu.dashboard.shortcuts.text": "#dce0e8", "theme.bar.menus.menu.dashboard.shortcuts.background": "#7287fd", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#04a5e5", "theme.bar.menus.menu.dashboard.powermenu.logout": "#40a02b", "theme.bar.menus.menu.dashboard.powermenu.restart": "#fe640b", "theme.bar.menus.menu.dashboard.profile.name": "#ea76cb", "theme.bar.menus.menu.dashboard.border.color": "#ccd0da", "theme.bar.menus.menu.dashboard.background.color": "#eff1f5", "theme.bar.menus.menu.dashboard.card.color": "#dcdfe8", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#ea76cb", "theme.bar.menus.menu.clock.weather.hourly.icon": "#ea76cb", "theme.bar.menus.menu.clock.weather.hourly.time": "#ea76cb", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#04a5e5", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#1e66f5", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#7287fd", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#fe640b", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#d20f39", "theme.bar.menus.menu.clock.weather.stats": "#ea76cb", "theme.bar.menus.menu.clock.weather.status": "#179299", "theme.bar.menus.menu.clock.weather.temperature": "#4c4f69", "theme.bar.menus.menu.clock.weather.icon": "#ea76cb", "theme.bar.menus.menu.clock.calendar.contextdays": "#acb0be", "theme.bar.menus.menu.clock.calendar.days": "#4c4f69", "theme.bar.menus.menu.clock.calendar.currentday": "#ea76cb", "theme.bar.menus.menu.clock.calendar.paginator": "#ea76cb", "theme.bar.menus.menu.clock.calendar.weekdays": "#ea76cb", "theme.bar.menus.menu.clock.calendar.yearmonth": "#179299", "theme.bar.menus.menu.clock.time.timeperiod": "#179299", "theme.bar.menus.menu.clock.time.time": "#ea76cb", "theme.bar.menus.menu.clock.text": "#4c4f69", "theme.bar.menus.menu.clock.border.color": "#ccd0da", "theme.bar.menus.menu.clock.background.color": "#eff1f5", "theme.bar.menus.menu.clock.card.color": "#dcdfe8", "theme.bar.menus.menu.battery.slider.puck": "#9ca0b0", "theme.bar.menus.menu.battery.slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.battery.slider.background": "#acb0be", "theme.bar.menus.menu.battery.slider.primary": "#df8e1d", "theme.bar.menus.menu.battery.icons.active": "#df8e1d", "theme.bar.menus.menu.battery.icons.passive": "#7c7f93", "theme.bar.menus.menu.battery.listitems.active": "#df8e1d", "theme.bar.menus.menu.battery.listitems.passive": "#4c4f69", "theme.bar.menus.menu.battery.text": "#4c4f69", "theme.bar.menus.menu.battery.label.color": "#df8e1d", "theme.bar.menus.menu.battery.border.color": "#ccd0da", "theme.bar.menus.menu.battery.background.color": "#eff1f5", "theme.bar.menus.menu.battery.card.color": "#dcdfe8", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#eff1f5", "theme.bar.menus.menu.systray.dropdownmenu.text": "#4c4f69", "theme.bar.menus.menu.systray.dropdownmenu.background": "#dce0e8", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#04a5e5", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#4c4f69", "theme.bar.menus.menu.bluetooth.icons.active": "#04a5e5", "theme.bar.menus.menu.bluetooth.icons.passive": "#7c7f93", "theme.bar.menus.menu.bluetooth.listitems.active": "#04a5e5", "theme.bar.menus.menu.bluetooth.listitems.passive": "#4c4f69", "theme.bar.menus.menu.bluetooth.switch.puck": "#bcc0cc", "theme.bar.menus.menu.bluetooth.switch.disabled": "#ccd0da", "theme.bar.menus.menu.bluetooth.switch.enabled": "#04a5e5", "theme.bar.menus.menu.bluetooth.switch_divider": "#bcc0cc", "theme.bar.menus.menu.bluetooth.status": "#9ca0b0", "theme.bar.menus.menu.bluetooth.text": "#4c4f69", "theme.bar.menus.menu.bluetooth.label.color": "#04a5e5", "theme.bar.menus.menu.bluetooth.border.color": "#ccd0da", "theme.bar.menus.menu.bluetooth.background.color": "#eff1f5", "theme.bar.menus.menu.bluetooth.card.color": "#dcdfe8", "theme.bar.menus.menu.network.iconbuttons.active": "#8839ef", "theme.bar.menus.menu.network.iconbuttons.passive": "#4c4f69", "theme.bar.menus.menu.network.icons.active": "#8839ef", "theme.bar.menus.menu.network.icons.passive": "#7c7f93", "theme.bar.menus.menu.network.listitems.active": "#8839ef", "theme.bar.menus.menu.network.listitems.passive": "#4c4f69", "theme.bar.menus.menu.network.status.color": "#9ca0b0", "theme.bar.menus.menu.network.text": "#4c4f69", "theme.bar.menus.menu.network.label.color": "#8839ef", "theme.bar.menus.menu.network.border.color": "#ccd0da", "theme.bar.menus.menu.network.background.color": "#eff1f5", "theme.bar.menus.menu.network.card.color": "#dcdfe8", "theme.bar.menus.menu.volume.input_slider.puck": "#acb0be", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.volume.input_slider.background": "#acb0be", "theme.bar.menus.menu.volume.input_slider.primary": "#e64553", "theme.bar.menus.menu.volume.audio_slider.puck": "#acb0be", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.volume.audio_slider.background": "#acb0be", "theme.bar.menus.menu.volume.audio_slider.primary": "#e64553", "theme.bar.menus.menu.volume.icons.active": "#e64553", "theme.bar.menus.menu.volume.icons.passive": "#7c7f93", "theme.bar.menus.menu.volume.iconbutton.active": "#e64553", "theme.bar.menus.menu.volume.iconbutton.passive": "#4c4f69", "theme.bar.menus.menu.volume.listitems.active": "#e64553", "theme.bar.menus.menu.volume.listitems.passive": "#4c4f69", "theme.bar.menus.menu.volume.border.color": "#ccd0da", "theme.bar.menus.menu.volume.background.color": "#e6e9ef", "theme.bar.menus.menu.media.slider.puck": "#9ca0b0", "theme.bar.menus.menu.media.slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.media.slider.background": "#acb0be", "theme.bar.menus.menu.media.slider.primary": "#ea76cb", "theme.bar.menus.menu.media.buttons.text": "#dce0e8", "theme.bar.menus.menu.media.buttons.background": "#7287fd", "theme.bar.menus.menu.media.buttons.enabled": "#179299", "theme.bar.menus.menu.media.buttons.inactive": "#acb0be", "theme.bar.menus.menu.media.border.color": "#ccd0da", "theme.bar.menus.menu.media.background.color": "#eff1f5", "theme.bar.menus.menu.media.album": "#ea76cb", "theme.bar.menus.menu.media.artist": "#179299", "theme.bar.menus.menu.media.song": "#7287fd", "theme.bar.menus.tooltip.text": "#4c4f69", "theme.bar.menus.tooltip.background": "#dce0e8", "theme.bar.menus.dropdownmenu.divider": "#eff1f5", "theme.bar.menus.dropdownmenu.text": "#4c4f69", "theme.bar.menus.dropdownmenu.background": "#dce0e8", "theme.bar.menus.slider.puck": "#9ca0b0", "theme.bar.menus.slider.backgroundhover": "#bcc0cc", "theme.bar.menus.slider.background": "#acb0be", "theme.bar.menus.slider.primary": "#7287fd", "theme.bar.menus.progressbar.background": "#bcc0cc", "theme.bar.menus.progressbar.foreground": "#7287fd", "theme.bar.menus.iconbuttons.active": "#7287fd", "theme.bar.menus.iconbuttons.passive": "#4c4f69", "theme.bar.menus.buttons.text": "#dce0e8", "theme.bar.menus.buttons.disabled": "#acb0be", "theme.bar.menus.buttons.active": "#ea76cb", "theme.bar.menus.buttons.default": "#7287fd", "theme.bar.menus.switch.puck": "#bcc0cc", "theme.bar.menus.switch.disabled": "#ccd0da", "theme.bar.menus.switch.enabled": "#7287fd", "theme.bar.menus.icons.active": "#7287fd", "theme.bar.menus.icons.passive": "#acb0be", "theme.bar.menus.listitems.active": "#7287fd", "theme.bar.menus.listitems.passive": "#4c4f69", "theme.bar.menus.label": "#7287fd", "theme.bar.menus.feinttext": "#ccd0da", "theme.bar.menus.dimtext": "#acb0be", "theme.bar.menus.cards": "#dce0e8", "theme.bar.buttons.notifications.total": "#7287fd", "theme.bar.buttons.notifications.icon": "#7287fd", "theme.bar.buttons.notifications.background": "#dcdfe8", "theme.bar.buttons.clock.icon": "#ea76cb", "theme.bar.buttons.clock.text": "#ea76cb", "theme.bar.buttons.clock.background": "#dcdfe8", "theme.bar.buttons.battery.icon": "#df8e1d", "theme.bar.buttons.battery.text": "#df8e1d", "theme.bar.buttons.battery.background": "#dcdfe8", "theme.bar.buttons.systray.background": "#dcdfe8", "theme.bar.buttons.bluetooth.icon": "#04a5e5", "theme.bar.buttons.bluetooth.text": "#04a5e5", "theme.bar.buttons.bluetooth.background": "#dcdfe8", "theme.bar.buttons.network.icon": "#8839ef", "theme.bar.buttons.network.text": "#8839ef", "theme.bar.buttons.network.background": "#dcdfe8", "theme.bar.buttons.volume.icon": "#e64553", "theme.bar.buttons.volume.text": "#e64553", "theme.bar.buttons.volume.background": "#dcdfe8", "theme.bar.buttons.windowtitle.icon": "#ea76cb", "theme.bar.buttons.windowtitle.text": "#ea76cb", "theme.bar.buttons.windowtitle.background": "#dcdfe8", "theme.bar.buttons.workspaces.active": "#ea76cb", "theme.bar.buttons.workspaces.occupied": "#dd7878", "theme.bar.buttons.workspaces.available": "#04a5e5", "theme.bar.buttons.workspaces.hover": "#bcc0cc", "theme.bar.buttons.workspaces.background": "#dcdfe8", "theme.bar.buttons.dashboard.icon": "#df8e1d", "theme.bar.buttons.dashboard.background": "#dcdfe8", "theme.osd.label": "#7287fd", "theme.osd.icon": "#ccd0da", "theme.osd.bar_overflow_color": "#d20f39", "theme.osd.bar_empty_color": "#acb0be", "theme.osd.bar_color": "#7287fd", "theme.osd.icon_container": "#7287fd", "theme.osd.bar_container": "#ccd0da", "theme.notification.close_button.label": "#dce0e8", "theme.notification.close_button.background": "#d20f39", "theme.notification.labelicon": "#7287fd", "theme.notification.text": "#4c4f69", "theme.notification.time": "#8c8fa1", "theme.notification.border": "#ccd0da", "theme.notification.label": "#7287fd", "theme.notification.actions.text": "#dce0e8", "theme.notification.actions.background": "#7287fd", "theme.notification.background": "#ccd0da", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.menus.menu.media.card.color": "#dcdfe8", "theme.bar.menus.check_radio_button.background": "#dcdfe8", "theme.bar.menus.check_radio_button.active": "#7186fd", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#7287fd", "theme.bar.menus.menu.notifications.scrollbar.color": "#7287fd", "theme.bar.menus.menu.notifications.pager.label": "#7c7f93", "theme.bar.menus.menu.notifications.pager.background": "#eff1f5", "theme.bar.buttons.clock.icon_background": "#ea76cb", "theme.bar.buttons.modules.ram.icon": "#df8e1d", "theme.bar.buttons.modules.storage.icon_background": "#d20f39", "theme.bar.menus.popover.border": "#dce0e8", "theme.bar.buttons.volume.icon_background": "#e64553", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#04a5e5", "theme.bar.menus.menu.power.buttons.restart.text": "#fe640b", "theme.bar.buttons.modules.updates.background": "#dcdfe8", "theme.bar.buttons.modules.storage.icon": "#d20f39", "theme.bar.buttons.modules.netstat.background": "#dcdfe8", "theme.bar.buttons.modules.weather.icon": "#7287fd", "theme.bar.buttons.modules.netstat.text": "#40a02b", "theme.bar.buttons.modules.storage.background": "#dcdfe8", "theme.bar.buttons.modules.power.icon": "#d20f39", "theme.bar.buttons.modules.storage.text": "#d20f39", "theme.bar.buttons.modules.cpu.background": "#dcdfe8", "theme.bar.menus.menu.power.border.color": "#ccd0da", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#d20f39", "theme.bar.menus.menu.power.buttons.logout.icon": "#dce0e8", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#fe640b", "theme.bar.menus.menu.power.buttons.restart.icon": "#dce0e8", "theme.bar.buttons.modules.cpu.icon": "#d20f39", "theme.bar.buttons.battery.icon_background": "#df8e1d", "theme.bar.buttons.modules.kbLayout.icon_background": "#04a5e5", "theme.bar.buttons.modules.weather.text": "#7287fd", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#dce0e8", "theme.bar.menus.menu.power.buttons.sleep.text": "#04a5e5", "theme.bar.buttons.modules.weather.icon_background": "#7287fd", "theme.bar.menus.menu.power.buttons.shutdown.background": "#dcdfe8", "theme.bar.buttons.media.icon_background": "#7287fd", "theme.bar.menus.menu.power.buttons.logout.background": "#dcdfe8", "theme.bar.buttons.modules.kbLayout.icon": "#04a5e5", "theme.bar.buttons.modules.ram.icon_background": "#df8e1d", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#d20f39", "theme.bar.menus.menu.power.buttons.shutdown.text": "#d20f39", "theme.bar.menus.menu.power.buttons.sleep.background": "#dcdfe8", "theme.bar.buttons.modules.ram.text": "#df8e1d", "theme.bar.menus.menu.power.buttons.logout.text": "#40a02b", "theme.bar.buttons.modules.updates.icon_background": "#8839ef", "theme.bar.buttons.modules.kbLayout.background": "#dcdfe8", "theme.bar.buttons.modules.power.background": "#dcdfe8", "theme.bar.buttons.modules.weather.background": "#dcdfe8", "theme.bar.buttons.icon_background": "#dcdfe8", "theme.bar.menus.menu.power.background.color": "#eff1f5", "theme.bar.buttons.modules.ram.background": "#dcdfe8", "theme.bar.buttons.modules.netstat.icon": "#40a02b", "theme.bar.buttons.windowtitle.icon_background": "#ea76cb", "theme.bar.buttons.modules.cpu.icon_background": "#d20f39", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#40a02b", "theme.bar.buttons.modules.updates.text": "#8839ef", "theme.bar.menus.menu.power.buttons.sleep.icon": "#dce0e8", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#dcdfe8", "theme.bar.buttons.modules.updates.icon": "#8839ef", "theme.bar.buttons.modules.cpu.text": "#d20f39", "theme.bar.buttons.modules.netstat.icon_background": "#40a02b", "theme.bar.buttons.modules.kbLayout.text": "#04a5e5", "theme.bar.buttons.notifications.icon_background": "#7287fd", "theme.bar.buttons.modules.power.border": "#d20f39", "theme.bar.buttons.modules.weather.border": "#7287fd", "theme.bar.buttons.modules.updates.border": "#8839ef", "theme.bar.buttons.modules.kbLayout.border": "#04a5e5", "theme.bar.buttons.modules.netstat.border": "#40a02b", "theme.bar.buttons.modules.storage.border": "#d20f39", "theme.bar.buttons.modules.cpu.border": "#d20f39", "theme.bar.buttons.modules.ram.border": "#df8e1d", "theme.bar.buttons.notifications.border": "#7287fd", "theme.bar.buttons.clock.border": "#ea76cb", "theme.bar.buttons.battery.border": "#df8e1d", "theme.bar.buttons.systray.border": "#bcc0cc", "theme.bar.buttons.bluetooth.border": "#04a5e5", "theme.bar.buttons.network.border": "#8839ef", "theme.bar.buttons.volume.border": "#e64553", "theme.bar.buttons.media.border": "#7287fd", "theme.bar.buttons.windowtitle.border": "#ea76cb", "theme.bar.buttons.workspaces.border": "#dce0e8", "theme.bar.buttons.dashboard.border": "#df8e1d", "theme.bar.buttons.modules.submap.background": "#dcdfe8", "theme.bar.buttons.modules.submap.text": "#179299", "theme.bar.buttons.modules.submap.border": "#179299", "theme.bar.buttons.modules.submap.icon": "#179299", "theme.bar.buttons.modules.submap.icon_background": "#dcdfe8" } ================================================ FILE: .config/ags/themes/catppuccin_latte_split.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#7287fd", "theme.bar.menus.menu.notifications.pager.label": "#7c7f93", "theme.bar.menus.menu.notifications.pager.button": "#7287fd", "theme.bar.menus.menu.notifications.pager.background": "#eff1f5", "theme.bar.menus.menu.notifications.switch.puck": "#bcc0cc", "theme.bar.menus.menu.notifications.switch.disabled": "#ccd0da", "theme.bar.menus.menu.notifications.switch.enabled": "#7287fd", "theme.bar.menus.menu.notifications.clear": "#d20f39", "theme.bar.menus.menu.notifications.switch_divider": "#bcc0cc", "theme.bar.menus.menu.notifications.border": "#ccd0da", "theme.bar.menus.menu.notifications.card": "#dcdfe8", "theme.bar.menus.menu.notifications.background": "#eff1f5", "theme.bar.menus.menu.notifications.no_notifications_label": "#ccd0da", "theme.bar.menus.menu.notifications.label": "#7287fd", "theme.bar.menus.menu.power.buttons.sleep.icon": "#dce0e8", "theme.bar.menus.menu.power.buttons.sleep.text": "#04a5e5", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#04a5e5", "theme.bar.menus.menu.power.buttons.sleep.background": "#dcdfe8", "theme.bar.menus.menu.power.buttons.logout.icon": "#dce0e8", "theme.bar.menus.menu.power.buttons.logout.text": "#40a02b", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#40a02b", "theme.bar.menus.menu.power.buttons.logout.background": "#dcdfe8", "theme.bar.menus.menu.power.buttons.restart.icon": "#dce0e8", "theme.bar.menus.menu.power.buttons.restart.text": "#fe640b", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#fe640b", "theme.bar.menus.menu.power.buttons.restart.background": "#dcdfe8", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#dce0e8", "theme.bar.menus.menu.power.buttons.shutdown.text": "#d20f39", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#d20f39", "theme.bar.menus.menu.power.buttons.shutdown.background": "#dcdfe8", "theme.bar.menus.menu.power.border.color": "#ccd0da", "theme.bar.menus.menu.power.background.color": "#eff1f5", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#ea76cb", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#ea76cb", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#ea76cb", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#40a02b", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#40a02b", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#40a02b", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#df8e1d", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#df8e1d", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#df8e1d", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#e64553", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#e64553", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#e64553", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#bcc0cc", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#7287fd", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#8839ef", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#179299", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#e64553", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#df8e1d", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#ea76cb", "theme.bar.menus.menu.dashboard.controls.input.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.input.background": "#ea76cb", "theme.bar.menus.menu.dashboard.controls.volume.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.volume.background": "#e64553", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#df8e1d", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#04a5e5", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#dce0e8", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#8839ef", "theme.bar.menus.menu.dashboard.controls.disabled": "#acb0be", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#40a02b", "theme.bar.menus.menu.dashboard.shortcuts.text": "#dce0e8", "theme.bar.menus.menu.dashboard.shortcuts.background": "#7287fd", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#dce0e8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#d20f39", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#40a02b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#4c4f69", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#7287fd", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#ccd0da", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#dce0e8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#eff1f5", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#04a5e5", "theme.bar.menus.menu.dashboard.powermenu.logout": "#40a02b", "theme.bar.menus.menu.dashboard.powermenu.restart": "#fe640b", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#d20f39", "theme.bar.menus.menu.dashboard.profile.name": "#ea76cb", "theme.bar.menus.menu.dashboard.border.color": "#ccd0da", "theme.bar.menus.menu.dashboard.background.color": "#eff1f5", "theme.bar.menus.menu.dashboard.card.color": "#dcdfe8", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#ea76cb", "theme.bar.menus.menu.clock.weather.hourly.icon": "#ea76cb", "theme.bar.menus.menu.clock.weather.hourly.time": "#ea76cb", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#04a5e5", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#1e66f5", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#7287fd", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#fe640b", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#d20f39", "theme.bar.menus.menu.clock.weather.stats": "#ea76cb", "theme.bar.menus.menu.clock.weather.status": "#179299", "theme.bar.menus.menu.clock.weather.temperature": "#4c4f69", "theme.bar.menus.menu.clock.weather.icon": "#ea76cb", "theme.bar.menus.menu.clock.calendar.contextdays": "#acb0be", "theme.bar.menus.menu.clock.calendar.days": "#4c4f69", "theme.bar.menus.menu.clock.calendar.currentday": "#ea76cb", "theme.bar.menus.menu.clock.calendar.paginator": "#ea76cb", "theme.bar.menus.menu.clock.calendar.weekdays": "#ea76cb", "theme.bar.menus.menu.clock.calendar.yearmonth": "#179299", "theme.bar.menus.menu.clock.time.timeperiod": "#179299", "theme.bar.menus.menu.clock.time.time": "#ea76cb", "theme.bar.menus.menu.clock.text": "#4c4f69", "theme.bar.menus.menu.clock.border.color": "#ccd0da", "theme.bar.menus.menu.clock.background.color": "#eff1f5", "theme.bar.menus.menu.clock.card.color": "#dcdfe8", "theme.bar.menus.menu.battery.slider.puck": "#9ca0b0", "theme.bar.menus.menu.battery.slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.battery.slider.background": "#acb0be", "theme.bar.menus.menu.battery.slider.primary": "#df8e1d", "theme.bar.menus.menu.battery.icons.active": "#df8e1d", "theme.bar.menus.menu.battery.icons.passive": "#7c7f93", "theme.bar.menus.menu.battery.listitems.active": "#df8e1d", "theme.bar.menus.menu.battery.listitems.passive": "#4c4f69", "theme.bar.menus.menu.battery.text": "#4c4f69", "theme.bar.menus.menu.battery.label.color": "#df8e1d", "theme.bar.menus.menu.battery.border.color": "#ccd0da", "theme.bar.menus.menu.battery.background.color": "#eff1f5", "theme.bar.menus.menu.battery.card.color": "#dcdfe8", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#eff1f5", "theme.bar.menus.menu.systray.dropdownmenu.text": "#4c4f69", "theme.bar.menus.menu.systray.dropdownmenu.background": "#dce0e8", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#04a5e5", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#4c4f69", "theme.bar.menus.menu.bluetooth.icons.active": "#04a5e5", "theme.bar.menus.menu.bluetooth.icons.passive": "#7c7f93", "theme.bar.menus.menu.bluetooth.listitems.active": "#04a5e5", "theme.bar.menus.menu.bluetooth.listitems.passive": "#4c4f69", "theme.bar.menus.menu.bluetooth.switch.puck": "#bcc0cc", "theme.bar.menus.menu.bluetooth.switch.disabled": "#ccd0da", "theme.bar.menus.menu.bluetooth.switch.enabled": "#04a5e5", "theme.bar.menus.menu.bluetooth.switch_divider": "#bcc0cc", "theme.bar.menus.menu.bluetooth.status": "#9ca0b0", "theme.bar.menus.menu.bluetooth.text": "#4c4f69", "theme.bar.menus.menu.bluetooth.label.color": "#04a5e5", "theme.bar.menus.menu.bluetooth.border.color": "#ccd0da", "theme.bar.menus.menu.bluetooth.background.color": "#eff1f5", "theme.bar.menus.menu.bluetooth.card.color": "#dcdfe8", "theme.bar.menus.menu.network.iconbuttons.active": "#8839ef", "theme.bar.menus.menu.network.iconbuttons.passive": "#4c4f69", "theme.bar.menus.menu.network.icons.active": "#8839ef", "theme.bar.menus.menu.network.icons.passive": "#7c7f93", "theme.bar.menus.menu.network.listitems.active": "#8839ef", "theme.bar.menus.menu.network.listitems.passive": "#4c4f69", "theme.bar.menus.menu.network.status.color": "#9ca0b0", "theme.bar.menus.menu.network.text": "#4c4f69", "theme.bar.menus.menu.network.label.color": "#8839ef", "theme.bar.menus.menu.network.border.color": "#ccd0da", "theme.bar.menus.menu.network.background.color": "#eff1f5", "theme.bar.menus.menu.network.card.color": "#dcdfe8", "theme.bar.menus.menu.volume.input_slider.puck": "#acb0be", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.volume.input_slider.background": "#acb0be", "theme.bar.menus.menu.volume.input_slider.primary": "#e64553", "theme.bar.menus.menu.volume.audio_slider.puck": "#acb0be", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.volume.audio_slider.background": "#acb0be", "theme.bar.menus.menu.volume.audio_slider.primary": "#e64553", "theme.bar.menus.menu.volume.icons.active": "#e64553", "theme.bar.menus.menu.volume.icons.passive": "#7c7f93", "theme.bar.menus.menu.volume.iconbutton.active": "#e64553", "theme.bar.menus.menu.volume.iconbutton.passive": "#4c4f69", "theme.bar.menus.menu.volume.listitems.active": "#e64553", "theme.bar.menus.menu.volume.listitems.passive": "#4c4f69", "theme.bar.menus.menu.volume.text": "#4c4f69", "theme.bar.menus.menu.volume.label.color": "#e64553", "theme.bar.menus.menu.volume.border.color": "#ccd0da", "theme.bar.menus.menu.volume.background.color": "#e6e9ef", "theme.bar.menus.menu.volume.card.color": "#dcdfe8", "theme.bar.menus.menu.media.slider.puck": "#9ca0b0", "theme.bar.menus.menu.media.slider.backgroundhover": "#bcc0cc", "theme.bar.menus.menu.media.slider.background": "#acb0be", "theme.bar.menus.menu.media.slider.primary": "#ea76cb", "theme.bar.menus.menu.media.buttons.text": "#dce0e8", "theme.bar.menus.menu.media.buttons.background": "#7287fd", "theme.bar.menus.menu.media.buttons.enabled": "#179299", "theme.bar.menus.menu.media.buttons.inactive": "#acb0be", "theme.bar.menus.menu.media.border.color": "#ccd0da", "theme.bar.menus.menu.media.card.color": "#dcdfe8", "theme.bar.menus.menu.media.background.color": "#eff1f5", "theme.bar.menus.menu.media.album": "#ea76cb", "theme.bar.menus.menu.media.artist": "#179299", "theme.bar.menus.menu.media.song": "#7287fd", "theme.bar.menus.tooltip.text": "#4c4f69", "theme.bar.menus.tooltip.background": "#dce0e8", "theme.bar.menus.dropdownmenu.divider": "#eff1f5", "theme.bar.menus.dropdownmenu.text": "#4c4f69", "theme.bar.menus.dropdownmenu.background": "#dce0e8", "theme.bar.menus.slider.puck": "#9ca0b0", "theme.bar.menus.slider.backgroundhover": "#bcc0cc", "theme.bar.menus.slider.background": "#acb0be", "theme.bar.menus.slider.primary": "#7287fd", "theme.bar.menus.progressbar.background": "#bcc0cc", "theme.bar.menus.progressbar.foreground": "#7287fd", "theme.bar.menus.iconbuttons.active": "#7287fd", "theme.bar.menus.iconbuttons.passive": "#4c4f69", "theme.bar.menus.buttons.text": "#dce0e8", "theme.bar.menus.buttons.disabled": "#acb0be", "theme.bar.menus.buttons.active": "#ea76cb", "theme.bar.menus.buttons.default": "#7287fd", "theme.bar.menus.check_radio_button.active": "#7186fd", "theme.bar.menus.check_radio_button.background": "#dcdfe8", "theme.bar.menus.switch.puck": "#bcc0cc", "theme.bar.menus.switch.disabled": "#ccd0da", "theme.bar.menus.switch.enabled": "#7287fd", "theme.bar.menus.icons.active": "#7287fd", "theme.bar.menus.icons.passive": "#acb0be", "theme.bar.menus.listitems.active": "#7287fd", "theme.bar.menus.listitems.passive": "#4c4f69", "theme.bar.menus.popover.border": "#dce0e8", "theme.bar.menus.popover.background": "#dce0e8", "theme.bar.menus.popover.text": "#7287fd", "theme.bar.menus.label": "#7287fd", "theme.bar.menus.feinttext": "#ccd0da", "theme.bar.menus.dimtext": "#acb0be", "theme.bar.menus.text": "#4c4f69", "theme.bar.menus.border.color": "#ccd0da", "theme.bar.menus.cards": "#dce0e8", "theme.bar.menus.background": "#eff1f5", "theme.bar.buttons.modules.power.icon_background": "#d20f39", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.buttons.modules.power.background": "#dcdfe8", "theme.bar.buttons.modules.power.border": "#d20f39", "theme.bar.buttons.modules.weather.icon_background": "#7287fd", "theme.bar.buttons.modules.weather.icon": "#dcdfe8", "theme.bar.buttons.modules.weather.text": "#7287fd", "theme.bar.buttons.modules.weather.background": "#dcdfe8", "theme.bar.buttons.modules.weather.border": "#7287fd", "theme.bar.buttons.modules.updates.icon_background": "#8839ef", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.updates.text": "#8839ef", "theme.bar.buttons.modules.updates.background": "#dcdfe8", "theme.bar.buttons.modules.updates.border": "#8839ef", "theme.bar.buttons.modules.kbLayout.icon_background": "#04a5e5", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.kbLayout.text": "#04a5e5", "theme.bar.buttons.modules.kbLayout.background": "#dcdfe8", "theme.bar.buttons.modules.kbLayout.border": "#04a5e5", "theme.bar.buttons.modules.netstat.icon_background": "#40a02b", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.netstat.text": "#40a02b", "theme.bar.buttons.modules.netstat.background": "#dcdfe8", "theme.bar.buttons.modules.netstat.border": "#40a02b", "theme.bar.buttons.modules.storage.icon_background": "#d20f39", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.storage.text": "#d20f39", "theme.bar.buttons.modules.storage.background": "#dcdfe8", "theme.bar.buttons.modules.storage.border": "#d20f39", "theme.bar.buttons.modules.cpu.icon_background": "#d20f39", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.cpu.text": "#d20f39", "theme.bar.buttons.modules.cpu.background": "#dcdfe8", "theme.bar.buttons.modules.cpu.border": "#d20f39", "theme.bar.buttons.modules.ram.icon_background": "#df8e1d", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.ram.text": "#df8e1d", "theme.bar.buttons.modules.ram.background": "#dcdfe8", "theme.bar.buttons.modules.ram.border": "#df8e1d", "theme.bar.buttons.notifications.total": "#7287fd", "theme.bar.buttons.notifications.icon_background": "#7287fd", "theme.bar.buttons.notifications.icon": "#dcdee8", "theme.bar.buttons.notifications.background": "#dcdfe8", "theme.bar.buttons.notifications.border": "#7287fd", "theme.bar.buttons.clock.icon_background": "#ea76cb", "theme.bar.buttons.clock.icon": "#dcdee8", "theme.bar.buttons.clock.text": "#ea76cb", "theme.bar.buttons.clock.background": "#dcdfe8", "theme.bar.buttons.clock.border": "#ea76cb", "theme.bar.buttons.battery.icon_background": "#df8e1d", "theme.bar.buttons.battery.icon": "#dcdee8", "theme.bar.buttons.battery.text": "#df8e1d", "theme.bar.buttons.battery.background": "#dcdfe8", "theme.bar.buttons.battery.border": "#df8e1d", "theme.bar.buttons.systray.background": "#dcdfe8", "theme.bar.buttons.systray.border": "#bcc0cc", "theme.bar.buttons.bluetooth.icon_background": "#04a5e5", "theme.bar.buttons.bluetooth.icon": "#dcdee8", "theme.bar.buttons.bluetooth.text": "#04a5e5", "theme.bar.buttons.bluetooth.background": "#dcdfe8", "theme.bar.buttons.bluetooth.border": "#04a5e5", "theme.bar.buttons.network.icon_background": "#8839ef", "theme.bar.buttons.network.icon": "#dcdee8", "theme.bar.buttons.network.text": "#8839ef", "theme.bar.buttons.network.background": "#dcdfe8", "theme.bar.buttons.network.border": "#8839ef", "theme.bar.buttons.volume.icon_background": "#e64553", "theme.bar.buttons.volume.icon": "#dcdee8", "theme.bar.buttons.volume.text": "#e64553", "theme.bar.buttons.volume.background": "#dcdfe8", "theme.bar.buttons.volume.border": "#e64553", "theme.bar.buttons.media.icon_background": "#7287fd", "theme.bar.buttons.media.icon": "#dcdee8", "theme.bar.buttons.media.text": "#7287fd", "theme.bar.buttons.media.background": "#dcdfe8", "theme.bar.buttons.media.border": "#7287fd", "theme.bar.buttons.windowtitle.icon_background": "#ea76cb", "theme.bar.buttons.windowtitle.icon": "#dcdee8", "theme.bar.buttons.windowtitle.text": "#ea76cb", "theme.bar.buttons.windowtitle.border": "#ea76cb", "theme.bar.buttons.windowtitle.background": "#dcdfe8", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.hover": "#bcc0cc", "theme.bar.buttons.workspaces.active": "#ea76cb", "theme.bar.buttons.workspaces.occupied": "#dd7878", "theme.bar.buttons.workspaces.available": "#04a5e5", "theme.bar.buttons.workspaces.border": "#dce0e8", "theme.bar.buttons.workspaces.background": "#dcdfe8", "theme.bar.buttons.dashboard.icon": "#dcdee8", "theme.bar.buttons.dashboard.border": "#df8e1d", "theme.bar.buttons.dashboard.background": "#df8e1d", "theme.bar.buttons.icon": "#7287fd", "theme.bar.buttons.text": "#7287fd", "theme.bar.buttons.hover": "#bcc0cc", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.background": "#e6e9ef", "theme.bar.buttons.style": "split", "theme.bar.background": "#eff1f5", "theme.osd.label": "#7287fd", "theme.osd.icon": "#ccd0da", "theme.osd.bar_overflow_color": "#d20f39", "theme.osd.bar_empty_color": "#acb0be", "theme.osd.bar_color": "#7287fd", "theme.osd.icon_container": "#7287fd", "theme.osd.bar_container": "#ccd0da", "theme.notification.close_button.label": "#dce0e8", "theme.notification.close_button.background": "#d20f39", "theme.notification.labelicon": "#7287fd", "theme.notification.text": "#4c4f69", "theme.notification.time": "#8c8fa1", "theme.notification.border": "#ccd0da", "theme.notification.label": "#7287fd", "theme.notification.actions.text": "#dce0e8", "theme.notification.actions.background": "#7287fd", "theme.notification.background": "#ccd0da", "theme.bar.buttons.modules.submap.background": "#dcdfe8", "theme.bar.buttons.modules.submap.text": "#179299", "theme.bar.buttons.modules.submap.border": "#179299", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.icon_background": "#179299" } ================================================ FILE: .config/ags/themes/catppuccin_macchiato.json ================================================ { "theme.bar.menus.background": "#181926", "theme.bar.background": "#181926", "theme.bar.buttons.media.icon": "#b7bdf8", "theme.bar.buttons.media.text": "#b7bdf8", "theme.bar.buttons.icon": "#b7bdf8", "theme.bar.buttons.text": "#b7bdf8", "theme.bar.buttons.hover": "#494d64", "theme.bar.buttons.background": "#24273a", "theme.bar.menus.text": "#cad3f5", "theme.bar.menus.border.color": "#363a4f", "theme.bar.buttons.media.background": "#24273a", "theme.bar.menus.menu.volume.text": "#cad3f5", "theme.bar.menus.menu.volume.card.color": "#1e2030", "theme.bar.menus.menu.volume.label.color": "#ee99a0", "theme.bar.menus.popover.text": "#b7bdf8", "theme.bar.menus.popover.background": "#181926", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#ed8796", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#ed8796", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a6da95", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#181926", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#cad3f5", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#b7bdf8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#363a4f", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#181926", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1e2030", "theme.bar.menus.menu.notifications.switch.puck": "#494d64", "theme.bar.menus.menu.notifications.switch.disabled": "#363a4f", "theme.bar.menus.menu.notifications.switch.enabled": "#b7bdf8", "theme.bar.menus.menu.notifications.clear": "#ed8796", "theme.bar.menus.menu.notifications.switch_divider": "#494d64", "theme.bar.menus.menu.notifications.border": "#363a4f", "theme.bar.menus.menu.notifications.card": "#1e2030", "theme.bar.menus.menu.notifications.background": "#181926", "theme.bar.menus.menu.notifications.no_notifications_label": "#363a4f", "theme.bar.menus.menu.notifications.label": "#b7bdf8", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f5bde6", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f5bde6", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f5bde6", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a6da95", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a6da95", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a6da95", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#eed49f", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#eed49f", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#eed49f", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ee99a0", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ee99a0", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ee99a0", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#494d64", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#b7bdf8", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#c6a0f6", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8bd5ca", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ee99a0", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#eed49f", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f5bde6", "theme.bar.menus.menu.dashboard.controls.input.text": "#181926", "theme.bar.menus.menu.dashboard.controls.input.background": "#f5bde6", "theme.bar.menus.menu.dashboard.controls.volume.text": "#181926", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ee99a0", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#181926", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#eed49f", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#181926", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#91d7e3", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#181926", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c6a0f6", "theme.bar.menus.menu.dashboard.controls.disabled": "#5b6078", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a6da95", "theme.bar.menus.menu.dashboard.shortcuts.text": "#181926", "theme.bar.menus.menu.dashboard.shortcuts.background": "#b7bdf8", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#91d7e3", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a6da95", "theme.bar.menus.menu.dashboard.powermenu.restart": "#f5a97f", "theme.bar.menus.menu.dashboard.profile.name": "#f5bde6", "theme.bar.menus.menu.dashboard.border.color": "#363a4f", "theme.bar.menus.menu.dashboard.background.color": "#181926", "theme.bar.menus.menu.dashboard.card.color": "#1e2030", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f5bde6", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f5bde6", "theme.bar.menus.menu.clock.weather.hourly.time": "#f5bde6", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#91d7e3", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#8aadf4", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#b7bdf8", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#f5a97f", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#ed8796", "theme.bar.menus.menu.clock.weather.stats": "#f5bde6", "theme.bar.menus.menu.clock.weather.status": "#8bd5ca", "theme.bar.menus.menu.clock.weather.temperature": "#cad3f5", "theme.bar.menus.menu.clock.weather.icon": "#f5bde6", "theme.bar.menus.menu.clock.calendar.contextdays": "#5b6078", "theme.bar.menus.menu.clock.calendar.days": "#cad3f5", "theme.bar.menus.menu.clock.calendar.currentday": "#f5bde6", "theme.bar.menus.menu.clock.calendar.paginator": "#f5bde6", "theme.bar.menus.menu.clock.calendar.weekdays": "#f5bde6", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8bd5ca", "theme.bar.menus.menu.clock.time.timeperiod": "#8bd5ca", "theme.bar.menus.menu.clock.time.time": "#f5bde6", "theme.bar.menus.menu.clock.text": "#cad3f5", "theme.bar.menus.menu.clock.border.color": "#363a4f", "theme.bar.menus.menu.clock.background.color": "#181926", "theme.bar.menus.menu.clock.card.color": "#1e2030", "theme.bar.menus.menu.battery.slider.puck": "#6e738d", "theme.bar.menus.menu.battery.slider.backgroundhover": "#494d64", "theme.bar.menus.menu.battery.slider.background": "#5b6078", "theme.bar.menus.menu.battery.slider.primary": "#eed49f", "theme.bar.menus.menu.battery.icons.active": "#eed49f", "theme.bar.menus.menu.battery.icons.passive": "#939ab7", "theme.bar.menus.menu.battery.listitems.active": "#eed49f", "theme.bar.menus.menu.battery.listitems.passive": "#cad3f5", "theme.bar.menus.menu.battery.text": "#cad3f5", "theme.bar.menus.menu.battery.label.color": "#eed49f", "theme.bar.menus.menu.battery.border.color": "#363a4f", "theme.bar.menus.menu.battery.background.color": "#181926", "theme.bar.menus.menu.battery.card.color": "#1e2030", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1e2030", "theme.bar.menus.menu.systray.dropdownmenu.text": "#cad3f5", "theme.bar.menus.menu.systray.dropdownmenu.background": "#181926", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#91d7e3", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#cad3f5", "theme.bar.menus.menu.bluetooth.icons.active": "#91d7e3", "theme.bar.menus.menu.bluetooth.icons.passive": "#939ab7", "theme.bar.menus.menu.bluetooth.listitems.active": "#91d7e3", "theme.bar.menus.menu.bluetooth.listitems.passive": "#cad3f5", "theme.bar.menus.menu.bluetooth.switch.puck": "#494d64", "theme.bar.menus.menu.bluetooth.switch.disabled": "#363a4f", "theme.bar.menus.menu.bluetooth.switch.enabled": "#91d7e3", "theme.bar.menus.menu.bluetooth.switch_divider": "#494d64", "theme.bar.menus.menu.bluetooth.status": "#6e738d", "theme.bar.menus.menu.bluetooth.text": "#cad3f5", "theme.bar.menus.menu.bluetooth.label.color": "#91d7e3", "theme.bar.menus.menu.bluetooth.border.color": "#363a4f", "theme.bar.menus.menu.bluetooth.background.color": "#181926", "theme.bar.menus.menu.bluetooth.card.color": "#1e2030", "theme.bar.menus.menu.network.iconbuttons.active": "#c6a0f6", "theme.bar.menus.menu.network.iconbuttons.passive": "#cad3f5", "theme.bar.menus.menu.network.icons.active": "#c6a0f6", "theme.bar.menus.menu.network.icons.passive": "#939ab7", "theme.bar.menus.menu.network.listitems.active": "#c6a0f6", "theme.bar.menus.menu.network.listitems.passive": "#cad3f5", "theme.bar.menus.menu.network.status.color": "#6e738d", "theme.bar.menus.menu.network.text": "#cad3f5", "theme.bar.menus.menu.network.label.color": "#c6a0f6", "theme.bar.menus.menu.network.border.color": "#363a4f", "theme.bar.menus.menu.network.background.color": "#181926", "theme.bar.menus.menu.network.card.color": "#1e2030", "theme.bar.menus.menu.volume.input_slider.puck": "#5b6078", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#494d64", "theme.bar.menus.menu.volume.input_slider.background": "#5b6078", "theme.bar.menus.menu.volume.input_slider.primary": "#ee99a0", "theme.bar.menus.menu.volume.audio_slider.puck": "#5b6078", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#494d64", "theme.bar.menus.menu.volume.audio_slider.background": "#5b6078", "theme.bar.menus.menu.volume.audio_slider.primary": "#ee99a0", "theme.bar.menus.menu.volume.icons.active": "#ee99a0", "theme.bar.menus.menu.volume.icons.passive": "#939ab7", "theme.bar.menus.menu.volume.iconbutton.active": "#ee99a0", "theme.bar.menus.menu.volume.iconbutton.passive": "#cad3f5", "theme.bar.menus.menu.volume.listitems.active": "#ee99a0", "theme.bar.menus.menu.volume.listitems.passive": "#cad3f5", "theme.bar.menus.menu.volume.border.color": "#363a4f", "theme.bar.menus.menu.volume.background.color": "#181926", "theme.bar.menus.menu.media.slider.puck": "#6e738d", "theme.bar.menus.menu.media.slider.backgroundhover": "#494d64", "theme.bar.menus.menu.media.slider.background": "#5b6078", "theme.bar.menus.menu.media.slider.primary": "#f5bde6", "theme.bar.menus.menu.media.buttons.text": "#181926", "theme.bar.menus.menu.media.buttons.background": "#b7bdf8", "theme.bar.menus.menu.media.buttons.enabled": "#8bd5ca", "theme.bar.menus.menu.media.buttons.inactive": "#5b6078", "theme.bar.menus.menu.media.border.color": "#363a4f", "theme.bar.menus.menu.media.background.color": "#181926", "theme.bar.menus.menu.media.album": "#f5bde6", "theme.bar.menus.menu.media.artist": "#8bd5ca", "theme.bar.menus.menu.media.song": "#b7bdf8", "theme.bar.menus.tooltip.text": "#cad3f5", "theme.bar.menus.tooltip.background": "#181926", "theme.bar.menus.dropdownmenu.divider": "#1e2030", "theme.bar.menus.dropdownmenu.text": "#cad3f5", "theme.bar.menus.dropdownmenu.background": "#181926", "theme.bar.menus.slider.puck": "#6e738d", "theme.bar.menus.slider.backgroundhover": "#494d64", "theme.bar.menus.slider.background": "#5b6078", "theme.bar.menus.slider.primary": "#b7bdf8", "theme.bar.menus.progressbar.background": "#494d64", "theme.bar.menus.progressbar.foreground": "#b7bdf8", "theme.bar.menus.iconbuttons.active": "#b7bdf8", "theme.bar.menus.iconbuttons.passive": "#cad3f5", "theme.bar.menus.buttons.text": "#181926", "theme.bar.menus.buttons.disabled": "#5b6078", "theme.bar.menus.buttons.active": "#f5bde6", "theme.bar.menus.buttons.default": "#b7bdf8", "theme.bar.menus.switch.puck": "#494d64", "theme.bar.menus.switch.disabled": "#363a4f", "theme.bar.menus.switch.enabled": "#b7bdf8", "theme.bar.menus.icons.active": "#b7bdf8", "theme.bar.menus.icons.passive": "#5b6078", "theme.bar.menus.listitems.active": "#b7bdf8", "theme.bar.menus.listitems.passive": "#cad3f5", "theme.bar.menus.label": "#b7bdf8", "theme.bar.menus.feinttext": "#363a4f", "theme.bar.menus.dimtext": "#5b6078", "theme.bar.menus.cards": "#1e2030", "theme.bar.buttons.notifications.total": "#b7bdf8", "theme.bar.buttons.notifications.icon": "#b7bdf8", "theme.bar.buttons.notifications.background": "#24273a", "theme.bar.buttons.clock.icon": "#f5bde6", "theme.bar.buttons.clock.text": "#f5bde6", "theme.bar.buttons.clock.background": "#24273a", "theme.bar.buttons.battery.icon": "#eed49f", "theme.bar.buttons.battery.text": "#eed49f", "theme.bar.buttons.battery.background": "#24273a", "theme.bar.buttons.systray.background": "#24273a", "theme.bar.buttons.bluetooth.icon": "#91d7e3", "theme.bar.buttons.bluetooth.text": "#91d7e3", "theme.bar.buttons.bluetooth.background": "#24273a", "theme.bar.buttons.network.icon": "#c6a0f6", "theme.bar.buttons.network.text": "#c6a0f6", "theme.bar.buttons.network.background": "#24273a", "theme.bar.buttons.volume.icon": "#ee99a0", "theme.bar.buttons.volume.text": "#ee99a0", "theme.bar.buttons.volume.background": "#24273a", "theme.bar.buttons.windowtitle.icon": "#f5bde6", "theme.bar.buttons.windowtitle.text": "#f5bde6", "theme.bar.buttons.windowtitle.background": "#24273a", "theme.bar.buttons.workspaces.active": "#f5bde6", "theme.bar.buttons.workspaces.occupied": "#f0c6c6", "theme.bar.buttons.workspaces.available": "#91d7e3", "theme.bar.buttons.workspaces.hover": "#494d64", "theme.bar.buttons.workspaces.background": "#24273a", "theme.bar.buttons.dashboard.icon": "#eed49f", "theme.bar.buttons.dashboard.background": "#24273a", "theme.osd.label": "#b7bdf8", "theme.osd.icon": "#181926", "theme.osd.bar_overflow_color": "#ed8796", "theme.osd.bar_empty_color": "#363a4f", "theme.osd.bar_color": "#b7bdf8", "theme.osd.icon_container": "#b7bdf8", "theme.osd.bar_container": "#181926", "theme.notification.close_button.label": "#181926", "theme.notification.close_button.background": "#ed8796", "theme.notification.labelicon": "#b7bdf8", "theme.notification.text": "#cad3f5", "theme.notification.time": "#8087a2", "theme.notification.border": "#363a4f", "theme.notification.label": "#b7bdf8", "theme.notification.actions.text": "#181926", "theme.notification.actions.background": "#b7bdf8", "theme.notification.background": "#181926", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.menus.menu.media.card.color": "#1e2030", "theme.bar.menus.check_radio_button.background": "#181826", "theme.bar.menus.check_radio_button.active": "#b7bcf8", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#b7bdf8", "theme.bar.menus.menu.notifications.scrollbar.color": "#b7bdf8", "theme.bar.menus.menu.notifications.pager.label": "#939ab7", "theme.bar.menus.menu.notifications.pager.background": "#181926", "theme.bar.buttons.clock.icon_background": "#f5bde6", "theme.bar.buttons.modules.ram.icon": "#eed49f", "theme.bar.buttons.modules.storage.icon_background": "#ed8796", "theme.bar.menus.popover.border": "#181926", "theme.bar.buttons.volume.icon_background": "#ee99a0", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#91d7e3", "theme.bar.menus.menu.power.buttons.restart.text": "#f5a97f", "theme.bar.buttons.modules.updates.background": "#24273a", "theme.bar.buttons.modules.storage.icon": "#ed8796", "theme.bar.buttons.modules.netstat.background": "#24273a", "theme.bar.buttons.modules.weather.icon": "#b7bdf8", "theme.bar.buttons.modules.netstat.text": "#a6da95", "theme.bar.buttons.modules.storage.background": "#24273a", "theme.bar.buttons.modules.power.icon": "#ed8796", "theme.bar.buttons.modules.storage.text": "#ed8796", "theme.bar.buttons.modules.cpu.background": "#24273a", "theme.bar.menus.menu.power.border.color": "#363a4f", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#ed8796", "theme.bar.menus.menu.power.buttons.logout.icon": "#181926", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#f5a97f", "theme.bar.menus.menu.power.buttons.restart.icon": "#181926", "theme.bar.buttons.modules.cpu.icon": "#ed8796", "theme.bar.buttons.battery.icon_background": "#eed49f", "theme.bar.buttons.modules.kbLayout.icon_background": "#91d7e3", "theme.bar.buttons.modules.weather.text": "#b7bdf8", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#181926", "theme.bar.menus.menu.power.buttons.sleep.text": "#91d7e3", "theme.bar.buttons.modules.weather.icon_background": "#b7bdf8", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1e2030", "theme.bar.buttons.media.icon_background": "#b7bdf8", "theme.bar.menus.menu.power.buttons.logout.background": "#1e2030", "theme.bar.buttons.modules.kbLayout.icon": "#91d7e3", "theme.bar.buttons.modules.ram.icon_background": "#eed49f", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#ed8796", "theme.bar.menus.menu.power.buttons.shutdown.text": "#ed8796", "theme.bar.menus.menu.power.buttons.sleep.background": "#1e2030", "theme.bar.buttons.modules.ram.text": "#eed49f", "theme.bar.menus.menu.power.buttons.logout.text": "#a6da95", "theme.bar.buttons.modules.updates.icon_background": "#c6a0f6", "theme.bar.buttons.modules.kbLayout.background": "#24273a", "theme.bar.buttons.modules.power.background": "#24273a", "theme.bar.buttons.modules.weather.background": "#24273a", "theme.bar.buttons.icon_background": "#24273a", "theme.bar.menus.menu.power.background.color": "#181926", "theme.bar.buttons.modules.ram.background": "#24273a", "theme.bar.buttons.modules.netstat.icon": "#a6da95", "theme.bar.buttons.windowtitle.icon_background": "#f5bde6", "theme.bar.buttons.modules.cpu.icon_background": "#ed8796", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a6da95", "theme.bar.buttons.modules.updates.text": "#c6a0f6", "theme.bar.menus.menu.power.buttons.sleep.icon": "#181926", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#1e2030", "theme.bar.buttons.modules.updates.icon": "#c6a0f6", "theme.bar.buttons.modules.cpu.text": "#ed8796", "theme.bar.buttons.modules.netstat.icon_background": "#a6da95", "theme.bar.buttons.modules.kbLayout.text": "#91d7e3", "theme.bar.buttons.notifications.icon_background": "#b7bdf8", "theme.bar.buttons.modules.power.border": "#ed8796", "theme.bar.buttons.modules.weather.border": "#b7bdf8", "theme.bar.buttons.modules.updates.border": "#c6a0f6", "theme.bar.buttons.modules.kbLayout.border": "#91d7e3", "theme.bar.buttons.modules.netstat.border": "#a6da95", "theme.bar.buttons.modules.storage.border": "#ed8796", "theme.bar.buttons.modules.cpu.border": "#ed8796", "theme.bar.buttons.modules.ram.border": "#eed49f", "theme.bar.buttons.notifications.border": "#b7bdf8", "theme.bar.buttons.clock.border": "#f5bde6", "theme.bar.buttons.battery.border": "#eed49f", "theme.bar.buttons.systray.border": "#494d64", "theme.bar.buttons.bluetooth.border": "#91d7e3", "theme.bar.buttons.network.border": "#c6a0f6", "theme.bar.buttons.volume.border": "#ee99a0", "theme.bar.buttons.media.border": "#b7bdf8", "theme.bar.buttons.windowtitle.border": "#f5bde6", "theme.bar.buttons.workspaces.border": "#181926", "theme.bar.buttons.dashboard.border": "#eed49f", "theme.bar.buttons.modules.submap.background": "#24273a", "theme.bar.buttons.modules.submap.text": "#8bd5ca", "theme.bar.buttons.modules.submap.border": "#8bd5ca", "theme.bar.buttons.modules.submap.icon": "#8bd5ca", "theme.bar.buttons.modules.submap.icon_background": "#24273a" } ================================================ FILE: .config/ags/themes/catppuccin_macchiato_split.json ================================================ { "theme.bar.menus.background": "#181926", "theme.bar.background": "#181926", "theme.bar.buttons.media.icon": "#24273a", "theme.bar.buttons.media.text": "#b7bdf8", "theme.bar.buttons.icon": "#b7bdf8", "theme.bar.buttons.text": "#b7bdf8", "theme.bar.buttons.hover": "#494d64", "theme.bar.buttons.background": "#24273a", "theme.bar.menus.text": "#cad3f5", "theme.bar.menus.border.color": "#363a4f", "theme.bar.buttons.media.background": "#24273a", "theme.bar.menus.menu.volume.text": "#cad3f5", "theme.bar.menus.menu.volume.card.color": "#1e2030", "theme.bar.menus.menu.volume.label.color": "#ee99a0", "theme.bar.menus.popover.text": "#b7bdf8", "theme.bar.menus.popover.background": "#181926", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#ed8796", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#ed8796", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a6da95", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#181926", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#cad3f5", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#b7bdf8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#363a4f", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#181926", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1e2030", "theme.bar.menus.menu.notifications.switch.puck": "#494d64", "theme.bar.menus.menu.notifications.switch.disabled": "#363a4f", "theme.bar.menus.menu.notifications.switch.enabled": "#b7bdf8", "theme.bar.menus.menu.notifications.clear": "#ed8796", "theme.bar.menus.menu.notifications.switch_divider": "#494d64", "theme.bar.menus.menu.notifications.border": "#363a4f", "theme.bar.menus.menu.notifications.card": "#1e2030", "theme.bar.menus.menu.notifications.background": "#181926", "theme.bar.menus.menu.notifications.no_notifications_label": "#363a4f", "theme.bar.menus.menu.notifications.label": "#b7bdf8", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f5bde6", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f5bde6", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f5bde6", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a6da95", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a6da95", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a6da95", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#eed49f", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#eed49f", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#eed49f", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ee99a0", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ee99a0", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ee99a0", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#494d64", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#b7bdf8", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#c6a0f6", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8bd5ca", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ee99a0", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#eed49f", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f5bde6", "theme.bar.menus.menu.dashboard.controls.input.text": "#181926", "theme.bar.menus.menu.dashboard.controls.input.background": "#f5bde6", "theme.bar.menus.menu.dashboard.controls.volume.text": "#181926", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ee99a0", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#181926", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#eed49f", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#181926", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#91d7e3", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#181926", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c6a0f6", "theme.bar.menus.menu.dashboard.controls.disabled": "#5b6078", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a6da95", "theme.bar.menus.menu.dashboard.shortcuts.text": "#181926", "theme.bar.menus.menu.dashboard.shortcuts.background": "#b7bdf8", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#91d7e3", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a6da95", "theme.bar.menus.menu.dashboard.powermenu.restart": "#f5a97f", "theme.bar.menus.menu.dashboard.profile.name": "#f5bde6", "theme.bar.menus.menu.dashboard.border.color": "#363a4f", "theme.bar.menus.menu.dashboard.background.color": "#181926", "theme.bar.menus.menu.dashboard.card.color": "#1e2030", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f5bde6", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f5bde6", "theme.bar.menus.menu.clock.weather.hourly.time": "#f5bde6", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#91d7e3", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#8aadf4", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#b7bdf8", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#f5a97f", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#ed8796", "theme.bar.menus.menu.clock.weather.stats": "#f5bde6", "theme.bar.menus.menu.clock.weather.status": "#8bd5ca", "theme.bar.menus.menu.clock.weather.temperature": "#cad3f5", "theme.bar.menus.menu.clock.weather.icon": "#f5bde6", "theme.bar.menus.menu.clock.calendar.contextdays": "#5b6078", "theme.bar.menus.menu.clock.calendar.days": "#cad3f5", "theme.bar.menus.menu.clock.calendar.currentday": "#f5bde6", "theme.bar.menus.menu.clock.calendar.paginator": "#f5bde6", "theme.bar.menus.menu.clock.calendar.weekdays": "#f5bde6", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8bd5ca", "theme.bar.menus.menu.clock.time.timeperiod": "#8bd5ca", "theme.bar.menus.menu.clock.time.time": "#f5bde6", "theme.bar.menus.menu.clock.text": "#cad3f5", "theme.bar.menus.menu.clock.border.color": "#363a4f", "theme.bar.menus.menu.clock.background.color": "#181926", "theme.bar.menus.menu.clock.card.color": "#1e2030", "theme.bar.menus.menu.battery.slider.puck": "#6e738d", "theme.bar.menus.menu.battery.slider.backgroundhover": "#494d64", "theme.bar.menus.menu.battery.slider.background": "#5b6078", "theme.bar.menus.menu.battery.slider.primary": "#eed49f", "theme.bar.menus.menu.battery.icons.active": "#eed49f", "theme.bar.menus.menu.battery.icons.passive": "#939ab7", "theme.bar.menus.menu.battery.listitems.active": "#eed49f", "theme.bar.menus.menu.battery.listitems.passive": "#cad3f5", "theme.bar.menus.menu.battery.text": "#cad3f5", "theme.bar.menus.menu.battery.label.color": "#eed49f", "theme.bar.menus.menu.battery.border.color": "#363a4f", "theme.bar.menus.menu.battery.background.color": "#181926", "theme.bar.menus.menu.battery.card.color": "#1e2030", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1e2030", "theme.bar.menus.menu.systray.dropdownmenu.text": "#cad3f5", "theme.bar.menus.menu.systray.dropdownmenu.background": "#181926", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#91d7e3", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#cad3f5", "theme.bar.menus.menu.bluetooth.icons.active": "#91d7e3", "theme.bar.menus.menu.bluetooth.icons.passive": "#939ab7", "theme.bar.menus.menu.bluetooth.listitems.active": "#91d7e3", "theme.bar.menus.menu.bluetooth.listitems.passive": "#cad3f5", "theme.bar.menus.menu.bluetooth.switch.puck": "#494d64", "theme.bar.menus.menu.bluetooth.switch.disabled": "#363a4f", "theme.bar.menus.menu.bluetooth.switch.enabled": "#91d7e3", "theme.bar.menus.menu.bluetooth.switch_divider": "#494d64", "theme.bar.menus.menu.bluetooth.status": "#6e738d", "theme.bar.menus.menu.bluetooth.text": "#cad3f5", "theme.bar.menus.menu.bluetooth.label.color": "#91d7e3", "theme.bar.menus.menu.bluetooth.border.color": "#363a4f", "theme.bar.menus.menu.bluetooth.background.color": "#181926", "theme.bar.menus.menu.bluetooth.card.color": "#1e2030", "theme.bar.menus.menu.network.iconbuttons.active": "#c6a0f6", "theme.bar.menus.menu.network.iconbuttons.passive": "#cad3f5", "theme.bar.menus.menu.network.icons.active": "#c6a0f6", "theme.bar.menus.menu.network.icons.passive": "#939ab7", "theme.bar.menus.menu.network.listitems.active": "#c6a0f6", "theme.bar.menus.menu.network.listitems.passive": "#cad3f5", "theme.bar.menus.menu.network.status.color": "#6e738d", "theme.bar.menus.menu.network.text": "#cad3f5", "theme.bar.menus.menu.network.label.color": "#c6a0f6", "theme.bar.menus.menu.network.border.color": "#363a4f", "theme.bar.menus.menu.network.background.color": "#181926", "theme.bar.menus.menu.network.card.color": "#1e2030", "theme.bar.menus.menu.volume.input_slider.puck": "#5b6078", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#494d64", "theme.bar.menus.menu.volume.input_slider.background": "#5b6078", "theme.bar.menus.menu.volume.input_slider.primary": "#ee99a0", "theme.bar.menus.menu.volume.audio_slider.puck": "#5b6078", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#494d64", "theme.bar.menus.menu.volume.audio_slider.background": "#5b6078", "theme.bar.menus.menu.volume.audio_slider.primary": "#ee99a0", "theme.bar.menus.menu.volume.icons.active": "#ee99a0", "theme.bar.menus.menu.volume.icons.passive": "#939ab7", "theme.bar.menus.menu.volume.iconbutton.active": "#ee99a0", "theme.bar.menus.menu.volume.iconbutton.passive": "#cad3f5", "theme.bar.menus.menu.volume.listitems.active": "#ee99a0", "theme.bar.menus.menu.volume.listitems.passive": "#cad3f5", "theme.bar.menus.menu.volume.border.color": "#363a4f", "theme.bar.menus.menu.volume.background.color": "#181926", "theme.bar.menus.menu.media.slider.puck": "#6e738d", "theme.bar.menus.menu.media.slider.backgroundhover": "#494d64", "theme.bar.menus.menu.media.slider.background": "#5b6078", "theme.bar.menus.menu.media.slider.primary": "#f5bde6", "theme.bar.menus.menu.media.buttons.text": "#181926", "theme.bar.menus.menu.media.buttons.background": "#b7bdf8", "theme.bar.menus.menu.media.buttons.enabled": "#8bd5ca", "theme.bar.menus.menu.media.buttons.inactive": "#5b6078", "theme.bar.menus.menu.media.border.color": "#363a4f", "theme.bar.menus.menu.media.background.color": "#181926", "theme.bar.menus.menu.media.album": "#f5bde6", "theme.bar.menus.menu.media.artist": "#8bd5ca", "theme.bar.menus.menu.media.song": "#b7bdf8", "theme.bar.menus.tooltip.text": "#cad3f5", "theme.bar.menus.tooltip.background": "#181926", "theme.bar.menus.dropdownmenu.divider": "#1e2030", "theme.bar.menus.dropdownmenu.text": "#cad3f5", "theme.bar.menus.dropdownmenu.background": "#181926", "theme.bar.menus.slider.puck": "#6e738d", "theme.bar.menus.slider.backgroundhover": "#494d64", "theme.bar.menus.slider.background": "#5b6078", "theme.bar.menus.slider.primary": "#b7bdf8", "theme.bar.menus.progressbar.background": "#494d64", "theme.bar.menus.progressbar.foreground": "#b7bdf8", "theme.bar.menus.iconbuttons.active": "#b7bdf8", "theme.bar.menus.iconbuttons.passive": "#cad3f5", "theme.bar.menus.buttons.text": "#181926", "theme.bar.menus.buttons.disabled": "#5b6078", "theme.bar.menus.buttons.active": "#f5bde6", "theme.bar.menus.buttons.default": "#b7bdf8", "theme.bar.menus.switch.puck": "#494d64", "theme.bar.menus.switch.disabled": "#363a4f", "theme.bar.menus.switch.enabled": "#b7bdf8", "theme.bar.menus.icons.active": "#b7bdf8", "theme.bar.menus.icons.passive": "#5b6078", "theme.bar.menus.listitems.active": "#b7bdf8", "theme.bar.menus.listitems.passive": "#cad3f5", "theme.bar.menus.label": "#b7bdf8", "theme.bar.menus.feinttext": "#363a4f", "theme.bar.menus.dimtext": "#5b6078", "theme.bar.menus.cards": "#1e2030", "theme.bar.buttons.notifications.total": "#b7bdf8", "theme.bar.buttons.notifications.icon": "#24273a", "theme.bar.buttons.notifications.background": "#24273a", "theme.bar.buttons.clock.icon": "#24273a", "theme.bar.buttons.clock.text": "#f5bde6", "theme.bar.buttons.clock.background": "#24273a", "theme.bar.buttons.battery.icon": "#24273a", "theme.bar.buttons.battery.text": "#eed49f", "theme.bar.buttons.battery.background": "#24273a", "theme.bar.buttons.systray.background": "#24273a", "theme.bar.buttons.bluetooth.icon": "#24273a", "theme.bar.buttons.bluetooth.text": "#91d7e3", "theme.bar.buttons.bluetooth.background": "#24273a", "theme.bar.buttons.network.icon": "#24273a", "theme.bar.buttons.network.text": "#c6a0f6", "theme.bar.buttons.network.background": "#24273a", "theme.bar.buttons.volume.icon": "#24273a", "theme.bar.buttons.volume.text": "#ee99a0", "theme.bar.buttons.volume.background": "#24273a", "theme.bar.buttons.windowtitle.icon": "#24273a", "theme.bar.buttons.windowtitle.text": "#f5bde6", "theme.bar.buttons.windowtitle.background": "#24273a", "theme.bar.buttons.workspaces.active": "#f5bde6", "theme.bar.buttons.workspaces.occupied": "#f0c6c6", "theme.bar.buttons.workspaces.available": "#91d7e3", "theme.bar.buttons.workspaces.hover": "#494d64", "theme.bar.buttons.workspaces.background": "#24273a", "theme.bar.buttons.dashboard.icon": "#24273a", "theme.bar.buttons.dashboard.background": "#eed49f", "theme.osd.label": "#b7bdf8", "theme.osd.icon": "#181926", "theme.osd.bar_overflow_color": "#ed8796", "theme.osd.bar_empty_color": "#363a4f", "theme.osd.bar_color": "#b7bdf8", "theme.osd.icon_container": "#b7bdf8", "theme.osd.bar_container": "#181926", "theme.notification.close_button.label": "#181926", "theme.notification.close_button.background": "#ed8796", "theme.notification.labelicon": "#b7bdf8", "theme.notification.text": "#cad3f5", "theme.notification.time": "#8087a2", "theme.notification.border": "#363a4f", "theme.notification.label": "#b7bdf8", "theme.notification.actions.text": "#181926", "theme.notification.actions.background": "#b7bdf8", "theme.notification.background": "#181926", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.menus.menu.media.card.color": "#1e2030", "theme.bar.menus.check_radio_button.background": "#181826", "theme.bar.menus.check_radio_button.active": "#b7bcf8", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#ee999f", "theme.bar.buttons.network.icon_background": "#c5a0f6", "theme.bar.buttons.bluetooth.icon_background": "#91d7e3", "theme.bar.buttons.windowtitle.icon_background": "#f5bde6", "theme.bar.buttons.media.icon_background": "#b7bcf8", "theme.bar.buttons.notifications.icon_background": "#b7bcf8", "theme.bar.buttons.battery.icon_background": "#eed49f", "theme.bar.buttons.clock.icon_background": "#f5bde6", "theme.bar.menus.menu.notifications.pager.button": "#b7bdf8", "theme.bar.menus.menu.notifications.scrollbar.color": "#b7bdf8", "theme.bar.menus.menu.notifications.pager.label": "#939ab7", "theme.bar.menus.menu.notifications.pager.background": "#181926", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.storage.icon_background": "#ed8796", "theme.bar.menus.popover.border": "#181926", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#91d7e3", "theme.bar.menus.menu.power.buttons.restart.text": "#f5a97f", "theme.bar.buttons.modules.updates.background": "#24273a", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.netstat.background": "#24273a", "theme.bar.buttons.modules.weather.icon": "#24273a", "theme.bar.buttons.modules.netstat.text": "#a6da95", "theme.bar.buttons.modules.storage.background": "#24273a", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.buttons.modules.storage.text": "#ed8796", "theme.bar.buttons.modules.cpu.background": "#24273a", "theme.bar.menus.menu.power.border.color": "#363a4f", "theme.bar.buttons.modules.power.icon_background": "#ed8796", "theme.bar.menus.menu.power.buttons.logout.icon": "#181926", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#f5a97f", "theme.bar.menus.menu.power.buttons.restart.icon": "#181926", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.kbLayout.icon_background": "#91d7e3", "theme.bar.buttons.modules.weather.text": "#b7bdf8", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#181926", "theme.bar.menus.menu.power.buttons.sleep.text": "#91d7e3", "theme.bar.buttons.modules.weather.icon_background": "#b7bdf8", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1e2030", "theme.bar.menus.menu.power.buttons.logout.background": "#1e2030", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.ram.icon_background": "#eed49f", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#ed8796", "theme.bar.menus.menu.power.buttons.shutdown.text": "#ed8796", "theme.bar.menus.menu.power.buttons.sleep.background": "#1e2030", "theme.bar.buttons.modules.ram.text": "#eed49f", "theme.bar.menus.menu.power.buttons.logout.text": "#a6da95", "theme.bar.buttons.modules.updates.icon_background": "#c6a0f6", "theme.bar.buttons.modules.kbLayout.background": "#24273a", "theme.bar.buttons.modules.power.background": "#24273a", "theme.bar.buttons.modules.weather.background": "#24273a", "theme.bar.menus.menu.power.background.color": "#181926", "theme.bar.buttons.modules.ram.background": "#24273a", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.cpu.icon_background": "#ed8796", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a6da95", "theme.bar.buttons.modules.updates.text": "#c6a0f6", "theme.bar.menus.menu.power.buttons.sleep.icon": "#181926", "theme.bar.menus.menu.power.buttons.restart.background": "#1e2030", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.cpu.text": "#ed8796", "theme.bar.buttons.modules.netstat.icon_background": "#a6da95", "theme.bar.buttons.modules.kbLayout.text": "#91d7e3", "theme.bar.buttons.modules.power.border": "#ed8796", "theme.bar.buttons.modules.weather.border": "#b7bdf8", "theme.bar.buttons.modules.updates.border": "#c6a0f6", "theme.bar.buttons.modules.kbLayout.border": "#91d7e3", "theme.bar.buttons.modules.netstat.border": "#a6da95", "theme.bar.buttons.modules.storage.border": "#ed8796", "theme.bar.buttons.modules.cpu.border": "#ed8796", "theme.bar.buttons.modules.ram.border": "#eed49f", "theme.bar.buttons.notifications.border": "#b7bdf8", "theme.bar.buttons.clock.border": "#f5bde6", "theme.bar.buttons.battery.border": "#eed49f", "theme.bar.buttons.systray.border": "#494d64", "theme.bar.buttons.bluetooth.border": "#91d7e3", "theme.bar.buttons.network.border": "#c6a0f6", "theme.bar.buttons.volume.border": "#ee99a0", "theme.bar.buttons.media.border": "#b7bdf8", "theme.bar.buttons.windowtitle.border": "#f5bde6", "theme.bar.buttons.workspaces.border": "#181926", "theme.bar.buttons.dashboard.border": "#eed49f", "theme.bar.buttons.modules.submap.background": "#24273a", "theme.bar.buttons.modules.submap.text": "#8bd5ca", "theme.bar.buttons.modules.submap.border": "#8bd5ca", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.icon_background": "#8bd5ca" } ================================================ FILE: .config/ags/themes/catppuccin_mocha.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#b4befe", "theme.bar.menus.menu.notifications.pager.label": "#9399b2", "theme.bar.menus.menu.notifications.pager.button": "#b4befe", "theme.bar.menus.menu.notifications.pager.background": "#11111b", "theme.bar.menus.menu.notifications.switch.puck": "#454759", "theme.bar.menus.menu.notifications.switch.disabled": "#313245", "theme.bar.menus.menu.notifications.switch.enabled": "#b4befe", "theme.bar.menus.menu.notifications.clear": "#f38ba8", "theme.bar.menus.menu.notifications.switch_divider": "#45475a", "theme.bar.menus.menu.notifications.border": "#313244", "theme.bar.menus.menu.notifications.card": "#1e1e2e", "theme.bar.menus.menu.notifications.background": "#11111b", "theme.bar.menus.menu.notifications.no_notifications_label": "#313244", "theme.bar.menus.menu.notifications.label": "#b4befe", "theme.bar.menus.menu.power.buttons.sleep.icon": "#181824", "theme.bar.menus.menu.power.buttons.sleep.text": "#89dceb", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#89dceb", "theme.bar.menus.menu.power.buttons.sleep.background": "#1e1e2e", "theme.bar.menus.menu.power.buttons.logout.icon": "#181824", "theme.bar.menus.menu.power.buttons.logout.text": "#a6e3a1", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a6e3a1", "theme.bar.menus.menu.power.buttons.logout.background": "#1e1e2e", "theme.bar.menus.menu.power.buttons.restart.icon": "#181824", "theme.bar.menus.menu.power.buttons.restart.text": "#fab387", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#fab387", "theme.bar.menus.menu.power.buttons.restart.background": "#1e1e2e", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#181824", "theme.bar.menus.menu.power.buttons.shutdown.text": "#f38ba8", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#f38ba7", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1e1e2e", "theme.bar.menus.menu.power.border.color": "#313244", "theme.bar.menus.menu.power.background.color": "#11111b", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f5c2e7", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f5c2e8", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f5c2e7", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a6e3a1", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a6e3a2", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a6e3a1", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f9e2af", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f9e2ae", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f9e2af", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#eba0ac", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#eba0ad", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#eba0ac", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#45475a", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#b4befe", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#cba6f7", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#94e2d5", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#eba0ac", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f9e2af", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f5c2e7", "theme.bar.menus.menu.dashboard.controls.input.text": "#181824", "theme.bar.menus.menu.dashboard.controls.input.background": "#f5c2e7", "theme.bar.menus.menu.dashboard.controls.volume.text": "#181824", "theme.bar.menus.menu.dashboard.controls.volume.background": "#eba0ac", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#181824", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f9e2af", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#181824", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#89dceb", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#181824", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#cba6f7", "theme.bar.menus.menu.dashboard.controls.disabled": "#585b70", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a6e3a1", "theme.bar.menus.menu.dashboard.shortcuts.text": "#181824", "theme.bar.menus.menu.dashboard.shortcuts.background": "#b4befe", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#11111a", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#f38ba8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a6e3a1", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#cdd6f4", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#b4befe", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#313244", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#11111b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1e1e2e", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#89dceb", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a6e3a1", "theme.bar.menus.menu.dashboard.powermenu.restart": "#fab387", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#f38ba8", "theme.bar.menus.menu.dashboard.profile.name": "#f5c2e7", "theme.bar.menus.menu.dashboard.border.color": "#313244", "theme.bar.menus.menu.dashboard.background.color": "#11111b", "theme.bar.menus.menu.dashboard.card.color": "#1e1e2e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f5c2e7", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f5c2e7", "theme.bar.menus.menu.clock.weather.hourly.time": "#f5c2e7", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#89dceb", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#89b4fa", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#b4befe", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#fab387", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#f38ba8", "theme.bar.menus.menu.clock.weather.stats": "#f5c2e7", "theme.bar.menus.menu.clock.weather.status": "#94e2d5", "theme.bar.menus.menu.clock.weather.temperature": "#cdd6f4", "theme.bar.menus.menu.clock.weather.icon": "#f5c2e7", "theme.bar.menus.menu.clock.calendar.contextdays": "#585b70", "theme.bar.menus.menu.clock.calendar.days": "#cdd6f4", "theme.bar.menus.menu.clock.calendar.currentday": "#f5c2e7", "theme.bar.menus.menu.clock.calendar.paginator": "#f5c2e6", "theme.bar.menus.menu.clock.calendar.weekdays": "#f5c2e7", "theme.bar.menus.menu.clock.calendar.yearmonth": "#94e2d5", "theme.bar.menus.menu.clock.time.timeperiod": "#94e2d5", "theme.bar.menus.menu.clock.time.time": "#f5c2e7", "theme.bar.menus.menu.clock.text": "#cdd6f4", "theme.bar.menus.menu.clock.border.color": "#313244", "theme.bar.menus.menu.clock.background.color": "#11111b", "theme.bar.menus.menu.clock.card.color": "#1e1e2e", "theme.bar.menus.menu.battery.slider.puck": "#6c7086", "theme.bar.menus.menu.battery.slider.backgroundhover": "#45475a", "theme.bar.menus.menu.battery.slider.background": "#585b71", "theme.bar.menus.menu.battery.slider.primary": "#f9e2af", "theme.bar.menus.menu.battery.icons.active": "#f9e2af", "theme.bar.menus.menu.battery.icons.passive": "#9399b2", "theme.bar.menus.menu.battery.listitems.active": "#f9e2af", "theme.bar.menus.menu.battery.listitems.passive": "#cdd6f3", "theme.bar.menus.menu.battery.text": "#cdd6f4", "theme.bar.menus.menu.battery.label.color": "#f9e2af", "theme.bar.menus.menu.battery.border.color": "#313244", "theme.bar.menus.menu.battery.background.color": "#11111b", "theme.bar.menus.menu.battery.card.color": "#1e1e2e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1e1e2e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#cdd6f4", "theme.bar.menus.menu.systray.dropdownmenu.background": "#11111b", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#89dceb", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#cdd6f4", "theme.bar.menus.menu.bluetooth.icons.active": "#89dceb", "theme.bar.menus.menu.bluetooth.icons.passive": "#9399b2", "theme.bar.menus.menu.bluetooth.listitems.active": "#89dcea", "theme.bar.menus.menu.bluetooth.listitems.passive": "#cdd6f4", "theme.bar.menus.menu.bluetooth.switch.puck": "#454759", "theme.bar.menus.menu.bluetooth.switch.disabled": "#313245", "theme.bar.menus.menu.bluetooth.switch.enabled": "#89dceb", "theme.bar.menus.menu.bluetooth.switch_divider": "#45475a", "theme.bar.menus.menu.bluetooth.status": "#6c7086", "theme.bar.menus.menu.bluetooth.text": "#cdd6f4", "theme.bar.menus.menu.bluetooth.label.color": "#89dceb", "theme.bar.menus.menu.bluetooth.border.color": "#313244", "theme.bar.menus.menu.bluetooth.background.color": "#11111b", "theme.bar.menus.menu.bluetooth.card.color": "#1e1e2e", "theme.bar.menus.menu.network.iconbuttons.active": "#cba6f7", "theme.bar.menus.menu.network.iconbuttons.passive": "#cdd6f4", "theme.bar.menus.menu.network.icons.active": "#cba6f7", "theme.bar.menus.menu.network.icons.passive": "#9399b2", "theme.bar.menus.menu.network.listitems.active": "#cba6f6", "theme.bar.menus.menu.network.listitems.passive": "#cdd6f4", "theme.bar.menus.menu.network.status.color": "#6c7086", "theme.bar.menus.menu.network.text": "#cdd6f4", "theme.bar.menus.menu.network.label.color": "#cba6f7", "theme.bar.menus.menu.network.border.color": "#313244", "theme.bar.menus.menu.network.background.color": "#11111b", "theme.bar.menus.menu.network.card.color": "#1e1e2e", "theme.bar.menus.menu.volume.input_slider.puck": "#585b70", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#45475a", "theme.bar.menus.menu.volume.input_slider.background": "#585b71", "theme.bar.menus.menu.volume.input_slider.primary": "#eba0ac", "theme.bar.menus.menu.volume.audio_slider.puck": "#585b70", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#45475a", "theme.bar.menus.menu.volume.audio_slider.background": "#585b71", "theme.bar.menus.menu.volume.audio_slider.primary": "#eba0ac", "theme.bar.menus.menu.volume.icons.active": "#eba0ac", "theme.bar.menus.menu.volume.icons.passive": "#9399b2", "theme.bar.menus.menu.volume.iconbutton.active": "#eba0ac", "theme.bar.menus.menu.volume.iconbutton.passive": "#cdd6f4", "theme.bar.menus.menu.volume.listitems.active": "#eba0ab", "theme.bar.menus.menu.volume.listitems.passive": "#cdd6f4", "theme.bar.menus.menu.volume.text": "#cdd6f4", "theme.bar.menus.menu.volume.label.color": "#eba0ac", "theme.bar.menus.menu.volume.border.color": "#313244", "theme.bar.menus.menu.volume.background.color": "#11111b", "theme.bar.menus.menu.volume.card.color": "#1e1e2e", "theme.bar.menus.menu.media.slider.puck": "#6c7086", "theme.bar.menus.menu.media.slider.backgroundhover": "#45475a", "theme.bar.menus.menu.media.slider.background": "#585b71", "theme.bar.menus.menu.media.slider.primary": "#f5c2e7", "theme.bar.menus.menu.media.buttons.text": "#11111b", "theme.bar.menus.menu.media.buttons.background": "#b4beff", "theme.bar.menus.menu.media.buttons.enabled": "#94e2d4", "theme.bar.menus.menu.media.buttons.inactive": "#585b70", "theme.bar.menus.menu.media.border.color": "#313244", "theme.bar.menus.menu.media.card.color": "#1e1e2e", "theme.bar.menus.menu.media.background.color": "#11111b", "theme.bar.menus.menu.media.album": "#f5c2e8", "theme.bar.menus.menu.media.artist": "#94e2d6", "theme.bar.menus.menu.media.song": "#b4beff", "theme.bar.menus.tooltip.text": "#cdd6f4", "theme.bar.menus.tooltip.background": "#11111b", "theme.bar.menus.dropdownmenu.divider": "#1e1e2e", "theme.bar.menus.dropdownmenu.text": "#cdd6f4", "theme.bar.menus.dropdownmenu.background": "#11111b", "theme.bar.menus.slider.puck": "#6c7086", "theme.bar.menus.slider.backgroundhover": "#45475a", "theme.bar.menus.slider.background": "#585b71", "theme.bar.menus.slider.primary": "#b4befe", "theme.bar.menus.progressbar.background": "#45475a", "theme.bar.menus.progressbar.foreground": "#b4befe", "theme.bar.menus.iconbuttons.active": "#b4beff", "theme.bar.menus.iconbuttons.passive": "#cdd6f3", "theme.bar.menus.buttons.text": "#181824", "theme.bar.menus.buttons.disabled": "#585b71", "theme.bar.menus.buttons.active": "#f5c2e6", "theme.bar.menus.buttons.default": "#b4befe", "theme.bar.menus.check_radio_button.active": "#b4beff", "theme.bar.menus.check_radio_button.background": "#45475a", "theme.bar.menus.switch.puck": "#454759", "theme.bar.menus.switch.disabled": "#313245", "theme.bar.menus.switch.enabled": "#b4befe", "theme.bar.menus.icons.active": "#b4befe", "theme.bar.menus.icons.passive": "#585b70", "theme.bar.menus.listitems.active": "#b4befd", "theme.bar.menus.listitems.passive": "#cdd6f4", "theme.bar.menus.popover.border": "#181824", "theme.bar.menus.popover.background": "#181824", "theme.bar.menus.popover.text": "#b4befe", "theme.bar.menus.label": "#b4befe", "theme.bar.menus.feinttext": "#313244", "theme.bar.menus.dimtext": "#585b70", "theme.bar.menus.text": "#cdd6f4", "theme.bar.menus.border.color": "#313244", "theme.bar.menus.cards": "#1e1e2e", "theme.bar.menus.background": "#11111b", "theme.bar.buttons.modules.power.icon_background": "#f38ba8", "theme.bar.buttons.modules.power.icon": "#f38ba8", "theme.bar.buttons.modules.power.background": "#242438", "theme.bar.buttons.modules.power.border": "#f38ba8", "theme.bar.buttons.modules.weather.icon_background": "#b4befe", "theme.bar.buttons.modules.weather.icon": "#b4befe", "theme.bar.buttons.modules.weather.text": "#b4befe", "theme.bar.buttons.modules.weather.background": "#242438", "theme.bar.buttons.modules.weather.border": "#b4befe", "theme.bar.buttons.modules.updates.icon_background": "#cba6f7", "theme.bar.buttons.modules.updates.icon": "#cba6f7", "theme.bar.buttons.modules.updates.text": "#cba6f7", "theme.bar.buttons.modules.updates.background": "#242438", "theme.bar.buttons.modules.updates.border": "#cba6f7", "theme.bar.buttons.modules.kbLayout.icon_background": "#89dceb", "theme.bar.buttons.modules.kbLayout.icon": "#89dceb", "theme.bar.buttons.modules.kbLayout.text": "#89dceb", "theme.bar.buttons.modules.kbLayout.background": "#242438", "theme.bar.buttons.modules.kbLayout.border": "#89dceb", "theme.bar.buttons.modules.netstat.icon_background": "#a6e3a1", "theme.bar.buttons.modules.netstat.icon": "#a6e3a1", "theme.bar.buttons.modules.netstat.text": "#a6e3a1", "theme.bar.buttons.modules.netstat.background": "#242438", "theme.bar.buttons.modules.netstat.border": "#a6e3a1", "theme.bar.buttons.modules.storage.icon_background": "#f5c2e7", "theme.bar.buttons.modules.storage.icon": "#f5c2e7", "theme.bar.buttons.modules.storage.text": "#f5c2e7", "theme.bar.buttons.modules.storage.background": "#242438", "theme.bar.buttons.modules.storage.border": "#f5c2e7", "theme.bar.buttons.modules.cpu.icon_background": "#f38ba8", "theme.bar.buttons.modules.cpu.icon": "#f38ba8", "theme.bar.buttons.modules.cpu.text": "#f38ba8", "theme.bar.buttons.modules.cpu.background": "#242438", "theme.bar.buttons.modules.cpu.border": "#f38ba8", "theme.bar.buttons.modules.ram.icon_background": "#f9e2af", "theme.bar.buttons.modules.ram.icon": "#f9e2af", "theme.bar.buttons.modules.ram.text": "#f9e2af", "theme.bar.buttons.modules.ram.background": "#242438", "theme.bar.buttons.modules.ram.border": "#f9e2af", "theme.bar.buttons.notifications.total": "#b4befe", "theme.bar.buttons.notifications.icon_background": "#b4befe", "theme.bar.buttons.notifications.icon": "#b4befe", "theme.bar.buttons.notifications.background": "#242438", "theme.bar.buttons.notifications.border": "#b4befe", "theme.bar.buttons.clock.icon_background": "#f5c2e7", "theme.bar.buttons.clock.icon": "#f5c2e7", "theme.bar.buttons.clock.text": "#f5c2e7", "theme.bar.buttons.clock.background": "#242438", "theme.bar.buttons.clock.border": "#f5c2e7", "theme.bar.buttons.battery.icon_background": "#f9e2af", "theme.bar.buttons.battery.icon": "#f9e2af", "theme.bar.buttons.battery.text": "#f9e2af", "theme.bar.buttons.battery.background": "#242438", "theme.bar.buttons.battery.border": "#f9e2af", "theme.bar.buttons.systray.background": "#242438", "theme.bar.buttons.systray.border": "#b4befe", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.buttons.bluetooth.icon": "#89dceb", "theme.bar.buttons.bluetooth.text": "#89dceb", "theme.bar.buttons.bluetooth.background": "#242438", "theme.bar.buttons.bluetooth.border": "#89dceb", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.network.icon": "#cba6f7", "theme.bar.buttons.network.text": "#cba6f7", "theme.bar.buttons.network.background": "#242438", "theme.bar.buttons.network.border": "#cba6f7", "theme.bar.buttons.volume.icon_background": "#eba0ac", "theme.bar.buttons.volume.icon": "#eba0ac", "theme.bar.buttons.volume.text": "#eba0ac", "theme.bar.buttons.volume.background": "#242438", "theme.bar.buttons.volume.border": "#eba0ac", "theme.bar.buttons.media.icon_background": "#b4befe", "theme.bar.buttons.media.icon": "#b4befe", "theme.bar.buttons.media.text": "#b4befe", "theme.bar.buttons.media.background": "#242438", "theme.bar.buttons.media.border": "#b4befe", "theme.bar.buttons.windowtitle.icon_background": "#f5c2e7", "theme.bar.buttons.windowtitle.icon": "#f5c2e7", "theme.bar.buttons.windowtitle.text": "#f5c2e7", "theme.bar.buttons.windowtitle.border": "#f5c2e7", "theme.bar.buttons.windowtitle.background": "#242438", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.hover": "#f5c2e7", "theme.bar.buttons.workspaces.active": "#f5c2e7", "theme.bar.buttons.workspaces.occupied": "#f2cdcd", "theme.bar.buttons.workspaces.available": "#89dceb", "theme.bar.buttons.workspaces.border": "#f5c2e7", "theme.bar.buttons.workspaces.background": "#242438", "theme.bar.buttons.dashboard.icon": "#f9e2af", "theme.bar.buttons.dashboard.border": "#f9e2af", "theme.bar.buttons.dashboard.background": "#242438", "theme.bar.buttons.icon": "#b4befe", "theme.bar.buttons.text": "#b4befe", "theme.bar.buttons.hover": "#45475a", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.background": "#242438", "theme.bar.buttons.style": "default", "theme.bar.background": "#11111b", "theme.osd.label": "#b4beff", "theme.osd.icon": "#11111b", "theme.osd.bar_overflow_color": "#f38ba7", "theme.osd.bar_empty_color": "#313244", "theme.osd.bar_color": "#b4beff", "theme.osd.icon_container": "#b4beff", "theme.osd.bar_container": "#11111b", "theme.notification.close_button.label": "#11111b", "theme.notification.close_button.background": "#f38ba7", "theme.notification.labelicon": "#b4befe", "theme.notification.text": "#cdd6f4", "theme.notification.time": "#7f849b", "theme.notification.border": "#313243", "theme.notification.label": "#b4befe", "theme.notification.actions.text": "#181825", "theme.notification.actions.background": "#b4befd", "theme.notification.background": "#181826", "theme.bar.buttons.modules.submap.icon": "#94e2d5", "theme.bar.buttons.modules.submap.background": "#242438", "theme.bar.buttons.modules.submap.icon_background": "#242438", "theme.bar.buttons.modules.submap.text": "#94e2d5", "theme.bar.buttons.modules.submap.border": "#94e2d5" } ================================================ FILE: .config/ags/themes/catppuccin_mocha_split.json ================================================ { "theme.bar.menus.background": "#11111b", "theme.bar.background": "#11111b", "theme.bar.buttons.media.icon": "#1e1e2e", "theme.bar.buttons.media.text": "#b4befe", "theme.bar.buttons.icon": "#b4befe", "theme.bar.buttons.text": "#b4befe", "theme.bar.buttons.hover": "#45475a", "theme.bar.buttons.background": "#242438", "theme.bar.menus.text": "#cdd6f4", "theme.bar.menus.border.color": "#313244", "theme.bar.buttons.media.background": "#242438", "theme.bar.menus.menu.volume.text": "#cdd6f4", "theme.bar.menus.menu.volume.card.color": "#1e1e2e", "theme.bar.menus.menu.volume.label.color": "#eba0ac", "theme.bar.menus.popover.text": "#b4befe", "theme.bar.menus.popover.background": "#181824", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#f38ba8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#f38ba8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a6e3a1", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#11111a", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#cdd6f4", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#b4befe", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#313244", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#11111b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1e1e2e", "theme.bar.menus.menu.notifications.switch.puck": "#454759", "theme.bar.menus.menu.notifications.switch.disabled": "#313245", "theme.bar.menus.menu.notifications.switch.enabled": "#b4befe", "theme.bar.menus.menu.notifications.clear": "#f38ba8", "theme.bar.menus.menu.notifications.switch_divider": "#45475a", "theme.bar.menus.menu.notifications.border": "#313244", "theme.bar.menus.menu.notifications.card": "#1e1e2e", "theme.bar.menus.menu.notifications.background": "#11111b", "theme.bar.menus.menu.notifications.no_notifications_label": "#313244", "theme.bar.menus.menu.notifications.label": "#b4befe", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f5c2e7", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f5c2e8", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f5c2e7", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a6e3a1", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a6e3a2", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a6e3a1", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f9e2af", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f9e2ae", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f9e2af", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#eba0ac", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#eba0ad", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#eba0ac", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#45475a", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#b4befe", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#cba6f7", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#94e2d5", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#eba0ac", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f9e2af", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f5c2e7", "theme.bar.menus.menu.dashboard.controls.input.text": "#181824", "theme.bar.menus.menu.dashboard.controls.input.background": "#f5c2e7", "theme.bar.menus.menu.dashboard.controls.volume.text": "#181824", "theme.bar.menus.menu.dashboard.controls.volume.background": "#eba0ac", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#181824", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f9e2af", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#181824", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#89dceb", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#181824", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#cba6f7", "theme.bar.menus.menu.dashboard.controls.disabled": "#585b70", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a6e3a1", "theme.bar.menus.menu.dashboard.shortcuts.text": "#181824", "theme.bar.menus.menu.dashboard.shortcuts.background": "#b4befe", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#89dceb", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a6e3a1", "theme.bar.menus.menu.dashboard.powermenu.restart": "#fab387", "theme.bar.menus.menu.dashboard.profile.name": "#f5c2e7", "theme.bar.menus.menu.dashboard.border.color": "#313244", "theme.bar.menus.menu.dashboard.background.color": "#11111b", "theme.bar.menus.menu.dashboard.card.color": "#1e1e2e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f5c2e7", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f5c2e7", "theme.bar.menus.menu.clock.weather.hourly.time": "#f5c2e7", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#89dceb", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#89b4fa", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#b4befe", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#fab387", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#f38ba8", "theme.bar.menus.menu.clock.weather.stats": "#f5c2e7", "theme.bar.menus.menu.clock.weather.status": "#94e2d5", "theme.bar.menus.menu.clock.weather.temperature": "#cdd6f4", "theme.bar.menus.menu.clock.weather.icon": "#f5c2e7", "theme.bar.menus.menu.clock.calendar.contextdays": "#585b70", "theme.bar.menus.menu.clock.calendar.days": "#cdd6f4", "theme.bar.menus.menu.clock.calendar.currentday": "#f5c2e7", "theme.bar.menus.menu.clock.calendar.paginator": "#f5c2e6", "theme.bar.menus.menu.clock.calendar.weekdays": "#f5c2e7", "theme.bar.menus.menu.clock.calendar.yearmonth": "#94e2d5", "theme.bar.menus.menu.clock.time.timeperiod": "#94e2d5", "theme.bar.menus.menu.clock.time.time": "#f5c2e7", "theme.bar.menus.menu.clock.text": "#cdd6f4", "theme.bar.menus.menu.clock.border.color": "#313244", "theme.bar.menus.menu.clock.background.color": "#11111b", "theme.bar.menus.menu.clock.card.color": "#1e1e2e", "theme.bar.menus.menu.battery.slider.puck": "#6c7086", "theme.bar.menus.menu.battery.slider.backgroundhover": "#45475a", "theme.bar.menus.menu.battery.slider.background": "#585b71", "theme.bar.menus.menu.battery.slider.primary": "#f9e2af", "theme.bar.menus.menu.battery.icons.active": "#f9e2af", "theme.bar.menus.menu.battery.icons.passive": "#9399b2", "theme.bar.menus.menu.battery.listitems.active": "#f9e2af", "theme.bar.menus.menu.battery.listitems.passive": "#cdd6f3", "theme.bar.menus.menu.battery.text": "#cdd6f4", "theme.bar.menus.menu.battery.label.color": "#f9e2af", "theme.bar.menus.menu.battery.border.color": "#313244", "theme.bar.menus.menu.battery.background.color": "#11111b", "theme.bar.menus.menu.battery.card.color": "#1e1e2e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1e1e2e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#cdd6f4", "theme.bar.menus.menu.systray.dropdownmenu.background": "#11111b", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#89dceb", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#cdd6f4", "theme.bar.menus.menu.bluetooth.icons.active": "#89dceb", "theme.bar.menus.menu.bluetooth.icons.passive": "#9399b2", "theme.bar.menus.menu.bluetooth.listitems.active": "#89dcea", "theme.bar.menus.menu.bluetooth.listitems.passive": "#cdd6f4", "theme.bar.menus.menu.bluetooth.switch.puck": "#454759", "theme.bar.menus.menu.bluetooth.switch.disabled": "#313245", "theme.bar.menus.menu.bluetooth.switch.enabled": "#89dceb", "theme.bar.menus.menu.bluetooth.switch_divider": "#45475a", "theme.bar.menus.menu.bluetooth.status": "#6c7086", "theme.bar.menus.menu.bluetooth.text": "#cdd6f4", "theme.bar.menus.menu.bluetooth.label.color": "#89dceb", "theme.bar.menus.menu.bluetooth.border.color": "#313244", "theme.bar.menus.menu.bluetooth.background.color": "#11111b", "theme.bar.menus.menu.bluetooth.card.color": "#1e1e2e", "theme.bar.menus.menu.network.iconbuttons.active": "#cba6f7", "theme.bar.menus.menu.network.iconbuttons.passive": "#cdd6f4", "theme.bar.menus.menu.network.icons.active": "#cba6f7", "theme.bar.menus.menu.network.icons.passive": "#9399b2", "theme.bar.menus.menu.network.listitems.active": "#cba6f6", "theme.bar.menus.menu.network.listitems.passive": "#cdd6f4", "theme.bar.menus.menu.network.status.color": "#6c7086", "theme.bar.menus.menu.network.text": "#cdd6f4", "theme.bar.menus.menu.network.label.color": "#cba6f7", "theme.bar.menus.menu.network.border.color": "#313244", "theme.bar.menus.menu.network.background.color": "#11111b", "theme.bar.menus.menu.network.card.color": "#1e1e2e", "theme.bar.menus.menu.volume.input_slider.puck": "#585b70", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#45475a", "theme.bar.menus.menu.volume.input_slider.background": "#585b71", "theme.bar.menus.menu.volume.input_slider.primary": "#eba0ac", "theme.bar.menus.menu.volume.audio_slider.puck": "#585b70", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#45475a", "theme.bar.menus.menu.volume.audio_slider.background": "#585b71", "theme.bar.menus.menu.volume.audio_slider.primary": "#eba0ac", "theme.bar.menus.menu.volume.icons.active": "#eba0ac", "theme.bar.menus.menu.volume.icons.passive": "#9399b2", "theme.bar.menus.menu.volume.iconbutton.active": "#eba0ac", "theme.bar.menus.menu.volume.iconbutton.passive": "#cdd6f4", "theme.bar.menus.menu.volume.listitems.active": "#eba0ab", "theme.bar.menus.menu.volume.listitems.passive": "#cdd6f4", "theme.bar.menus.menu.volume.border.color": "#313244", "theme.bar.menus.menu.volume.background.color": "#11111b", "theme.bar.menus.menu.media.slider.puck": "#6c7086", "theme.bar.menus.menu.media.slider.backgroundhover": "#45475a", "theme.bar.menus.menu.media.slider.background": "#585b71", "theme.bar.menus.menu.media.slider.primary": "#f5c2e7", "theme.bar.menus.menu.media.buttons.text": "#11111b", "theme.bar.menus.menu.media.buttons.background": "#b4beff", "theme.bar.menus.menu.media.buttons.enabled": "#94e2d4", "theme.bar.menus.menu.media.buttons.inactive": "#585b70", "theme.bar.menus.menu.media.border.color": "#313244", "theme.bar.menus.menu.media.background.color": "#11111b", "theme.bar.menus.menu.media.album": "#f5c2e8", "theme.bar.menus.menu.media.artist": "#94e2d6", "theme.bar.menus.menu.media.song": "#b4beff", "theme.bar.menus.tooltip.text": "#cdd6f4", "theme.bar.menus.tooltip.background": "#11111b", "theme.bar.menus.dropdownmenu.divider": "#1e1e2e", "theme.bar.menus.dropdownmenu.text": "#cdd6f4", "theme.bar.menus.dropdownmenu.background": "#11111b", "theme.bar.menus.slider.puck": "#6c7086", "theme.bar.menus.slider.backgroundhover": "#45475a", "theme.bar.menus.slider.background": "#585b71", "theme.bar.menus.slider.primary": "#b4befe", "theme.bar.menus.progressbar.background": "#45475a", "theme.bar.menus.progressbar.foreground": "#b4befe", "theme.bar.menus.iconbuttons.active": "#b4beff", "theme.bar.menus.iconbuttons.passive": "#cdd6f3", "theme.bar.menus.buttons.text": "#181824", "theme.bar.menus.buttons.disabled": "#585b71", "theme.bar.menus.buttons.active": "#f5c2e6", "theme.bar.menus.buttons.default": "#b4befe", "theme.bar.menus.switch.puck": "#454759", "theme.bar.menus.switch.disabled": "#313245", "theme.bar.menus.switch.enabled": "#b4befe", "theme.bar.menus.icons.active": "#b4befe", "theme.bar.menus.icons.passive": "#585b70", "theme.bar.menus.listitems.active": "#b4befd", "theme.bar.menus.listitems.passive": "#cdd6f4", "theme.bar.menus.label": "#b4befe", "theme.bar.menus.feinttext": "#313244", "theme.bar.menus.dimtext": "#585b70", "theme.bar.menus.cards": "#1e1e2e", "theme.bar.buttons.notifications.total": "#b4befe", "theme.bar.buttons.notifications.icon": "#1e1e2e", "theme.bar.buttons.notifications.background": "#242438", "theme.bar.buttons.clock.icon": "#232338", "theme.bar.buttons.clock.text": "#f5c2e7", "theme.bar.buttons.clock.background": "#242438", "theme.bar.buttons.battery.icon": "#242438", "theme.bar.buttons.battery.text": "#f9e2af", "theme.bar.buttons.battery.background": "#242438", "theme.bar.buttons.systray.background": "#242438", "theme.bar.buttons.bluetooth.icon": "#1e1e2e", "theme.bar.buttons.bluetooth.text": "#89dceb", "theme.bar.buttons.bluetooth.background": "#242438", "theme.bar.buttons.network.icon": "#242438", "theme.bar.buttons.network.text": "#cba6f7", "theme.bar.buttons.network.background": "#242438", "theme.bar.buttons.volume.icon": "#242438", "theme.bar.buttons.volume.text": "#eba0ac", "theme.bar.buttons.volume.background": "#242438", "theme.bar.buttons.windowtitle.icon": "#1e1e2e", "theme.bar.buttons.windowtitle.text": "#f5c2e7", "theme.bar.buttons.windowtitle.background": "#242438", "theme.bar.buttons.workspaces.active": "#f5c2e7", "theme.bar.buttons.workspaces.occupied": "#f2cdcd", "theme.bar.buttons.workspaces.available": "#89dceb", "theme.bar.buttons.workspaces.hover": "#f5c2e7", "theme.bar.buttons.workspaces.background": "#242438", "theme.bar.buttons.dashboard.icon": "#1e1e2e", "theme.bar.buttons.dashboard.background": "#f9e2af", "theme.osd.label": "#b4beff", "theme.osd.icon": "#11111b", "theme.osd.bar_overflow_color": "#f38ba7", "theme.osd.bar_empty_color": "#313244", "theme.osd.bar_color": "#b4beff", "theme.osd.icon_container": "#b4beff", "theme.osd.bar_container": "#11111b", "theme.notification.close_button.label": "#11111b", "theme.notification.close_button.background": "#f38ba7", "theme.notification.labelicon": "#b4befe", "theme.notification.text": "#cdd6f4", "theme.notification.time": "#7f849b", "theme.notification.border": "#313243", "theme.notification.label": "#b4befe", "theme.notification.actions.text": "#181825", "theme.notification.actions.background": "#b4befd", "theme.notification.background": "#181826", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#f5c2e7", "theme.bar.menus.menu.media.card.color": "#1e1e2e", "theme.bar.menus.check_radio_button.background": "#45475a", "theme.bar.menus.check_radio_button.active": "#b4beff", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#eba0ac", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.buttons.windowtitle.icon_background": "#f5c2e7", "theme.bar.buttons.media.icon_background": "#b4befe", "theme.bar.buttons.notifications.icon_background": "#b4befe", "theme.bar.buttons.battery.icon_background": "#f9e2af", "theme.bar.buttons.clock.icon_background": "#f5c2e7", "theme.bar.menus.menu.notifications.scrollbar.color": "#b4befe", "theme.bar.menus.menu.notifications.pager.button": "#b4befe", "theme.bar.menus.menu.notifications.pager.label": "#9399b2", "theme.bar.menus.menu.notifications.pager.background": "#11111b", "theme.bar.buttons.modules.ram.icon_background": "#f9e2af", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.cpu.icon_background": "#f38ba8", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.storage.icon_background": "#f5c2e7", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.netstat.icon_background": "#a6e3a1", "theme.bar.buttons.modules.kbLayout.icon_background": "#89dceb", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.updates.icon_background": "#cba6f7", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.weather.icon_background": "#b4befe", "theme.bar.buttons.modules.weather.text": "#b4befe", "theme.bar.buttons.modules.weather.icon": "#242438", "theme.bar.buttons.modules.power.icon_background": "#f38ba8", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.menus.menu.power.background.color": "#11111b", "theme.bar.menus.menu.power.border.color": "#313244", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1e1e2e", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#f38ba7", "theme.bar.menus.menu.power.buttons.shutdown.text": "#f38ba8", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#181824", "theme.bar.buttons.modules.netstat.background": "#242438", "theme.bar.buttons.modules.cpu.background": "#242438", "theme.bar.buttons.modules.cpu.text": "#f38ba8", "theme.bar.buttons.modules.storage.text": "#f5c2e7", "theme.bar.menus.popover.border": "#181824", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#89dceb", "theme.bar.menus.menu.power.buttons.restart.text": "#fab387", "theme.bar.buttons.modules.updates.background": "#242438", "theme.bar.buttons.modules.netstat.text": "#a6e3a1", "theme.bar.buttons.modules.storage.background": "#242438", "theme.bar.menus.menu.power.buttons.logout.icon": "#181824", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#fab387", "theme.bar.menus.menu.power.buttons.restart.icon": "#181824", "theme.bar.menus.menu.power.buttons.sleep.text": "#89dceb", "theme.bar.menus.menu.power.buttons.logout.background": "#1e1e2e", "theme.bar.menus.menu.power.buttons.sleep.background": "#1e1e2e", "theme.bar.buttons.modules.ram.text": "#f9e2af", "theme.bar.menus.menu.power.buttons.logout.text": "#a6e3a1", "theme.bar.buttons.modules.kbLayout.background": "#242438", "theme.bar.buttons.modules.power.background": "#242438", "theme.bar.buttons.modules.weather.background": "#242438", "theme.bar.buttons.modules.ram.background": "#242438", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a6e3a1", "theme.bar.buttons.modules.updates.text": "#cba6f7", "theme.bar.menus.menu.power.buttons.sleep.icon": "#181824", "theme.bar.menus.menu.power.buttons.restart.background": "#1e1e2e", "theme.bar.buttons.modules.kbLayout.text": "#89dceb", "theme.bar.buttons.windowtitle.border": "#f5c2e7", "theme.bar.buttons.modules.power.border": "#f38ba8", "theme.bar.buttons.modules.weather.border": "#b4befe", "theme.bar.buttons.modules.updates.border": "#cba6f7", "theme.bar.buttons.modules.kbLayout.border": "#89dceb", "theme.bar.buttons.modules.netstat.border": "#a6e3a1", "theme.bar.buttons.modules.storage.border": "#f5c2e7", "theme.bar.buttons.modules.cpu.border": "#f38ba8", "theme.bar.buttons.modules.ram.border": "#f9e2af", "theme.bar.buttons.notifications.border": "#b4befe", "theme.bar.buttons.clock.border": "#f5c2e7", "theme.bar.buttons.battery.border": "#f9e2af", "theme.bar.buttons.systray.border": "#b4befe", "theme.bar.buttons.bluetooth.border": "#89dceb", "theme.bar.buttons.network.border": "#cba6f7", "theme.bar.buttons.volume.border": "#eba0ac", "theme.bar.buttons.media.border": "#b4befe", "theme.bar.buttons.workspaces.border": "#f5c2e7", "theme.bar.buttons.dashboard.border": "#f9e2af", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.background": "#242438", "theme.bar.buttons.modules.submap.icon_background": "#94e2d5", "theme.bar.buttons.modules.submap.text": "#94e2d5", "theme.bar.buttons.modules.submap.border": "#94e2d5" } ================================================ FILE: .config/ags/themes/cyberpunk.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#FFD700", "theme.bar.menus.menu.notifications.pager.label": "#9399B2", "theme.bar.menus.menu.notifications.pager.button": "#FFD700", "theme.bar.menus.menu.notifications.pager.background": "#0A0A0A", "theme.bar.menus.menu.notifications.switch.puck": "#333333", "theme.bar.menus.menu.notifications.switch.disabled": "#2A2A2A", "theme.bar.menus.menu.notifications.switch.enabled": "#FFD700", "theme.bar.menus.menu.notifications.clear": "#FF4500", "theme.bar.menus.menu.notifications.switch_divider": "#333333", "theme.bar.menus.menu.notifications.border": "#2A2A2A", "theme.bar.menus.menu.notifications.card": "#1A1A1A", "theme.bar.menus.menu.notifications.background": "#0A0A0A", "theme.bar.menus.menu.notifications.no_notifications_label": "#2A2A2A", "theme.bar.menus.menu.notifications.label": "#FFD700", "theme.bar.menus.menu.power.buttons.sleep.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.sleep.text": "#00FFFF", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#00FFFF", "theme.bar.menus.menu.power.buttons.sleep.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.logout.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.logout.text": "#32CD32", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#32CD32", "theme.bar.menus.menu.power.buttons.logout.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.restart.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.restart.text": "#FFD700", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#FFD700", "theme.bar.menus.menu.power.buttons.restart.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.shutdown.text": "#FF4500", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#ff4400", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1A1A1A", "theme.bar.menus.menu.power.border.color": "#2A2A2A", "theme.bar.menus.menu.power.background.color": "#0A0A0A", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#FF69B4", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#FF69B4", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#FF69B4", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#32CD32", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#32CD32", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#32CD32", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#FFD700", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#FFD700", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#FFD700", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#FF4500", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#FF4500", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#FF4500", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#333333", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#00FFFF", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#FFD700", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#32CD32", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#FF4500", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#FFD700", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#FF69B4", "theme.bar.menus.menu.dashboard.controls.input.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.input.background": "#FF69B4", "theme.bar.menus.menu.dashboard.controls.volume.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.volume.background": "#FF4500", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#FFD700", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#00FFFF", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#FF69B4", "theme.bar.menus.menu.dashboard.controls.disabled": "#585858", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#32CD32", "theme.bar.menus.menu.dashboard.shortcuts.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.shortcuts.background": "#00FFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#0A0A0A", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#FF4500", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#32CD32", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#FFFFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#00FFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#2A2A2A", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#0A0A0A", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1A1A1A", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#00FFFF", "theme.bar.menus.menu.dashboard.powermenu.logout": "#32CD32", "theme.bar.menus.menu.dashboard.powermenu.restart": "#FFD700", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#FF4500", "theme.bar.menus.menu.dashboard.profile.name": "#FF69B4", "theme.bar.menus.menu.dashboard.border.color": "#2A2A2A", "theme.bar.menus.menu.dashboard.background.color": "#0A0A0A", "theme.bar.menus.menu.dashboard.card.color": "#1A1A1A", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#FF69B4", "theme.bar.menus.menu.clock.weather.hourly.icon": "#FF69B4", "theme.bar.menus.menu.clock.weather.hourly.time": "#FF69B4", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#00FFFF", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#00BFFF", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#00FFFF", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#FFD700", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#FFD700", "theme.bar.menus.menu.clock.weather.stats": "#00FFFF", "theme.bar.menus.menu.clock.weather.status": "#FF69B4", "theme.bar.menus.menu.clock.weather.temperature": "#32CD32", "theme.bar.menus.menu.clock.weather.icon": "#FFD700", "theme.bar.menus.menu.clock.calendar.contextdays": "#585858", "theme.bar.menus.menu.clock.calendar.days": "#FFD700", "theme.bar.menus.menu.clock.calendar.currentday": "#00FFFF", "theme.bar.menus.menu.clock.calendar.paginator": "#00FFFF", "theme.bar.menus.menu.clock.calendar.weekdays": "#00FFFF", "theme.bar.menus.menu.clock.calendar.yearmonth": "#FF69B4", "theme.bar.menus.menu.clock.time.timeperiod": "#32CD32", "theme.bar.menus.menu.clock.time.time": "#FFD700", "theme.bar.menus.menu.clock.text": "#00FFFF", "theme.bar.menus.menu.clock.border.color": "#2A2A2A", "theme.bar.menus.menu.clock.background.color": "#0A0A0A", "theme.bar.menus.menu.clock.card.color": "#1A1A1A", "theme.bar.menus.menu.battery.slider.puck": "#333333", "theme.bar.menus.menu.battery.slider.backgroundhover": "#45475A", "theme.bar.menus.menu.battery.slider.background": "#2A2A2A", "theme.bar.menus.menu.battery.slider.primary": "#FFD700", "theme.bar.menus.menu.battery.icons.active": "#FFD700", "theme.bar.menus.menu.battery.icons.passive": "#9399B2", "theme.bar.menus.menu.battery.listitems.active": "#FFD700", "theme.bar.menus.menu.battery.listitems.passive": "#00FFFF", "theme.bar.menus.menu.battery.text": "#FFD700", "theme.bar.menus.menu.battery.label.color": "#FFD700", "theme.bar.menus.menu.battery.border.color": "#2A2A2A", "theme.bar.menus.menu.battery.background.color": "#0A0A0A", "theme.bar.menus.menu.battery.card.color": "#1A1A1A", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1A1A1A", "theme.bar.menus.menu.systray.dropdownmenu.text": "#FFD700", "theme.bar.menus.menu.systray.dropdownmenu.background": "#0A0A0A", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#00FFFF", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#FFD700", "theme.bar.menus.menu.bluetooth.icons.active": "#00FFFF", "theme.bar.menus.menu.bluetooth.icons.passive": "#9399B2", "theme.bar.menus.menu.bluetooth.listitems.active": "#00FFFF", "theme.bar.menus.menu.bluetooth.listitems.passive": "#FFD700", "theme.bar.menus.menu.bluetooth.switch.puck": "#333333", "theme.bar.menus.menu.bluetooth.switch.disabled": "#2A2A2A", "theme.bar.menus.menu.bluetooth.switch.enabled": "#00FFFF", "theme.bar.menus.menu.bluetooth.switch_divider": "#333333", "theme.bar.menus.menu.bluetooth.status": "#FF69B4", "theme.bar.menus.menu.bluetooth.text": "#FFD700", "theme.bar.menus.menu.bluetooth.label.color": "#00FFFF", "theme.bar.menus.menu.bluetooth.border.color": "#2A2A2A", "theme.bar.menus.menu.bluetooth.background.color": "#0A0A0A", "theme.bar.menus.menu.bluetooth.card.color": "#1A1A1A", "theme.bar.menus.menu.network.iconbuttons.active": "#FF69B4", "theme.bar.menus.menu.network.iconbuttons.passive": "#FFD700", "theme.bar.menus.menu.network.icons.active": "#FF69B4", "theme.bar.menus.menu.network.icons.passive": "#9399B2", "theme.bar.menus.menu.network.listitems.active": "#FF69B4", "theme.bar.menus.menu.network.listitems.passive": "#FFD700", "theme.bar.menus.menu.network.status.color": "#FF69B4", "theme.bar.menus.menu.network.text": "#FFD700", "theme.bar.menus.menu.network.label.color": "#FF69B4", "theme.bar.menus.menu.network.border.color": "#2A2A2A", "theme.bar.menus.menu.network.background.color": "#0A0A0A", "theme.bar.menus.menu.network.card.color": "#1A1A1A", "theme.bar.menus.menu.volume.input_slider.puck": "#333333", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#45475A", "theme.bar.menus.menu.volume.input_slider.background": "#2A2A2A", "theme.bar.menus.menu.volume.input_slider.primary": "#FF69B4", "theme.bar.menus.menu.volume.audio_slider.puck": "#333333", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#45475A", "theme.bar.menus.menu.volume.audio_slider.background": "#2A2A2A", "theme.bar.menus.menu.volume.audio_slider.primary": "#FF69B4", "theme.bar.menus.menu.volume.icons.active": "#FF69B4", "theme.bar.menus.menu.volume.icons.passive": "#9399B2", "theme.bar.menus.menu.volume.iconbutton.active": "#FF69B4", "theme.bar.menus.menu.volume.iconbutton.passive": "#FFD700", "theme.bar.menus.menu.volume.listitems.active": "#FF69B4", "theme.bar.menus.menu.volume.listitems.passive": "#FFD700", "theme.bar.menus.menu.volume.text": "#FFFFFF", "theme.bar.menus.menu.volume.label.color": "#FF69B4", "theme.bar.menus.menu.volume.border.color": "#2A2A2A", "theme.bar.menus.menu.volume.background.color": "#0A0A0A", "theme.bar.menus.menu.volume.card.color": "#1A1A1A", "theme.bar.menus.menu.media.slider.puck": "#333333", "theme.bar.menus.menu.media.slider.backgroundhover": "#45475A", "theme.bar.menus.menu.media.slider.background": "#2A2A2A", "theme.bar.menus.menu.media.slider.primary": "#FFD700", "theme.bar.menus.menu.media.buttons.text": "#0A0A0A", "theme.bar.menus.menu.media.buttons.background": "#FF69B4", "theme.bar.menus.menu.media.buttons.enabled": "#00FFFF", "theme.bar.menus.menu.media.buttons.inactive": "#333333", "theme.bar.menus.menu.media.border.color": "#2A2A2A", "theme.bar.menus.menu.media.card.color": "#1A1A1A", "theme.bar.menus.menu.media.background.color": "#0A0A0A", "theme.bar.menus.menu.media.album": "#FF69B4", "theme.bar.menus.menu.media.artist": "#00FFFF", "theme.bar.menus.menu.media.song": "#FFD700", "theme.bar.menus.tooltip.text": "#FFD700", "theme.bar.menus.tooltip.background": "#0A0A0A", "theme.bar.menus.dropdownmenu.divider": "#1A1A1A", "theme.bar.menus.dropdownmenu.text": "#FFD700", "theme.bar.menus.dropdownmenu.background": "#0A0A0A", "theme.bar.menus.slider.puck": "#333333", "theme.bar.menus.slider.backgroundhover": "#45475A", "theme.bar.menus.slider.background": "#2A2A2A", "theme.bar.menus.slider.primary": "#00FFFF", "theme.bar.menus.progressbar.background": "#45475A", "theme.bar.menus.progressbar.foreground": "#00FFFF", "theme.bar.menus.iconbuttons.active": "#00FFFF", "theme.bar.menus.iconbuttons.passive": "#FFD700", "theme.bar.menus.buttons.text": "#0A0A0A", "theme.bar.menus.buttons.disabled": "#333333", "theme.bar.menus.buttons.active": "#00FFFF", "theme.bar.menus.buttons.default": "#FFD700", "theme.bar.menus.check_radio_button.active": "#ffffff", "theme.bar.menus.check_radio_button.background": "#000000", "theme.bar.menus.switch.puck": "#333333", "theme.bar.menus.switch.disabled": "#2A2A2A", "theme.bar.menus.switch.enabled": "#00FFFF", "theme.bar.menus.icons.active": "#00FFFF", "theme.bar.menus.icons.passive": "#333333", "theme.bar.menus.listitems.active": "#00FFFF", "theme.bar.menus.listitems.passive": "#FFD700", "theme.bar.menus.popover.border": "#0A0A0A", "theme.bar.menus.popover.background": "#0D0D0D", "theme.bar.menus.popover.text": "#00FFFF", "theme.bar.menus.label": "#00FFFF", "theme.bar.menus.feinttext": "#1a1a1a", "theme.bar.menus.dimtext": "#2b2b2b", "theme.bar.menus.text": "#FFFFFF", "theme.bar.menus.border.color": "#2A2A2A", "theme.bar.menus.cards": "#0a0a0a", "theme.bar.menus.background": "#0A0A0A", "theme.bar.buttons.modules.power.icon_background": "#FF4500", "theme.bar.buttons.modules.power.icon": "#FF4500", "theme.bar.buttons.modules.power.background": "#121212", "theme.bar.buttons.modules.weather.icon_background": "#FFD700", "theme.bar.buttons.modules.weather.icon": "#FFD700", "theme.bar.buttons.modules.weather.text": "#FFD700", "theme.bar.buttons.modules.weather.background": "#121212", "theme.bar.buttons.modules.updates.icon_background": "#FFD700", "theme.bar.buttons.modules.updates.icon": "#FFD700", "theme.bar.buttons.modules.updates.text": "#FFD700", "theme.bar.buttons.modules.updates.background": "#121212", "theme.bar.buttons.modules.kbLayout.icon_background": "#00FFFF", "theme.bar.buttons.modules.kbLayout.icon": "#00FFFF", "theme.bar.buttons.modules.kbLayout.text": "#00FFFF", "theme.bar.buttons.modules.kbLayout.background": "#121212", "theme.bar.buttons.modules.netstat.icon_background": "#32CD32", "theme.bar.buttons.modules.netstat.icon": "#32CD32", "theme.bar.buttons.modules.netstat.text": "#32CD32", "theme.bar.buttons.modules.netstat.background": "#121212", "theme.bar.buttons.modules.storage.icon_background": "#FF4500", "theme.bar.buttons.modules.storage.icon": "#FF4500", "theme.bar.buttons.modules.storage.text": "#FF4500", "theme.bar.buttons.modules.storage.background": "#121212", "theme.bar.buttons.modules.cpu.icon_background": "#FF4500", "theme.bar.buttons.modules.cpu.icon": "#FF4500", "theme.bar.buttons.modules.cpu.text": "#FF4500", "theme.bar.buttons.modules.cpu.background": "#121212", "theme.bar.buttons.modules.ram.icon_background": "#FFD700", "theme.bar.buttons.modules.ram.icon": "#FFD700", "theme.bar.buttons.modules.ram.text": "#FFD700", "theme.bar.buttons.modules.ram.background": "#121212", "theme.bar.buttons.notifications.total": "#f7d04b", "theme.bar.buttons.notifications.icon_background": "#FFD700", "theme.bar.buttons.notifications.icon": "#f7d04b", "theme.bar.buttons.notifications.background": "#121212", "theme.bar.buttons.clock.icon_background": "#FF69B4", "theme.bar.buttons.clock.icon": "#5bafff", "theme.bar.buttons.clock.text": "#5bafff", "theme.bar.buttons.clock.background": "#121212", "theme.bar.buttons.battery.icon_background": "#FFD700", "theme.bar.buttons.battery.icon": "#f7d04b", "theme.bar.buttons.battery.text": "#f7d04b", "theme.bar.buttons.battery.background": "#121212", "theme.bar.buttons.systray.background": "#121212", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.buttons.bluetooth.icon": "#5bafff", "theme.bar.buttons.bluetooth.text": "#5bafff", "theme.bar.buttons.bluetooth.background": "#121212", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.network.icon": "#e23fe2", "theme.bar.buttons.network.text": "#e23fe2", "theme.bar.buttons.network.background": "#121212", "theme.bar.buttons.volume.icon_background": "#FF4500", "theme.bar.buttons.volume.icon": "#ff3f3f", "theme.bar.buttons.volume.text": "#ff3f3f", "theme.bar.buttons.volume.background": "#121212", "theme.bar.buttons.media.icon_background": "#FFD700", "theme.bar.buttons.media.icon": "#FFD700", "theme.bar.buttons.media.text": "#00FFFF", "theme.bar.buttons.media.background": "#111111", "theme.bar.buttons.windowtitle.icon_background": "#FF69B4", "theme.bar.buttons.windowtitle.icon": "#5bafff", "theme.bar.buttons.windowtitle.text": "#5bafff", "theme.bar.buttons.windowtitle.background": "#121212", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#e23ee2", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.active": "#e23fe2", "theme.bar.buttons.workspaces.occupied": "#ff3f3f", "theme.bar.buttons.workspaces.available": "#5bafff", "theme.bar.buttons.workspaces.hover": "#303030", "theme.bar.buttons.workspaces.background": "#121212", "theme.bar.buttons.dashboard.icon": "#f7d04b", "theme.bar.buttons.dashboard.background": "#121212", "theme.bar.buttons.icon": "#FFD700", "theme.bar.buttons.text": "#00FFFF", "theme.bar.buttons.hover": "#333333", "theme.bar.buttons.icon_background": "#121212", "theme.bar.buttons.background": "#111111", "theme.bar.buttons.style": "default", "theme.bar.background": "#0A0A0A", "theme.osd.label": "#5bafff", "theme.osd.icon": "#0a0a0a", "theme.osd.bar_overflow_color": "#ff3f3f", "theme.osd.bar_empty_color": "#1a1a1a", "theme.osd.bar_color": "#5bafff", "theme.osd.icon_container": "#5bafff", "theme.osd.bar_container": "#0a0a0a", "theme.notification.close_button.label": "#0a0a0a", "theme.notification.close_button.background": "#ff3f3f", "theme.notification.labelicon": "#5bafff", "theme.notification.text": "#d1d1d1", "theme.notification.time": "#797979", "theme.notification.border": "#1a1a1a", "theme.notification.label": "#5bafff", "theme.notification.actions.text": "#0a0a0a", "theme.notification.actions.background": "#5bafff", "theme.notification.background": "#0a0a0a", "theme.bar.buttons.modules.power.border": "#FF4500", "theme.bar.buttons.modules.weather.border": "#FFD700", "theme.bar.buttons.modules.updates.border": "#FFD700", "theme.bar.buttons.modules.kbLayout.border": "#00FFFF", "theme.bar.buttons.modules.netstat.border": "#32CD32", "theme.bar.buttons.modules.storage.border": "#FF4500", "theme.bar.buttons.modules.cpu.border": "#FF4500", "theme.bar.buttons.modules.ram.border": "#FFD700", "theme.bar.buttons.notifications.border": "#f7d04b", "theme.bar.buttons.clock.border": "#5bafff", "theme.bar.buttons.battery.border": "#f7d04b", "theme.bar.buttons.systray.border": "#303030", "theme.bar.buttons.bluetooth.border": "#5bafff", "theme.bar.buttons.network.border": "#e23fe2", "theme.bar.buttons.volume.border": "#ff3f3f", "theme.bar.buttons.media.border": "#FFD700", "theme.bar.buttons.windowtitle.border": "#5bafff", "theme.bar.buttons.workspaces.border": "#e23ee2", "theme.bar.buttons.dashboard.border": "#f7d04b", "theme.bar.buttons.modules.submap.background": "#121212", "theme.bar.buttons.modules.submap.text": "#FF69B4", "theme.bar.buttons.modules.submap.border": "#FF69B4", "theme.bar.buttons.modules.submap.icon": "#FF69B4", "theme.bar.buttons.modules.submap.icon_background": "#121212" } ================================================ FILE: .config/ags/themes/cyberpunk_split.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#00ffff", "theme.bar.menus.menu.notifications.pager.label": "#9399B2", "theme.bar.menus.menu.notifications.pager.button": "#00ffff", "theme.bar.menus.menu.notifications.pager.background": "#0A0A0A", "theme.bar.menus.menu.notifications.switch.puck": "#333333", "theme.bar.menus.menu.notifications.switch.disabled": "#2A2A2A", "theme.bar.menus.menu.notifications.switch.enabled": "#FFD700", "theme.bar.menus.menu.notifications.clear": "#FF4500", "theme.bar.menus.menu.notifications.switch_divider": "#333333", "theme.bar.menus.menu.notifications.border": "#2A2A2A", "theme.bar.menus.menu.notifications.card": "#1A1A1A", "theme.bar.menus.menu.notifications.background": "#0A0A0A", "theme.bar.menus.menu.notifications.no_notifications_label": "#2A2A2A", "theme.bar.menus.menu.notifications.label": "#FFD700", "theme.bar.menus.menu.power.buttons.sleep.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.sleep.text": "#00FFFF", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#00FFFF", "theme.bar.menus.menu.power.buttons.sleep.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.logout.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.logout.text": "#32CD32", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#32CD32", "theme.bar.menus.menu.power.buttons.logout.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.restart.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.restart.text": "#FFD700", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#FFD700", "theme.bar.menus.menu.power.buttons.restart.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#0A0A0A", "theme.bar.menus.menu.power.buttons.shutdown.text": "#FF4500", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#ff4400", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1A1A1A", "theme.bar.menus.menu.power.border.color": "#2A2A2A", "theme.bar.menus.menu.power.background.color": "#0A0A0A", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#FF69B4", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#FF69B4", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#FF69B4", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#32CD32", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#32CD32", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#32CD32", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#FFD700", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#FFD700", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#FFD700", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#FF4500", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#FF4500", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#FF4500", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#333333", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#00FFFF", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#FFD700", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#32CD32", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#FF4500", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#FFD700", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#FF69B4", "theme.bar.menus.menu.dashboard.controls.input.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.input.background": "#FF69B4", "theme.bar.menus.menu.dashboard.controls.volume.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.volume.background": "#FF4500", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#FFD700", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#00FFFF", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#FF69B4", "theme.bar.menus.menu.dashboard.controls.disabled": "#585858", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#32CD32", "theme.bar.menus.menu.dashboard.shortcuts.text": "#0A0A0A", "theme.bar.menus.menu.dashboard.shortcuts.background": "#00FFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#0A0A0A", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#FF4500", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#32CD32", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#FFFFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#00FFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#2A2A2A", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#0A0A0A", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1A1A1A", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#00FFFF", "theme.bar.menus.menu.dashboard.powermenu.logout": "#32CD32", "theme.bar.menus.menu.dashboard.powermenu.restart": "#FFD700", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#FF4500", "theme.bar.menus.menu.dashboard.profile.name": "#FF69B4", "theme.bar.menus.menu.dashboard.border.color": "#2A2A2A", "theme.bar.menus.menu.dashboard.background.color": "#0A0A0A", "theme.bar.menus.menu.dashboard.card.color": "#1A1A1A", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#FF69B4", "theme.bar.menus.menu.clock.weather.hourly.icon": "#FF69B4", "theme.bar.menus.menu.clock.weather.hourly.time": "#FF69B4", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#00FFFF", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#00BFFF", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#00FFFF", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#FFD700", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#FFD700", "theme.bar.menus.menu.clock.weather.stats": "#00FFFF", "theme.bar.menus.menu.clock.weather.status": "#FF69B4", "theme.bar.menus.menu.clock.weather.temperature": "#32CD32", "theme.bar.menus.menu.clock.weather.icon": "#FFD700", "theme.bar.menus.menu.clock.calendar.contextdays": "#585858", "theme.bar.menus.menu.clock.calendar.days": "#FFD700", "theme.bar.menus.menu.clock.calendar.currentday": "#00FFFF", "theme.bar.menus.menu.clock.calendar.paginator": "#00FFFF", "theme.bar.menus.menu.clock.calendar.weekdays": "#00FFFF", "theme.bar.menus.menu.clock.calendar.yearmonth": "#FF69B4", "theme.bar.menus.menu.clock.time.timeperiod": "#32CD32", "theme.bar.menus.menu.clock.time.time": "#FFD700", "theme.bar.menus.menu.clock.text": "#00FFFF", "theme.bar.menus.menu.clock.border.color": "#2A2A2A", "theme.bar.menus.menu.clock.background.color": "#0A0A0A", "theme.bar.menus.menu.clock.card.color": "#1A1A1A", "theme.bar.menus.menu.battery.slider.puck": "#333333", "theme.bar.menus.menu.battery.slider.backgroundhover": "#45475A", "theme.bar.menus.menu.battery.slider.background": "#2A2A2A", "theme.bar.menus.menu.battery.slider.primary": "#FFD700", "theme.bar.menus.menu.battery.icons.active": "#FFD700", "theme.bar.menus.menu.battery.icons.passive": "#9399B2", "theme.bar.menus.menu.battery.listitems.active": "#FFD700", "theme.bar.menus.menu.battery.listitems.passive": "#00FFFF", "theme.bar.menus.menu.battery.text": "#FFD700", "theme.bar.menus.menu.battery.label.color": "#FFD700", "theme.bar.menus.menu.battery.border.color": "#2A2A2A", "theme.bar.menus.menu.battery.background.color": "#0A0A0A", "theme.bar.menus.menu.battery.card.color": "#1A1A1A", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1A1A1A", "theme.bar.menus.menu.systray.dropdownmenu.text": "#FFD700", "theme.bar.menus.menu.systray.dropdownmenu.background": "#0A0A0A", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#00FFFF", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#FFD700", "theme.bar.menus.menu.bluetooth.icons.active": "#00FFFF", "theme.bar.menus.menu.bluetooth.icons.passive": "#9399B2", "theme.bar.menus.menu.bluetooth.listitems.active": "#00FFFF", "theme.bar.menus.menu.bluetooth.listitems.passive": "#FFD700", "theme.bar.menus.menu.bluetooth.switch.puck": "#333333", "theme.bar.menus.menu.bluetooth.switch.disabled": "#2A2A2A", "theme.bar.menus.menu.bluetooth.switch.enabled": "#00FFFF", "theme.bar.menus.menu.bluetooth.switch_divider": "#333333", "theme.bar.menus.menu.bluetooth.status": "#FF69B4", "theme.bar.menus.menu.bluetooth.text": "#FFD700", "theme.bar.menus.menu.bluetooth.label.color": "#00FFFF", "theme.bar.menus.menu.bluetooth.border.color": "#2A2A2A", "theme.bar.menus.menu.bluetooth.background.color": "#0A0A0A", "theme.bar.menus.menu.bluetooth.card.color": "#1A1A1A", "theme.bar.menus.menu.network.iconbuttons.active": "#FF69B4", "theme.bar.menus.menu.network.iconbuttons.passive": "#FFD700", "theme.bar.menus.menu.network.icons.active": "#FF69B4", "theme.bar.menus.menu.network.icons.passive": "#9399B2", "theme.bar.menus.menu.network.listitems.active": "#FF69B4", "theme.bar.menus.menu.network.listitems.passive": "#FFD700", "theme.bar.menus.menu.network.status.color": "#FF69B4", "theme.bar.menus.menu.network.text": "#FFD700", "theme.bar.menus.menu.network.label.color": "#FF69B4", "theme.bar.menus.menu.network.border.color": "#2A2A2A", "theme.bar.menus.menu.network.background.color": "#0A0A0A", "theme.bar.menus.menu.network.card.color": "#1A1A1A", "theme.bar.menus.menu.volume.input_slider.puck": "#333333", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#45475A", "theme.bar.menus.menu.volume.input_slider.background": "#2A2A2A", "theme.bar.menus.menu.volume.input_slider.primary": "#FF69B4", "theme.bar.menus.menu.volume.audio_slider.puck": "#333333", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#45475A", "theme.bar.menus.menu.volume.audio_slider.background": "#2A2A2A", "theme.bar.menus.menu.volume.audio_slider.primary": "#FF69B4", "theme.bar.menus.menu.volume.icons.active": "#FF69B4", "theme.bar.menus.menu.volume.icons.passive": "#9399B2", "theme.bar.menus.menu.volume.iconbutton.active": "#FF69B4", "theme.bar.menus.menu.volume.iconbutton.passive": "#FFD700", "theme.bar.menus.menu.volume.listitems.active": "#FF69B4", "theme.bar.menus.menu.volume.listitems.passive": "#FFD700", "theme.bar.menus.menu.volume.text": "#FFFFFF", "theme.bar.menus.menu.volume.label.color": "#FF69B4", "theme.bar.menus.menu.volume.border.color": "#2A2A2A", "theme.bar.menus.menu.volume.background.color": "#0A0A0A", "theme.bar.menus.menu.volume.card.color": "#1A1A1A", "theme.bar.menus.menu.media.slider.puck": "#333333", "theme.bar.menus.menu.media.slider.backgroundhover": "#45475A", "theme.bar.menus.menu.media.slider.background": "#2A2A2A", "theme.bar.menus.menu.media.slider.primary": "#FFD700", "theme.bar.menus.menu.media.buttons.text": "#0A0A0A", "theme.bar.menus.menu.media.buttons.background": "#FF69B4", "theme.bar.menus.menu.media.buttons.enabled": "#00FFFF", "theme.bar.menus.menu.media.buttons.inactive": "#333333", "theme.bar.menus.menu.media.border.color": "#2A2A2A", "theme.bar.menus.menu.media.card.color": "#1A1A1A", "theme.bar.menus.menu.media.background.color": "#0A0A0A", "theme.bar.menus.menu.media.album": "#FF69B4", "theme.bar.menus.menu.media.artist": "#00FFFF", "theme.bar.menus.menu.media.song": "#FFD700", "theme.bar.menus.tooltip.text": "#FFD700", "theme.bar.menus.tooltip.background": "#0A0A0A", "theme.bar.menus.dropdownmenu.divider": "#1A1A1A", "theme.bar.menus.dropdownmenu.text": "#FFD700", "theme.bar.menus.dropdownmenu.background": "#0A0A0A", "theme.bar.menus.slider.puck": "#333333", "theme.bar.menus.slider.backgroundhover": "#45475A", "theme.bar.menus.slider.background": "#2A2A2A", "theme.bar.menus.slider.primary": "#00FFFF", "theme.bar.menus.progressbar.background": "#45475A", "theme.bar.menus.progressbar.foreground": "#00FFFF", "theme.bar.menus.iconbuttons.active": "#00FFFF", "theme.bar.menus.iconbuttons.passive": "#FFD700", "theme.bar.menus.buttons.text": "#0A0A0A", "theme.bar.menus.buttons.disabled": "#333333", "theme.bar.menus.buttons.active": "#00FFFF", "theme.bar.menus.buttons.default": "#FFD700", "theme.bar.menus.check_radio_button.active": "#ffffff", "theme.bar.menus.check_radio_button.background": "#000000", "theme.bar.menus.switch.puck": "#333333", "theme.bar.menus.switch.disabled": "#2A2A2A", "theme.bar.menus.switch.enabled": "#00FFFF", "theme.bar.menus.icons.active": "#00FFFF", "theme.bar.menus.icons.passive": "#333333", "theme.bar.menus.listitems.active": "#00FFFF", "theme.bar.menus.listitems.passive": "#FFD700", "theme.bar.menus.popover.border": "#0A0A0A", "theme.bar.menus.popover.background": "#0D0D0D", "theme.bar.menus.popover.text": "#00FFFF", "theme.bar.menus.label": "#00FFFF", "theme.bar.menus.feinttext": "#1a1a1a", "theme.bar.menus.dimtext": "#2b2b2b", "theme.bar.menus.text": "#FFFFFF", "theme.bar.menus.border.color": "#2A2A2A", "theme.bar.menus.cards": "#0a0a0a", "theme.bar.menus.background": "#0A0A0A", "theme.bar.buttons.modules.power.icon_background": "#FF4500", "theme.bar.buttons.modules.power.icon": "#121212", "theme.bar.buttons.modules.power.background": "#121212", "theme.bar.buttons.modules.weather.icon_background": "#00ffff", "theme.bar.buttons.modules.weather.icon": "#121212", "theme.bar.buttons.modules.weather.text": "#00ffff", "theme.bar.buttons.modules.weather.background": "#121212", "theme.bar.buttons.modules.updates.icon_background": "#FFD700", "theme.bar.buttons.modules.updates.icon": "#121212", "theme.bar.buttons.modules.updates.text": "#FFD700", "theme.bar.buttons.modules.updates.background": "#121212", "theme.bar.buttons.modules.kbLayout.icon_background": "#00FFFF", "theme.bar.buttons.modules.kbLayout.icon": "#121212", "theme.bar.buttons.modules.kbLayout.text": "#00FFFF", "theme.bar.buttons.modules.kbLayout.background": "#121212", "theme.bar.buttons.modules.netstat.icon_background": "#32CD32", "theme.bar.buttons.modules.netstat.icon": "#121212", "theme.bar.buttons.modules.netstat.text": "#32CD32", "theme.bar.buttons.modules.netstat.background": "#121212", "theme.bar.buttons.modules.storage.icon_background": "#FF4500", "theme.bar.buttons.modules.storage.icon": "#121212", "theme.bar.buttons.modules.storage.text": "#FF4500", "theme.bar.buttons.modules.storage.background": "#121212", "theme.bar.buttons.modules.cpu.icon_background": "#FF4500", "theme.bar.buttons.modules.cpu.icon": "#121212", "theme.bar.buttons.modules.cpu.text": "#FF4500", "theme.bar.buttons.modules.cpu.background": "#121212", "theme.bar.buttons.modules.ram.icon_background": "#FFD700", "theme.bar.buttons.modules.ram.icon": "#121212", "theme.bar.buttons.modules.ram.text": "#FFD700", "theme.bar.buttons.modules.ram.background": "#121212", "theme.bar.buttons.notifications.total": "#f7d04b", "theme.bar.buttons.notifications.icon_background": "#f7d04b", "theme.bar.buttons.notifications.icon": "#121212", "theme.bar.buttons.notifications.background": "#121212", "theme.bar.buttons.clock.icon_background": "#5bafff", "theme.bar.buttons.clock.icon": "#121212", "theme.bar.buttons.clock.text": "#5bafff", "theme.bar.buttons.clock.background": "#121212", "theme.bar.buttons.battery.icon_background": "#f7d04b", "theme.bar.buttons.battery.icon": "#121212", "theme.bar.buttons.battery.text": "#f7d04b", "theme.bar.buttons.battery.background": "#121212", "theme.bar.buttons.systray.background": "#121212", "theme.bar.buttons.bluetooth.icon_background": "#5bafff", "theme.bar.buttons.bluetooth.icon": "#121212", "theme.bar.buttons.bluetooth.text": "#5bafff", "theme.bar.buttons.bluetooth.background": "#121212", "theme.bar.buttons.network.icon_background": "#e23fe2", "theme.bar.buttons.network.icon": "#121212", "theme.bar.buttons.network.text": "#e23fe2", "theme.bar.buttons.network.background": "#121212", "theme.bar.buttons.volume.icon_background": "#ff3f3f", "theme.bar.buttons.volume.icon": "#121212", "theme.bar.buttons.volume.text": "#ff3f3f", "theme.bar.buttons.volume.background": "#121212", "theme.bar.buttons.media.icon_background": "#00ffff", "theme.bar.buttons.media.icon": "#121212", "theme.bar.buttons.media.text": "#00ffff", "theme.bar.buttons.media.background": "#111111", "theme.bar.buttons.windowtitle.icon_background": "#5bafff", "theme.bar.buttons.windowtitle.icon": "#121212", "theme.bar.buttons.windowtitle.text": "#5bafff", "theme.bar.buttons.windowtitle.background": "#121212", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#e23ee2", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#e23fe2", "theme.bar.buttons.workspaces.active": "#e23fe2", "theme.bar.buttons.workspaces.occupied": "#ff3f3f", "theme.bar.buttons.workspaces.available": "#5bafff", "theme.bar.buttons.workspaces.hover": "#e23fe2", "theme.bar.buttons.workspaces.background": "#121212", "theme.bar.buttons.dashboard.icon": "#121212", "theme.bar.buttons.dashboard.background": "#f7d04b", "theme.bar.buttons.icon": "#FFD700", "theme.bar.buttons.text": "#00FFFF", "theme.bar.buttons.hover": "#333333", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.background": "#111111", "theme.bar.buttons.style": "split", "theme.bar.background": "#0A0A0A", "theme.osd.label": "#5bafff", "theme.osd.icon": "#0a0a0a", "theme.osd.bar_overflow_color": "#ff3f3f", "theme.osd.bar_empty_color": "#1a1a1a", "theme.osd.bar_color": "#5bafff", "theme.osd.icon_container": "#5bafff", "theme.osd.bar_container": "#0a0a0a", "theme.notification.close_button.label": "#0a0a0a", "theme.notification.close_button.background": "#ff3f3f", "theme.notification.labelicon": "#5bafff", "theme.notification.text": "#d1d1d1", "theme.notification.time": "#797979", "theme.notification.border": "#1a1a1a", "theme.notification.label": "#5bafff", "theme.notification.actions.text": "#0a0a0a", "theme.notification.actions.background": "#5bafff", "theme.notification.background": "#0a0a0a", "theme.bar.buttons.modules.power.border": "#FF4500", "theme.bar.buttons.modules.weather.border": "#FFD700", "theme.bar.buttons.modules.updates.border": "#FFD700", "theme.bar.buttons.modules.kbLayout.border": "#00FFFF", "theme.bar.buttons.modules.netstat.border": "#32CD32", "theme.bar.buttons.modules.storage.border": "#FF4500", "theme.bar.buttons.modules.cpu.border": "#FF4500", "theme.bar.buttons.modules.ram.border": "#FFD700", "theme.bar.buttons.notifications.border": "#f7d04b", "theme.bar.buttons.clock.border": "#5bafff", "theme.bar.buttons.battery.border": "#f7d04b", "theme.bar.buttons.systray.border": "#303030", "theme.bar.buttons.bluetooth.border": "#5bafff", "theme.bar.buttons.network.border": "#e23fe2", "theme.bar.buttons.volume.border": "#ff3f3f", "theme.bar.buttons.media.border": "#FFD700", "theme.bar.buttons.windowtitle.border": "#5bafff", "theme.bar.buttons.workspaces.border": "#e23ee2", "theme.bar.buttons.dashboard.border": "#f7d04b", "theme.bar.buttons.modules.submap.background": "#121212", "theme.bar.buttons.modules.submap.text": "#FF69B4", "theme.bar.buttons.modules.submap.border": "#FF69B4", "theme.bar.buttons.modules.submap.icon": "#121212", "theme.bar.buttons.modules.submap.icon_background": "#FF69B4" } ================================================ FILE: .config/ags/themes/dracula.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#bd93f9", "theme.bar.menus.menu.notifications.pager.label": "#6272a4", "theme.bar.menus.menu.notifications.pager.button": "#bd93f9", "theme.bar.menus.menu.notifications.pager.background": "#282936", "theme.bar.menus.menu.notifications.switch.puck": "#44475a", "theme.bar.menus.menu.notifications.switch.disabled": "#44475a", "theme.bar.menus.menu.notifications.switch.enabled": "#bd93f9", "theme.bar.menus.menu.notifications.clear": "#bd93f9", "theme.bar.menus.menu.notifications.switch_divider": "#44475a", "theme.bar.menus.menu.notifications.border": "#44475a", "theme.bar.menus.menu.notifications.card": "#44475a", "theme.bar.menus.menu.notifications.background": "#282a36", "theme.bar.menus.menu.notifications.no_notifications_label": "#44475a", "theme.bar.menus.menu.notifications.label": "#bd93f9", "theme.bar.menus.menu.power.buttons.sleep.icon": "#282a36", "theme.bar.menus.menu.power.buttons.sleep.text": "#8be9fd", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#8be9fd", "theme.bar.menus.menu.power.buttons.sleep.background": "#44475a", "theme.bar.menus.menu.power.buttons.logout.icon": "#282a36", "theme.bar.menus.menu.power.buttons.logout.text": "#50fa7b", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#50fa7b", "theme.bar.menus.menu.power.buttons.logout.background": "#44475a", "theme.bar.menus.menu.power.buttons.restart.icon": "#282a36", "theme.bar.menus.menu.power.buttons.restart.text": "#ffb86c", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#ffb86c", "theme.bar.menus.menu.power.buttons.restart.background": "#44475a", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#282a36", "theme.bar.menus.menu.power.buttons.shutdown.text": "#bd93f9", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#ff5555", "theme.bar.menus.menu.power.buttons.shutdown.background": "#44475a", "theme.bar.menus.menu.power.border.color": "#44475a", "theme.bar.menus.menu.power.background.color": "#282936", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#ff79c6", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#ff79c6", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#ff79c6", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#50fa7b", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#50fa7b", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#50fa7b", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f1fa8c", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f1fa8c", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f1fa8c", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ffb86c", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ffb86c", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ffb86c", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#6272a4", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#ffb86c", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#bd93f9", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8be9fd", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ff5555", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f1fa8c", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#ff79c6", "theme.bar.menus.menu.dashboard.controls.input.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.input.background": "#ff79c6", "theme.bar.menus.menu.dashboard.controls.volume.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ffb86c", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f1fa8c", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#8be9fd", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#bd93f9", "theme.bar.menus.menu.dashboard.controls.disabled": "#44475a", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#50fa7b", "theme.bar.menus.menu.dashboard.shortcuts.text": "#282a36", "theme.bar.menus.menu.dashboard.shortcuts.background": "#bd93f9", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#282a36", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#ff5555", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#50fa7b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#f8f8f2", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#bd93f9", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#44475a", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#282a36", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#44475a", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#8be9fd", "theme.bar.menus.menu.dashboard.powermenu.logout": "#50fa7b", "theme.bar.menus.menu.dashboard.powermenu.restart": "#ffb86c", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#ff5555", "theme.bar.menus.menu.dashboard.profile.name": "#ff79c6", "theme.bar.menus.menu.dashboard.border.color": "#44475a", "theme.bar.menus.menu.dashboard.background.color": "#282a36", "theme.bar.menus.menu.dashboard.card.color": "#44475a", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#ff79c6", "theme.bar.menus.menu.clock.weather.hourly.icon": "#ff79c6", "theme.bar.menus.menu.clock.weather.hourly.time": "#ff79c6", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#8be9fd", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#8be9fd", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#bd93f9", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#ffb86c", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#ff5555", "theme.bar.menus.menu.clock.weather.stats": "#ff79c6", "theme.bar.menus.menu.clock.weather.status": "#8be9fd", "theme.bar.menus.menu.clock.weather.temperature": "#f8f8f2", "theme.bar.menus.menu.clock.weather.icon": "#ff79c6", "theme.bar.menus.menu.clock.calendar.contextdays": "#44475a", "theme.bar.menus.menu.clock.calendar.days": "#f8f8f2", "theme.bar.menus.menu.clock.calendar.currentday": "#ff79c6", "theme.bar.menus.menu.clock.calendar.paginator": "#ff79c6", "theme.bar.menus.menu.clock.calendar.weekdays": "#ff79c6", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8be9fd", "theme.bar.menus.menu.clock.time.timeperiod": "#8be9fd", "theme.bar.menus.menu.clock.time.time": "#ff79c6", "theme.bar.menus.menu.clock.text": "#f8f8f2", "theme.bar.menus.menu.clock.border.color": "#44475a", "theme.bar.menus.menu.clock.background.color": "#282a36", "theme.bar.menus.menu.clock.card.color": "#44475a", "theme.bar.menus.menu.battery.slider.puck": "#282936", "theme.bar.menus.menu.battery.slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.battery.slider.background": "#6272a4", "theme.bar.menus.menu.battery.slider.primary": "#f1fa8c", "theme.bar.menus.menu.battery.icons.active": "#f1fa8c", "theme.bar.menus.menu.battery.icons.passive": "#6272a4", "theme.bar.menus.menu.battery.listitems.active": "#f1fa8c", "theme.bar.menus.menu.battery.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.battery.text": "#f8f8f2", "theme.bar.menus.menu.battery.label.color": "#f1fa8c", "theme.bar.menus.menu.battery.border.color": "#44475a", "theme.bar.menus.menu.battery.background.color": "#282a36", "theme.bar.menus.menu.battery.card.color": "#44475a", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#44475a", "theme.bar.menus.menu.systray.dropdownmenu.text": "#f8f8f2", "theme.bar.menus.menu.systray.dropdownmenu.background": "#282a36", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#8be9fd", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#f8f8f2", "theme.bar.menus.menu.bluetooth.icons.active": "#8be9fd", "theme.bar.menus.menu.bluetooth.icons.passive": "#6272a4", "theme.bar.menus.menu.bluetooth.listitems.active": "#8be9fd", "theme.bar.menus.menu.bluetooth.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.bluetooth.switch.puck": "#44475a", "theme.bar.menus.menu.bluetooth.switch.disabled": "#44475a", "theme.bar.menus.menu.bluetooth.switch.enabled": "#8be9fd", "theme.bar.menus.menu.bluetooth.switch_divider": "#44475a", "theme.bar.menus.menu.bluetooth.status": "#44475a", "theme.bar.menus.menu.bluetooth.text": "#f8f8f2", "theme.bar.menus.menu.bluetooth.label.color": "#8be9fd", "theme.bar.menus.menu.bluetooth.border.color": "#44475a", "theme.bar.menus.menu.bluetooth.background.color": "#282a36", "theme.bar.menus.menu.bluetooth.card.color": "#44475a", "theme.bar.menus.menu.network.iconbuttons.active": "#bd93f9", "theme.bar.menus.menu.network.iconbuttons.passive": "#f8f8f2", "theme.bar.menus.menu.network.icons.active": "#bd93f9", "theme.bar.menus.menu.network.icons.passive": "#6272a4", "theme.bar.menus.menu.network.listitems.active": "#bd93f9", "theme.bar.menus.menu.network.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.network.status.color": "#44475a", "theme.bar.menus.menu.network.text": "#f8f8f2", "theme.bar.menus.menu.network.label.color": "#bd93f9", "theme.bar.menus.menu.network.border.color": "#44475a", "theme.bar.menus.menu.network.background.color": "#282a36", "theme.bar.menus.menu.network.card.color": "#44475a", "theme.bar.menus.menu.volume.input_slider.puck": "#282936", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.volume.input_slider.background": "#6272a4", "theme.bar.menus.menu.volume.input_slider.primary": "#ffb86c", "theme.bar.menus.menu.volume.audio_slider.puck": "#282936", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.volume.audio_slider.background": "#6272a4", "theme.bar.menus.menu.volume.audio_slider.primary": "#ffb86c", "theme.bar.menus.menu.volume.icons.active": "#ffb86c", "theme.bar.menus.menu.volume.icons.passive": "#6272a4", "theme.bar.menus.menu.volume.iconbutton.active": "#ffb86c", "theme.bar.menus.menu.volume.iconbutton.passive": "#f8f8f2", "theme.bar.menus.menu.volume.listitems.active": "#ffb86c", "theme.bar.menus.menu.volume.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.volume.text": "#f8f8f2", "theme.bar.menus.menu.volume.label.color": "#ffb86c", "theme.bar.menus.menu.volume.border.color": "#44475a", "theme.bar.menus.menu.volume.background.color": "#282a36", "theme.bar.menus.menu.volume.card.color": "#44475a", "theme.bar.menus.menu.media.slider.puck": "#282936", "theme.bar.menus.menu.media.slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.media.slider.background": "#6272a4", "theme.bar.menus.menu.media.slider.primary": "#ff79c6", "theme.bar.menus.menu.media.buttons.text": "#282a36", "theme.bar.menus.menu.media.buttons.background": "#bd93f9", "theme.bar.menus.menu.media.buttons.enabled": "#8be9fd", "theme.bar.menus.menu.media.buttons.inactive": "#44475a", "theme.bar.menus.menu.media.border.color": "#44475a", "theme.bar.menus.menu.media.card.color": "#44475a", "theme.bar.menus.menu.media.background.color": "#282a36", "theme.bar.menus.menu.media.album": "#ff79c6", "theme.bar.menus.menu.media.artist": "#8be9fd", "theme.bar.menus.menu.media.song": "#bd93f9", "theme.bar.menus.tooltip.text": "#f8f8f2", "theme.bar.menus.tooltip.background": "#282a36", "theme.bar.menus.dropdownmenu.divider": "#44475a", "theme.bar.menus.dropdownmenu.text": "#f8f8f2", "theme.bar.menus.dropdownmenu.background": "#282a36", "theme.bar.menus.slider.puck": "#44475a", "theme.bar.menus.slider.backgroundhover": "#44475a", "theme.bar.menus.slider.background": "#44475a", "theme.bar.menus.slider.primary": "#bd93f9", "theme.bar.menus.progressbar.background": "#44475a", "theme.bar.menus.progressbar.foreground": "#bd93f9", "theme.bar.menus.iconbuttons.active": "#bd93f9", "theme.bar.menus.iconbuttons.passive": "#f8f8f2", "theme.bar.menus.buttons.text": "#282a36", "theme.bar.menus.buttons.disabled": "#44475a", "theme.bar.menus.buttons.active": "#ff79c6", "theme.bar.menus.buttons.default": "#bd93f9", "theme.bar.menus.check_radio_button.active": "#bd93f9", "theme.bar.menus.check_radio_button.background": "#282936", "theme.bar.menus.switch.puck": "#44475a", "theme.bar.menus.switch.disabled": "#44475a", "theme.bar.menus.switch.enabled": "#bd93f9", "theme.bar.menus.icons.active": "#bd93f9", "theme.bar.menus.icons.passive": "#44475a", "theme.bar.menus.listitems.active": "#bd93f9", "theme.bar.menus.listitems.passive": "#f8f8f2", "theme.bar.menus.popover.border": "#282a36", "theme.bar.menus.popover.background": "#282a36", "theme.bar.menus.popover.text": "#bd93f9", "theme.bar.menus.label": "#bd93f9", "theme.bar.menus.feinttext": "#44475a", "theme.bar.menus.dimtext": "#6272a4", "theme.bar.menus.text": "#f8f8f2", "theme.bar.menus.border.color": "#44475a", "theme.bar.menus.cards": "#44475a", "theme.bar.menus.background": "#6272a4", "theme.bar.buttons.modules.power.icon_background": "#bd93f9", "theme.bar.buttons.modules.power.icon": "#ff5454", "theme.bar.buttons.modules.power.background": "#44475a", "theme.bar.buttons.modules.power.border": "#bd93f9", "theme.bar.buttons.modules.weather.icon_background": "#ffb86c", "theme.bar.buttons.modules.weather.icon": "#ffb86c", "theme.bar.buttons.modules.weather.text": "#ffb86c", "theme.bar.buttons.modules.weather.background": "#44475a", "theme.bar.buttons.modules.weather.border": "#ffb86c", "theme.bar.buttons.modules.updates.icon_background": "#bd93f9", "theme.bar.buttons.modules.updates.icon": "#bd93f9", "theme.bar.buttons.modules.updates.text": "#bd93f9", "theme.bar.buttons.modules.updates.background": "#44475a", "theme.bar.buttons.modules.updates.border": "#bd93f9", "theme.bar.buttons.modules.kbLayout.icon_background": "#8be9fd", "theme.bar.buttons.modules.kbLayout.icon": "#8be9fd", "theme.bar.buttons.modules.kbLayout.text": "#8be9fd", "theme.bar.buttons.modules.kbLayout.background": "#44475a", "theme.bar.buttons.modules.kbLayout.border": "#8be9fd", "theme.bar.buttons.modules.netstat.icon_background": "#50fa7b", "theme.bar.buttons.modules.netstat.icon": "#50fa7b", "theme.bar.buttons.modules.netstat.text": "#50fa7b", "theme.bar.buttons.modules.netstat.background": "#44475a", "theme.bar.buttons.modules.netstat.border": "#50fa7b", "theme.bar.buttons.modules.storage.icon_background": "#bd93f9", "theme.bar.buttons.modules.storage.icon": "#bd93f9", "theme.bar.buttons.modules.storage.text": "#bd93f9", "theme.bar.buttons.modules.storage.background": "#44475a", "theme.bar.buttons.modules.storage.border": "#bd93f9", "theme.bar.buttons.modules.cpu.icon_background": "#ff79c6", "theme.bar.buttons.modules.cpu.icon": "#ff79c6", "theme.bar.buttons.modules.cpu.text": "#ff79c6", "theme.bar.buttons.modules.cpu.background": "#44475a", "theme.bar.buttons.modules.cpu.border": "#ff79c6", "theme.bar.buttons.modules.ram.icon_background": "#f1fa8c", "theme.bar.buttons.modules.ram.icon": "#f1fa8c", "theme.bar.buttons.modules.ram.text": "#f1fa8c", "theme.bar.buttons.modules.ram.background": "#44475a", "theme.bar.buttons.modules.ram.border": "#f1fa8c", "theme.bar.buttons.notifications.total": "#bd93f9", "theme.bar.buttons.notifications.icon_background": "#bd93f9", "theme.bar.buttons.notifications.icon": "#bd93f9", "theme.bar.buttons.notifications.background": "#44475a", "theme.bar.buttons.notifications.border": "#bd93f9", "theme.bar.buttons.clock.icon_background": "#ff79c6", "theme.bar.buttons.clock.icon": "#ff79c6", "theme.bar.buttons.clock.text": "#ff79c6", "theme.bar.buttons.clock.background": "#44475a", "theme.bar.buttons.clock.border": "#ff79c6", "theme.bar.buttons.battery.icon_background": "#f1fa8c", "theme.bar.buttons.battery.icon": "#f1fa8c", "theme.bar.buttons.battery.text": "#f1fa8c", "theme.bar.buttons.battery.background": "#44475a", "theme.bar.buttons.battery.border": "#f1fa8c", "theme.bar.buttons.systray.background": "#44475a", "theme.bar.buttons.systray.border": "#6272a4", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.buttons.bluetooth.icon": "#8be9fd", "theme.bar.buttons.bluetooth.text": "#8be9fd", "theme.bar.buttons.bluetooth.background": "#44475a", "theme.bar.buttons.bluetooth.border": "#8be9fd", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.network.icon": "#bd93f9", "theme.bar.buttons.network.text": "#bd93f9", "theme.bar.buttons.network.background": "#44475a", "theme.bar.buttons.network.border": "#bd93f9", "theme.bar.buttons.volume.icon_background": "#ffb86c", "theme.bar.buttons.volume.icon": "#ffb86c", "theme.bar.buttons.volume.text": "#ffb86c", "theme.bar.buttons.volume.background": "#44475a", "theme.bar.buttons.volume.border": "#ffb86c", "theme.bar.buttons.media.icon_background": "#bd93f9", "theme.bar.buttons.media.icon": "#bd93f9", "theme.bar.buttons.media.text": "#bd93f9", "theme.bar.buttons.media.background": "#44475a", "theme.bar.buttons.media.border": "#bd93f9", "theme.bar.buttons.windowtitle.icon_background": "#ff79c6", "theme.bar.buttons.windowtitle.icon": "#f1fa8c", "theme.bar.buttons.windowtitle.text": "#f1fa8c", "theme.bar.buttons.windowtitle.border": "#f1fa8c", "theme.bar.buttons.windowtitle.background": "#44475a", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#e23ee2", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.hover": "#44475a", "theme.bar.buttons.workspaces.active": "#ff79c6", "theme.bar.buttons.workspaces.occupied": "#ffb86c", "theme.bar.buttons.workspaces.available": "#8be9fd", "theme.bar.buttons.workspaces.border": "#44475a", "theme.bar.buttons.workspaces.background": "#44475a", "theme.bar.buttons.dashboard.icon": "#8be8fd", "theme.bar.buttons.dashboard.border": "#8be8fd", "theme.bar.buttons.dashboard.background": "#44475a", "theme.bar.buttons.icon": "#bd93f9", "theme.bar.buttons.text": "#bd93f9", "theme.bar.buttons.hover": "#44475a", "theme.bar.buttons.icon_background": "#44475a", "theme.bar.buttons.background": "#282936", "theme.bar.buttons.style": "default", "theme.bar.background": "#282a36", "theme.osd.label": "#bd93f9", "theme.osd.icon": "#282a36", "theme.osd.bar_overflow_color": "#ff5555", "theme.osd.bar_empty_color": "#44475a", "theme.osd.bar_color": "#bd93f9", "theme.osd.icon_container": "#bd93f9", "theme.osd.bar_container": "#282a36", "theme.notification.close_button.label": "#282a36", "theme.notification.close_button.background": "#bd93f9", "theme.notification.labelicon": "#bd93f9", "theme.notification.text": "#f8f8f2", "theme.notification.time": "#6272a4", "theme.notification.border": "#44475a", "theme.notification.label": "#bd93f9", "theme.notification.actions.text": "#282a36", "theme.notification.actions.background": "#bd93f9", "theme.notification.background": "#282a36", "theme.bar.buttons.modules.submap.background": "#44475a", "theme.bar.buttons.modules.submap.text": "#8be9fd", "theme.bar.buttons.modules.submap.border": "#8be9fd", "theme.bar.buttons.modules.submap.icon": "#8be9fd", "theme.bar.buttons.modules.submap.icon_background": "#44475a" } ================================================ FILE: .config/ags/themes/dracula_split.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#bd93f9", "theme.bar.menus.menu.notifications.pager.label": "#6272a4", "theme.bar.menus.menu.notifications.pager.button": "#bd93f9", "theme.bar.menus.menu.notifications.pager.background": "#282936", "theme.bar.menus.menu.notifications.switch.puck": "#44475a", "theme.bar.menus.menu.notifications.switch.disabled": "#44475a", "theme.bar.menus.menu.notifications.switch.enabled": "#bd93f9", "theme.bar.menus.menu.notifications.clear": "#bd93f9", "theme.bar.menus.menu.notifications.switch_divider": "#44475a", "theme.bar.menus.menu.notifications.border": "#44475a", "theme.bar.menus.menu.notifications.card": "#44475a", "theme.bar.menus.menu.notifications.background": "#282a36", "theme.bar.menus.menu.notifications.no_notifications_label": "#44475a", "theme.bar.menus.menu.notifications.label": "#bd93f9", "theme.bar.menus.menu.power.buttons.sleep.icon": "#282a36", "theme.bar.menus.menu.power.buttons.sleep.text": "#8be9fd", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#8be9fd", "theme.bar.menus.menu.power.buttons.sleep.background": "#44475a", "theme.bar.menus.menu.power.buttons.logout.icon": "#282a36", "theme.bar.menus.menu.power.buttons.logout.text": "#50fa7b", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#50fa7b", "theme.bar.menus.menu.power.buttons.logout.background": "#44475a", "theme.bar.menus.menu.power.buttons.restart.icon": "#282a36", "theme.bar.menus.menu.power.buttons.restart.text": "#ffb86c", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#ffb86c", "theme.bar.menus.menu.power.buttons.restart.background": "#44475a", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#282a36", "theme.bar.menus.menu.power.buttons.shutdown.text": "#ff5454", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#ff5555", "theme.bar.menus.menu.power.buttons.shutdown.background": "#44475a", "theme.bar.menus.menu.power.border.color": "#44475a", "theme.bar.menus.menu.power.background.color": "#282936", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#ff79c6", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#ff79c6", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#ff79c6", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#50fa7b", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#50fa7b", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#50fa7b", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f1fa8c", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f1fa8c", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f1fa8c", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ffb86c", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ffb86c", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ffb86c", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#6272a4", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#ffb86c", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#bd93f9", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8be9fd", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ff5555", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f1fa8c", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#ff79c6", "theme.bar.menus.menu.dashboard.controls.input.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.input.background": "#ff79c6", "theme.bar.menus.menu.dashboard.controls.volume.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ffb86c", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f1fa8c", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#8be9fd", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#282a36", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#bd93f9", "theme.bar.menus.menu.dashboard.controls.disabled": "#44475a", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#50fa7b", "theme.bar.menus.menu.dashboard.shortcuts.text": "#282a36", "theme.bar.menus.menu.dashboard.shortcuts.background": "#bd93f9", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#282a36", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#ff5555", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#50fa7b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#f8f8f2", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#bd93f9", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#44475a", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#282a36", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#44475a", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#8be9fd", "theme.bar.menus.menu.dashboard.powermenu.logout": "#50fa7b", "theme.bar.menus.menu.dashboard.powermenu.restart": "#ffb86c", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#ff5555", "theme.bar.menus.menu.dashboard.profile.name": "#ff79c6", "theme.bar.menus.menu.dashboard.border.color": "#44475a", "theme.bar.menus.menu.dashboard.background.color": "#282a36", "theme.bar.menus.menu.dashboard.card.color": "#44475a", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#ff79c6", "theme.bar.menus.menu.clock.weather.hourly.icon": "#ff79c6", "theme.bar.menus.menu.clock.weather.hourly.time": "#ff79c6", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#8be9fd", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#8be9fd", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#bd93f9", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#ffb86c", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#ff5555", "theme.bar.menus.menu.clock.weather.stats": "#ff79c6", "theme.bar.menus.menu.clock.weather.status": "#8be9fd", "theme.bar.menus.menu.clock.weather.temperature": "#f8f8f2", "theme.bar.menus.menu.clock.weather.icon": "#ff79c6", "theme.bar.menus.menu.clock.calendar.contextdays": "#44475a", "theme.bar.menus.menu.clock.calendar.days": "#f8f8f2", "theme.bar.menus.menu.clock.calendar.currentday": "#ff79c6", "theme.bar.menus.menu.clock.calendar.paginator": "#ff79c6", "theme.bar.menus.menu.clock.calendar.weekdays": "#ff79c6", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8be9fd", "theme.bar.menus.menu.clock.time.timeperiod": "#8be9fd", "theme.bar.menus.menu.clock.time.time": "#ff79c6", "theme.bar.menus.menu.clock.text": "#f8f8f2", "theme.bar.menus.menu.clock.border.color": "#44475a", "theme.bar.menus.menu.clock.background.color": "#282a36", "theme.bar.menus.menu.clock.card.color": "#44475a", "theme.bar.menus.menu.battery.slider.puck": "#282936", "theme.bar.menus.menu.battery.slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.battery.slider.background": "#6272a4", "theme.bar.menus.menu.battery.slider.primary": "#f1fa8c", "theme.bar.menus.menu.battery.icons.active": "#f1fa8c", "theme.bar.menus.menu.battery.icons.passive": "#6272a4", "theme.bar.menus.menu.battery.listitems.active": "#f1fa8c", "theme.bar.menus.menu.battery.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.battery.text": "#f8f8f2", "theme.bar.menus.menu.battery.label.color": "#f1fa8c", "theme.bar.menus.menu.battery.border.color": "#44475a", "theme.bar.menus.menu.battery.background.color": "#282a36", "theme.bar.menus.menu.battery.card.color": "#44475a", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#44475a", "theme.bar.menus.menu.systray.dropdownmenu.text": "#f8f8f2", "theme.bar.menus.menu.systray.dropdownmenu.background": "#282a36", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#8be9fd", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#f8f8f2", "theme.bar.menus.menu.bluetooth.icons.active": "#8be9fd", "theme.bar.menus.menu.bluetooth.icons.passive": "#6272a4", "theme.bar.menus.menu.bluetooth.listitems.active": "#8be9fd", "theme.bar.menus.menu.bluetooth.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.bluetooth.switch.puck": "#44475a", "theme.bar.menus.menu.bluetooth.switch.disabled": "#44475a", "theme.bar.menus.menu.bluetooth.switch.enabled": "#8be9fd", "theme.bar.menus.menu.bluetooth.switch_divider": "#44475a", "theme.bar.menus.menu.bluetooth.status": "#44475a", "theme.bar.menus.menu.bluetooth.text": "#f8f8f2", "theme.bar.menus.menu.bluetooth.label.color": "#8be9fd", "theme.bar.menus.menu.bluetooth.border.color": "#44475a", "theme.bar.menus.menu.bluetooth.background.color": "#282a36", "theme.bar.menus.menu.bluetooth.card.color": "#44475a", "theme.bar.menus.menu.network.iconbuttons.active": "#bd93f9", "theme.bar.menus.menu.network.iconbuttons.passive": "#f8f8f2", "theme.bar.menus.menu.network.icons.active": "#bd93f9", "theme.bar.menus.menu.network.icons.passive": "#6272a4", "theme.bar.menus.menu.network.listitems.active": "#bd93f9", "theme.bar.menus.menu.network.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.network.status.color": "#44475a", "theme.bar.menus.menu.network.text": "#f8f8f2", "theme.bar.menus.menu.network.label.color": "#bd93f9", "theme.bar.menus.menu.network.border.color": "#44475a", "theme.bar.menus.menu.network.background.color": "#282a36", "theme.bar.menus.menu.network.card.color": "#44475a", "theme.bar.menus.menu.volume.input_slider.puck": "#282936", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.volume.input_slider.background": "#6272a4", "theme.bar.menus.menu.volume.input_slider.primary": "#ffb86c", "theme.bar.menus.menu.volume.audio_slider.puck": "#282936", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.volume.audio_slider.background": "#6272a4", "theme.bar.menus.menu.volume.audio_slider.primary": "#ffb86c", "theme.bar.menus.menu.volume.icons.active": "#ffb86c", "theme.bar.menus.menu.volume.icons.passive": "#6272a4", "theme.bar.menus.menu.volume.iconbutton.active": "#ffb86c", "theme.bar.menus.menu.volume.iconbutton.passive": "#f8f8f2", "theme.bar.menus.menu.volume.listitems.active": "#ffb86c", "theme.bar.menus.menu.volume.listitems.passive": "#f8f8f2", "theme.bar.menus.menu.volume.text": "#f8f8f2", "theme.bar.menus.menu.volume.label.color": "#ffb86c", "theme.bar.menus.menu.volume.border.color": "#44475a", "theme.bar.menus.menu.volume.background.color": "#282a36", "theme.bar.menus.menu.volume.card.color": "#44475a", "theme.bar.menus.menu.media.slider.puck": "#282936", "theme.bar.menus.menu.media.slider.backgroundhover": "#6272a4", "theme.bar.menus.menu.media.slider.background": "#6272a4", "theme.bar.menus.menu.media.slider.primary": "#ff79c6", "theme.bar.menus.menu.media.buttons.text": "#282a36", "theme.bar.menus.menu.media.buttons.background": "#bd93f9", "theme.bar.menus.menu.media.buttons.enabled": "#8be9fd", "theme.bar.menus.menu.media.buttons.inactive": "#44475a", "theme.bar.menus.menu.media.border.color": "#44475a", "theme.bar.menus.menu.media.card.color": "#44475a", "theme.bar.menus.menu.media.background.color": "#282a36", "theme.bar.menus.menu.media.album": "#ff79c6", "theme.bar.menus.menu.media.artist": "#8be9fd", "theme.bar.menus.menu.media.song": "#bd93f9", "theme.bar.menus.tooltip.text": "#f8f8f2", "theme.bar.menus.tooltip.background": "#282a36", "theme.bar.menus.dropdownmenu.divider": "#44475a", "theme.bar.menus.dropdownmenu.text": "#f8f8f2", "theme.bar.menus.dropdownmenu.background": "#282a36", "theme.bar.menus.slider.puck": "#44475a", "theme.bar.menus.slider.backgroundhover": "#44475a", "theme.bar.menus.slider.background": "#44475a", "theme.bar.menus.slider.primary": "#bd93f9", "theme.bar.menus.progressbar.background": "#44475a", "theme.bar.menus.progressbar.foreground": "#bd93f9", "theme.bar.menus.iconbuttons.active": "#bd93f9", "theme.bar.menus.iconbuttons.passive": "#f8f8f2", "theme.bar.menus.buttons.text": "#282a36", "theme.bar.menus.buttons.disabled": "#44475a", "theme.bar.menus.buttons.active": "#ff79c6", "theme.bar.menus.buttons.default": "#bd93f9", "theme.bar.menus.check_radio_button.active": "#bd93f9", "theme.bar.menus.check_radio_button.background": "#282936", "theme.bar.menus.switch.puck": "#44475a", "theme.bar.menus.switch.disabled": "#44475a", "theme.bar.menus.switch.enabled": "#bd93f9", "theme.bar.menus.icons.active": "#bd93f9", "theme.bar.menus.icons.passive": "#44475a", "theme.bar.menus.listitems.active": "#bd93f9", "theme.bar.menus.listitems.passive": "#f8f8f2", "theme.bar.menus.popover.border": "#282a36", "theme.bar.menus.popover.background": "#282a36", "theme.bar.menus.popover.text": "#bd93f9", "theme.bar.menus.label": "#bd93f9", "theme.bar.menus.feinttext": "#44475a", "theme.bar.menus.dimtext": "#6272a4", "theme.bar.menus.text": "#f8f8f2", "theme.bar.menus.border.color": "#44475a", "theme.bar.menus.cards": "#44475a", "theme.bar.menus.background": "#6272a4", "theme.bar.buttons.modules.power.icon_background": "#ff5454", "theme.bar.buttons.modules.power.icon": "#282936", "theme.bar.buttons.modules.power.background": "#44475a", "theme.bar.buttons.modules.power.border": "#bd93f9", "theme.bar.buttons.modules.weather.icon_background": "#ffb86c", "theme.bar.buttons.modules.weather.icon": "#282936", "theme.bar.buttons.modules.weather.text": "#ffb86c", "theme.bar.buttons.modules.weather.background": "#44475a", "theme.bar.buttons.modules.weather.border": "#ffb86c", "theme.bar.buttons.modules.updates.icon_background": "#bd93f9", "theme.bar.buttons.modules.updates.icon": "#282936", "theme.bar.buttons.modules.updates.text": "#bd93f9", "theme.bar.buttons.modules.updates.background": "#44475a", "theme.bar.buttons.modules.updates.border": "#bd93f9", "theme.bar.buttons.modules.kbLayout.icon_background": "#8be9fd", "theme.bar.buttons.modules.kbLayout.icon": "#282936", "theme.bar.buttons.modules.kbLayout.text": "#8be9fd", "theme.bar.buttons.modules.kbLayout.background": "#44475a", "theme.bar.buttons.modules.kbLayout.border": "#8be9fd", "theme.bar.buttons.modules.netstat.icon_background": "#50fa7b", "theme.bar.buttons.modules.netstat.icon": "#282936", "theme.bar.buttons.modules.netstat.text": "#50fa7b", "theme.bar.buttons.modules.netstat.background": "#44475a", "theme.bar.buttons.modules.netstat.border": "#50fa7b", "theme.bar.buttons.modules.storage.icon_background": "#bd93f9", "theme.bar.buttons.modules.storage.icon": "#282936", "theme.bar.buttons.modules.storage.text": "#bd93f9", "theme.bar.buttons.modules.storage.background": "#44475a", "theme.bar.buttons.modules.storage.border": "#bd93f9", "theme.bar.buttons.modules.cpu.icon_background": "#ff79c6", "theme.bar.buttons.modules.cpu.icon": "#282936", "theme.bar.buttons.modules.cpu.text": "#ff79c6", "theme.bar.buttons.modules.cpu.background": "#44475a", "theme.bar.buttons.modules.cpu.border": "#ff79c6", "theme.bar.buttons.modules.ram.icon_background": "#f1fa8c", "theme.bar.buttons.modules.ram.icon": "#282936", "theme.bar.buttons.modules.ram.text": "#f1fa8c", "theme.bar.buttons.modules.ram.background": "#44475a", "theme.bar.buttons.modules.ram.border": "#f1fa8c", "theme.bar.buttons.notifications.total": "#bd93f9", "theme.bar.buttons.notifications.icon_background": "#bd93f9", "theme.bar.buttons.notifications.icon": "#44475a", "theme.bar.buttons.notifications.background": "#44475a", "theme.bar.buttons.notifications.border": "#bd93f9", "theme.bar.buttons.clock.icon_background": "#ff79c6", "theme.bar.buttons.clock.icon": "#44475a", "theme.bar.buttons.clock.text": "#ff79c6", "theme.bar.buttons.clock.background": "#44475a", "theme.bar.buttons.clock.border": "#ff79c6", "theme.bar.buttons.battery.icon_background": "#f1fa8c", "theme.bar.buttons.battery.icon": "#44475a", "theme.bar.buttons.battery.text": "#f1fa8c", "theme.bar.buttons.battery.background": "#44475a", "theme.bar.buttons.battery.border": "#f1fa8c", "theme.bar.buttons.systray.background": "#44475a", "theme.bar.buttons.systray.border": "#6272a4", "theme.bar.buttons.bluetooth.icon_background": "#8be9fd", "theme.bar.buttons.bluetooth.icon": "#44475a", "theme.bar.buttons.bluetooth.text": "#8be9fd", "theme.bar.buttons.bluetooth.background": "#44475a", "theme.bar.buttons.bluetooth.border": "#8be9fd", "theme.bar.buttons.network.icon_background": "#bd93f9", "theme.bar.buttons.network.icon": "#44475a", "theme.bar.buttons.network.text": "#bd93f9", "theme.bar.buttons.network.background": "#44475a", "theme.bar.buttons.network.border": "#bd93f9", "theme.bar.buttons.volume.icon_background": "#ffb86c", "theme.bar.buttons.volume.icon": "#44475a", "theme.bar.buttons.volume.text": "#ffb86c", "theme.bar.buttons.volume.background": "#44475a", "theme.bar.buttons.volume.border": "#ffb86c", "theme.bar.buttons.media.icon_background": "#bd93f9", "theme.bar.buttons.media.icon": "#44475a", "theme.bar.buttons.media.text": "#bd93f9", "theme.bar.buttons.media.background": "#44475a", "theme.bar.buttons.media.border": "#bd93f9", "theme.bar.buttons.windowtitle.icon_background": "#f1fa8c", "theme.bar.buttons.windowtitle.icon": "#44475a", "theme.bar.buttons.windowtitle.text": "#f1fa8c", "theme.bar.buttons.windowtitle.border": "#f1fa8c", "theme.bar.buttons.windowtitle.background": "#44475a", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ff79c6", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#ff79c6", "theme.bar.buttons.workspaces.hover": "#ff79c6", "theme.bar.buttons.workspaces.active": "#ff79c6", "theme.bar.buttons.workspaces.occupied": "#ffb86c", "theme.bar.buttons.workspaces.available": "#8be9fd", "theme.bar.buttons.workspaces.border": "#44475a", "theme.bar.buttons.workspaces.background": "#44475a", "theme.bar.buttons.dashboard.icon": "#44475a", "theme.bar.buttons.dashboard.border": "#8be8fd", "theme.bar.buttons.dashboard.background": "#8be8fd", "theme.bar.buttons.icon": "#bd93f9", "theme.bar.buttons.text": "#bd93f9", "theme.bar.buttons.hover": "#44475a", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.background": "#282936", "theme.bar.buttons.style": "split", "theme.bar.background": "#282a36", "theme.osd.label": "#bd93f9", "theme.osd.icon": "#282a36", "theme.osd.bar_overflow_color": "#ff5555", "theme.osd.bar_empty_color": "#44475a", "theme.osd.bar_color": "#bd93f9", "theme.osd.icon_container": "#bd93f9", "theme.osd.bar_container": "#282a36", "theme.notification.close_button.label": "#282a36", "theme.notification.close_button.background": "#bd93f9", "theme.notification.labelicon": "#bd93f9", "theme.notification.text": "#f8f8f2", "theme.notification.time": "#6272a4", "theme.notification.border": "#44475a", "theme.notification.label": "#bd93f9", "theme.notification.actions.text": "#282a36", "theme.notification.actions.background": "#bd93f9", "theme.notification.background": "#44475a", "theme.bar.buttons.modules.submap.background": "#44475a", "theme.bar.buttons.modules.submap.text": "#8be9fd", "theme.bar.buttons.modules.submap.border": "#8be9fd", "theme.bar.buttons.modules.submap.icon": "#282936", "theme.bar.buttons.modules.submap.icon_background": "#8be9fd" } ================================================ FILE: .config/ags/themes/everforest.json ================================================ { "theme.bar.menus.background": "#2b3339", "theme.bar.background": "#2b3339", "theme.bar.buttons.media.icon": "#a7c080", "theme.bar.buttons.media.text": "#a7c080", "theme.bar.buttons.icon": "#a7c080", "theme.bar.buttons.text": "#a7c080", "theme.bar.buttons.hover": "#445055", "theme.bar.buttons.background": "#323d43", "theme.bar.menus.text": "#d3c6aa", "theme.bar.menus.border.color": "#454b53", "theme.bar.buttons.media.background": "#323d43", "theme.bar.menus.menu.volume.text": "#d3c6aa", "theme.bar.menus.menu.volume.card.color": "#2f383e", "theme.bar.menus.menu.volume.label.color": "#e67e80", "theme.bar.menus.popover.text": "#a7c080", "theme.bar.menus.popover.background": "#3a4248", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#e67e80", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#e67e80", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#2b3339", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#d3c6aa", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#454b53", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#2b3339", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#2f383e", "theme.bar.menus.menu.notifications.switch.puck": "#445055", "theme.bar.menus.menu.notifications.switch.disabled": "#454b54", "theme.bar.menus.menu.notifications.switch.enabled": "#a7c080", "theme.bar.menus.menu.notifications.clear": "#e67e80", "theme.bar.menus.menu.notifications.switch_divider": "#445055", "theme.bar.menus.menu.notifications.border": "#454b53", "theme.bar.menus.menu.notifications.card": "#2f383e", "theme.bar.menus.menu.notifications.background": "#2b3339", "theme.bar.menus.menu.notifications.no_notifications_label": "#454b53", "theme.bar.menus.menu.notifications.label": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#d699b6", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#d699b6", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#d699b6", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#dbbc7f", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#dbbc7f", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#dbbc7f", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#e67e80", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#e67e80", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#e67e80", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#445055", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#a7c080", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#83c092", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#a7c080", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#e67e80", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#dbbc7f", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#d699b6", "theme.bar.menus.menu.dashboard.controls.input.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.input.background": "#d699b6", "theme.bar.menus.menu.dashboard.controls.volume.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.volume.background": "#e67e80", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#dbbc7f", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#83c092", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#83c092", "theme.bar.menus.menu.dashboard.controls.disabled": "#5c6a72", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a7c080", "theme.bar.menus.menu.dashboard.shortcuts.text": "#3a4248", "theme.bar.menus.menu.dashboard.shortcuts.background": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#83c092", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.restart": "#dbbc7f", "theme.bar.menus.menu.dashboard.profile.name": "#d699b6", "theme.bar.menus.menu.dashboard.border.color": "#454b53", "theme.bar.menus.menu.dashboard.background.color": "#2b3339", "theme.bar.menus.menu.dashboard.card.color": "#2f383e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#d699b6", "theme.bar.menus.menu.clock.weather.hourly.icon": "#d699b6", "theme.bar.menus.menu.clock.weather.hourly.time": "#d699b6", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#83c092", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#83c092", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#a7c080", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#dbbc7f", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#e67e80", "theme.bar.menus.menu.clock.weather.stats": "#d699b6", "theme.bar.menus.menu.clock.weather.status": "#83c092", "theme.bar.menus.menu.clock.weather.temperature": "#d3c6aa", "theme.bar.menus.menu.clock.weather.icon": "#d699b6", "theme.bar.menus.menu.clock.calendar.contextdays": "#5c6a72", "theme.bar.menus.menu.clock.calendar.days": "#d3c6aa", "theme.bar.menus.menu.clock.calendar.currentday": "#d699b6", "theme.bar.menus.menu.clock.calendar.paginator": "#d699b6", "theme.bar.menus.menu.clock.calendar.weekdays": "#d699b6", "theme.bar.menus.menu.clock.calendar.yearmonth": "#83c092", "theme.bar.menus.menu.clock.time.timeperiod": "#83c092", "theme.bar.menus.menu.clock.time.time": "#d699b6", "theme.bar.menus.menu.clock.text": "#d3c6aa", "theme.bar.menus.menu.clock.border.color": "#454b53", "theme.bar.menus.menu.clock.background.color": "#2b3339", "theme.bar.menus.menu.clock.card.color": "#2f383e", "theme.bar.menus.menu.battery.slider.puck": "#445055", "theme.bar.menus.menu.battery.slider.backgroundhover": "#445055", "theme.bar.menus.menu.battery.slider.background": "#5c6a72", "theme.bar.menus.menu.battery.slider.primary": "#dbbc7f", "theme.bar.menus.menu.battery.icons.active": "#dbbc7f", "theme.bar.menus.menu.battery.icons.passive": "#7a8478", "theme.bar.menus.menu.battery.listitems.active": "#dbbc7f", "theme.bar.menus.menu.battery.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.battery.text": "#d3c6aa", "theme.bar.menus.menu.battery.label.color": "#dbbc7f", "theme.bar.menus.menu.battery.border.color": "#454b53", "theme.bar.menus.menu.battery.background.color": "#2b3339", "theme.bar.menus.menu.battery.card.color": "#2f383e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#2f383e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#d3c6aa", "theme.bar.menus.menu.systray.dropdownmenu.background": "#2b3339", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#a7c080", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#d3c6aa", "theme.bar.menus.menu.bluetooth.icons.active": "#a7c080", "theme.bar.menus.menu.bluetooth.icons.passive": "#868d80", "theme.bar.menus.menu.bluetooth.listitems.active": "#a7c07f", "theme.bar.menus.menu.bluetooth.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.bluetooth.switch.puck": "#454b53", "theme.bar.menus.menu.bluetooth.switch.disabled": "#2f383e", "theme.bar.menus.menu.bluetooth.switch.enabled": "#a7c080", "theme.bar.menus.menu.bluetooth.switch_divider": "#454b53", "theme.bar.menus.menu.bluetooth.status": "#868d80", "theme.bar.menus.menu.bluetooth.text": "#d3c6aa", "theme.bar.menus.menu.bluetooth.label.color": "#a7c080", "theme.bar.menus.menu.bluetooth.border.color": "#2f383e", "theme.bar.menus.menu.bluetooth.background.color": "#2b3339", "theme.bar.menus.menu.bluetooth.card.color": "#2f383e", "theme.bar.menus.menu.network.iconbuttons.active": "#e69875", "theme.bar.menus.menu.network.iconbuttons.passive": "#d3c6aa", "theme.bar.menus.menu.network.icons.active": "#e69875", "theme.bar.menus.menu.network.icons.passive": "#868d80", "theme.bar.menus.menu.network.listitems.active": "#e69874", "theme.bar.menus.menu.network.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.network.status.color": "#868d80", "theme.bar.menus.menu.network.text": "#d3c6aa", "theme.bar.menus.menu.network.label.color": "#e69875", "theme.bar.menus.menu.network.border.color": "#2f383e", "theme.bar.menus.menu.network.background.color": "#2b3339", "theme.bar.menus.menu.network.card.color": "#2f383e", "theme.bar.menus.menu.volume.input_slider.puck": "#83c092", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#454b53", "theme.bar.menus.menu.volume.input_slider.background": "#83c093", "theme.bar.menus.menu.volume.input_slider.primary": "#dbbc7f", "theme.bar.menus.menu.volume.audio_slider.puck": "#83c092", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#454b53", "theme.bar.menus.menu.volume.audio_slider.background": "#83c093", "theme.bar.menus.menu.volume.audio_slider.primary": "#dbbc7f", "theme.bar.menus.menu.volume.icons.active": "#dbbc7f", "theme.bar.menus.menu.volume.icons.passive": "#868d80", "theme.bar.menus.menu.volume.iconbutton.active": "#dbbc7f", "theme.bar.menus.menu.volume.iconbutton.passive": "#d3c6aa", "theme.bar.menus.menu.volume.listitems.active": "#dbbc7e", "theme.bar.menus.menu.volume.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.volume.border.color": "#2f383e", "theme.bar.menus.menu.volume.background.color": "#2b3339", "theme.bar.menus.menu.media.slider.puck": "#868d80", "theme.bar.menus.menu.media.slider.backgroundhover": "#454b53", "theme.bar.menus.menu.media.slider.background": "#83c093", "theme.bar.menus.menu.media.slider.primary": "#a7c080", "theme.bar.menus.menu.media.buttons.text": "#2b3339", "theme.bar.menus.menu.media.buttons.background": "#83c092", "theme.bar.menus.menu.media.buttons.enabled": "#a7c080", "theme.bar.menus.menu.media.buttons.inactive": "#83c092", "theme.bar.menus.menu.media.border.color": "#2f383e", "theme.bar.menus.menu.media.background.color": "#2b3339", "theme.bar.menus.menu.media.album": "#a7c080", "theme.bar.menus.menu.media.artist": "#a7c080", "theme.bar.menus.menu.media.song": "#83c092", "theme.bar.menus.tooltip.text": "#d3c6aa", "theme.bar.menus.tooltip.background": "#2b3339", "theme.bar.menus.dropdownmenu.divider": "#2f383e", "theme.bar.menus.dropdownmenu.text": "#d3c6aa", "theme.bar.menus.dropdownmenu.background": "#2b3339", "theme.bar.menus.slider.puck": "#868d80", "theme.bar.menus.slider.backgroundhover": "#454b53", "theme.bar.menus.slider.background": "#83c093", "theme.bar.menus.slider.primary": "#83c092", "theme.bar.menus.progressbar.background": "#454b53", "theme.bar.menus.progressbar.foreground": "#83c092", "theme.bar.menus.iconbuttons.active": "#83c092", "theme.bar.menus.iconbuttons.passive": "#d3c6aa", "theme.bar.menus.buttons.text": "#2b3339", "theme.bar.menus.buttons.disabled": "#83c093", "theme.bar.menus.buttons.active": "#a7c080", "theme.bar.menus.buttons.default": "#83c092", "theme.bar.menus.switch.puck": "#454b53", "theme.bar.menus.switch.disabled": "#2f383e", "theme.bar.menus.switch.enabled": "#83c092", "theme.bar.menus.icons.active": "#83c092", "theme.bar.menus.icons.passive": "#83c092", "theme.bar.menus.listitems.active": "#83c091", "theme.bar.menus.listitems.passive": "#d3c6aa", "theme.bar.menus.label": "#83c092", "theme.bar.menus.feinttext": "#2f383e", "theme.bar.menus.dimtext": "#83c092", "theme.bar.menus.cards": "#2f383e", "theme.bar.buttons.notifications.total": "#83c092", "theme.bar.buttons.notifications.icon": "#83c092", "theme.bar.buttons.notifications.background": "#323d43", "theme.bar.buttons.clock.icon": "#dbbc7f", "theme.bar.buttons.clock.text": "#dbbc7f", "theme.bar.buttons.clock.background": "#323d43", "theme.bar.buttons.battery.icon": "#e69875", "theme.bar.buttons.battery.text": "#e69875", "theme.bar.buttons.battery.background": "#323d43", "theme.bar.buttons.systray.background": "#323d43", "theme.bar.buttons.bluetooth.icon": "#a7c080", "theme.bar.buttons.bluetooth.text": "#a7c080", "theme.bar.buttons.bluetooth.background": "#323d43", "theme.bar.buttons.network.icon": "#e69875", "theme.bar.buttons.network.text": "#e69875", "theme.bar.buttons.network.background": "#323d43", "theme.bar.buttons.volume.icon": "#dbbc7f", "theme.bar.buttons.volume.text": "#dbbc7f", "theme.bar.buttons.volume.background": "#323d43", "theme.bar.buttons.windowtitle.icon": "#dbbc7f", "theme.bar.buttons.windowtitle.text": "#dbbc7f", "theme.bar.buttons.windowtitle.background": "#323d43", "theme.bar.buttons.workspaces.active": "#dbbc7f", "theme.bar.buttons.workspaces.occupied": "#e69875", "theme.bar.buttons.workspaces.available": "#a7c080", "theme.bar.buttons.workspaces.hover": "#454b53", "theme.bar.buttons.workspaces.background": "#323d43", "theme.bar.buttons.dashboard.icon": "#e69875", "theme.bar.buttons.dashboard.background": "#323d43", "theme.osd.label": "#d3c6aa", "theme.osd.icon": "#2b3339", "theme.osd.bar_overflow_color": "#e67e80", "theme.osd.bar_empty_color": "#504945", "theme.osd.bar_color": "#d3c6aa", "theme.osd.icon_container": "#d3c6aa", "theme.osd.bar_container": "#2b3339", "theme.notification.close_button.label": "#2b3339", "theme.notification.close_button.background": "#e67e80", "theme.notification.labelicon": "#d3c6aa", "theme.notification.text": "#d8caac", "theme.notification.time": "#a89984", "theme.notification.border": "#323d43", "theme.notification.label": "#d3c6aa", "theme.notification.actions.text": "#2b3339", "theme.notification.actions.background": "#a7c080", "theme.notification.background": "#2b3239", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.menus.menu.media.card.color": "#2f383e", "theme.bar.menus.check_radio_button.background": "#000000", "theme.bar.menus.check_radio_button.active": "#ffffff", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#a7c080", "theme.bar.menus.menu.notifications.scrollbar.color": "#a7c080", "theme.bar.menus.menu.notifications.pager.label": "#7a8478", "theme.bar.menus.menu.notifications.pager.background": "#2b3339", "theme.bar.buttons.clock.icon_background": "#d699b6", "theme.bar.buttons.modules.ram.icon": "#dbbc7f", "theme.bar.buttons.modules.storage.icon_background": "#e67e80", "theme.bar.menus.popover.border": "#3a4248", "theme.bar.buttons.volume.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#83c092", "theme.bar.menus.menu.power.buttons.restart.text": "#dbbc7f", "theme.bar.buttons.modules.updates.background": "#323d43", "theme.bar.buttons.modules.storage.icon": "#e67e80", "theme.bar.buttons.modules.netstat.background": "#323d43", "theme.bar.buttons.modules.weather.icon": "#a7c080", "theme.bar.buttons.modules.netstat.text": "#a7c080", "theme.bar.buttons.modules.storage.background": "#323d43", "theme.bar.buttons.modules.power.icon": "#e67e80", "theme.bar.buttons.modules.storage.text": "#e67e80", "theme.bar.buttons.modules.cpu.background": "#323d43", "theme.bar.menus.menu.power.border.color": "#454b53", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.logout.icon": "#3a4248", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#dbbc7f", "theme.bar.menus.menu.power.buttons.restart.icon": "#3a4248", "theme.bar.buttons.modules.cpu.icon": "#e67e80", "theme.bar.buttons.battery.icon_background": "#dbbc7f", "theme.bar.buttons.modules.kbLayout.icon_background": "#83c092", "theme.bar.buttons.modules.weather.text": "#a7c080", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#3a4248", "theme.bar.menus.menu.power.buttons.sleep.text": "#83c092", "theme.bar.buttons.modules.weather.icon_background": "#a7c080", "theme.bar.menus.menu.power.buttons.shutdown.background": "#2f383e", "theme.bar.buttons.media.icon_background": "#a7c080", "theme.bar.menus.menu.power.buttons.logout.background": "#2f383e", "theme.bar.buttons.modules.kbLayout.icon": "#83c092", "theme.bar.buttons.modules.ram.icon_background": "#dbbc7f", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.shutdown.text": "#e67e80", "theme.bar.menus.menu.power.buttons.sleep.background": "#2f383e", "theme.bar.buttons.modules.ram.text": "#dbbc7f", "theme.bar.menus.menu.power.buttons.logout.text": "#a7c080", "theme.bar.buttons.modules.updates.icon_background": "#83c092", "theme.bar.buttons.modules.kbLayout.background": "#323d43", "theme.bar.buttons.modules.power.background": "#323d43", "theme.bar.buttons.modules.weather.background": "#323d43", "theme.bar.buttons.icon_background": "#323d43", "theme.bar.menus.menu.power.background.color": "#2b3339", "theme.bar.buttons.modules.ram.background": "#323d43", "theme.bar.buttons.modules.netstat.icon": "#a7c080", "theme.bar.buttons.windowtitle.icon_background": "#d699b6", "theme.bar.buttons.modules.cpu.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a7c080", "theme.bar.buttons.modules.updates.text": "#83c092", "theme.bar.menus.menu.power.buttons.sleep.icon": "#3a4248", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#2f383e", "theme.bar.buttons.modules.updates.icon": "#83c092", "theme.bar.buttons.modules.cpu.text": "#e67e80", "theme.bar.buttons.modules.netstat.icon_background": "#a7c080", "theme.bar.buttons.modules.kbLayout.text": "#83c092", "theme.bar.buttons.notifications.icon_background": "#a7c080", "theme.bar.buttons.modules.power.border": "#e67e80", "theme.bar.buttons.modules.weather.border": "#a7c080", "theme.bar.buttons.modules.updates.border": "#83c092", "theme.bar.buttons.modules.kbLayout.border": "#83c092", "theme.bar.buttons.modules.netstat.border": "#a7c080", "theme.bar.buttons.modules.storage.border": "#e67e80", "theme.bar.buttons.modules.cpu.border": "#e67e80", "theme.bar.buttons.modules.ram.border": "#dbbc7f", "theme.bar.buttons.notifications.border": "#83c092", "theme.bar.buttons.clock.border": "#dbbc7f", "theme.bar.buttons.battery.border": "#e69875", "theme.bar.buttons.systray.border": "#454b53", "theme.bar.buttons.bluetooth.border": "#a7c080", "theme.bar.buttons.network.border": "#e69875", "theme.bar.buttons.volume.border": "#dbbc7f", "theme.bar.buttons.media.border": "#a7c080", "theme.bar.buttons.windowtitle.border": "#dbbc7f", "theme.bar.buttons.workspaces.border": "#2b3339", "theme.bar.buttons.dashboard.border": "#e69875", "theme.bar.buttons.modules.submap.background": "#323d43", "theme.bar.buttons.modules.submap.text": "#83c092", "theme.bar.buttons.modules.submap.border": "#83c092", "theme.bar.buttons.modules.submap.icon": "#83c092", "theme.bar.buttons.modules.submap.icon_background": "#323d43" } ================================================ FILE: .config/ags/themes/everforest_split.json ================================================ { "theme.bar.menus.background": "#2b3339", "theme.bar.background": "#2b3339", "theme.bar.buttons.media.icon": "#323d43", "theme.bar.buttons.media.text": "#a7c080", "theme.bar.buttons.icon": "#a7c080", "theme.bar.buttons.text": "#a7c080", "theme.bar.buttons.hover": "#445055", "theme.bar.buttons.background": "#323d43", "theme.bar.menus.text": "#d3c6aa", "theme.bar.menus.border.color": "#454b53", "theme.bar.buttons.media.background": "#323d43", "theme.bar.menus.menu.volume.text": "#d3c6aa", "theme.bar.menus.menu.volume.card.color": "#2f383e", "theme.bar.menus.menu.volume.label.color": "#e67e80", "theme.bar.menus.popover.text": "#a7c080", "theme.bar.menus.popover.background": "#3a4248", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#e67e80", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#e67e80", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#2b3339", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#d3c6aa", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#454b53", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#2b3339", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#2f383e", "theme.bar.menus.menu.notifications.switch.puck": "#445055", "theme.bar.menus.menu.notifications.switch.disabled": "#454b54", "theme.bar.menus.menu.notifications.switch.enabled": "#a7c080", "theme.bar.menus.menu.notifications.clear": "#e67e80", "theme.bar.menus.menu.notifications.switch_divider": "#445055", "theme.bar.menus.menu.notifications.border": "#454b53", "theme.bar.menus.menu.notifications.card": "#2f383e", "theme.bar.menus.menu.notifications.background": "#2b3339", "theme.bar.menus.menu.notifications.no_notifications_label": "#454b53", "theme.bar.menus.menu.notifications.label": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#d699b6", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#d699b6", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#d699b6", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#a7c080", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#dbbc7f", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#dbbc7f", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#dbbc7f", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#e67e80", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#e67e80", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#e67e80", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#445055", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#a7c080", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#83c092", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#a7c080", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#e67e80", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#dbbc7f", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#d699b6", "theme.bar.menus.menu.dashboard.controls.input.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.input.background": "#d699b6", "theme.bar.menus.menu.dashboard.controls.volume.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.volume.background": "#e67e80", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#dbbc7f", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#83c092", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#3a4248", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#83c092", "theme.bar.menus.menu.dashboard.controls.disabled": "#5c6a72", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#a7c080", "theme.bar.menus.menu.dashboard.shortcuts.text": "#3a4248", "theme.bar.menus.menu.dashboard.shortcuts.background": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#83c092", "theme.bar.menus.menu.dashboard.powermenu.logout": "#a7c080", "theme.bar.menus.menu.dashboard.powermenu.restart": "#dbbc7f", "theme.bar.menus.menu.dashboard.profile.name": "#d699b6", "theme.bar.menus.menu.dashboard.border.color": "#454b53", "theme.bar.menus.menu.dashboard.background.color": "#2b3339", "theme.bar.menus.menu.dashboard.card.color": "#2f383e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#d699b6", "theme.bar.menus.menu.clock.weather.hourly.icon": "#d699b6", "theme.bar.menus.menu.clock.weather.hourly.time": "#d699b6", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#83c092", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#83c092", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#a7c080", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#dbbc7f", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#e67e80", "theme.bar.menus.menu.clock.weather.stats": "#d699b6", "theme.bar.menus.menu.clock.weather.status": "#83c092", "theme.bar.menus.menu.clock.weather.temperature": "#d3c6aa", "theme.bar.menus.menu.clock.weather.icon": "#d699b6", "theme.bar.menus.menu.clock.calendar.contextdays": "#5c6a72", "theme.bar.menus.menu.clock.calendar.days": "#d3c6aa", "theme.bar.menus.menu.clock.calendar.currentday": "#d699b6", "theme.bar.menus.menu.clock.calendar.paginator": "#d699b6", "theme.bar.menus.menu.clock.calendar.weekdays": "#d699b6", "theme.bar.menus.menu.clock.calendar.yearmonth": "#83c092", "theme.bar.menus.menu.clock.time.timeperiod": "#83c092", "theme.bar.menus.menu.clock.time.time": "#d699b6", "theme.bar.menus.menu.clock.text": "#d3c6aa", "theme.bar.menus.menu.clock.border.color": "#454b53", "theme.bar.menus.menu.clock.background.color": "#2b3339", "theme.bar.menus.menu.clock.card.color": "#2f383e", "theme.bar.menus.menu.battery.slider.puck": "#445055", "theme.bar.menus.menu.battery.slider.backgroundhover": "#445055", "theme.bar.menus.menu.battery.slider.background": "#5c6a72", "theme.bar.menus.menu.battery.slider.primary": "#dbbc7f", "theme.bar.menus.menu.battery.icons.active": "#dbbc7f", "theme.bar.menus.menu.battery.icons.passive": "#7a8478", "theme.bar.menus.menu.battery.listitems.active": "#dbbc7f", "theme.bar.menus.menu.battery.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.battery.text": "#d3c6aa", "theme.bar.menus.menu.battery.label.color": "#dbbc7f", "theme.bar.menus.menu.battery.border.color": "#454b53", "theme.bar.menus.menu.battery.background.color": "#2b3339", "theme.bar.menus.menu.battery.card.color": "#2f383e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#2f383e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#d3c6aa", "theme.bar.menus.menu.systray.dropdownmenu.background": "#2b3339", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#a7c080", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#d3c6aa", "theme.bar.menus.menu.bluetooth.icons.active": "#a7c080", "theme.bar.menus.menu.bluetooth.icons.passive": "#868d80", "theme.bar.menus.menu.bluetooth.listitems.active": "#a7c07f", "theme.bar.menus.menu.bluetooth.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.bluetooth.switch.puck": "#454b53", "theme.bar.menus.menu.bluetooth.switch.disabled": "#2f383e", "theme.bar.menus.menu.bluetooth.switch.enabled": "#a7c080", "theme.bar.menus.menu.bluetooth.switch_divider": "#454b53", "theme.bar.menus.menu.bluetooth.status": "#868d80", "theme.bar.menus.menu.bluetooth.text": "#d3c6aa", "theme.bar.menus.menu.bluetooth.label.color": "#a7c080", "theme.bar.menus.menu.bluetooth.border.color": "#2f383e", "theme.bar.menus.menu.bluetooth.background.color": "#2b3339", "theme.bar.menus.menu.bluetooth.card.color": "#2f383e", "theme.bar.menus.menu.network.iconbuttons.active": "#e69875", "theme.bar.menus.menu.network.iconbuttons.passive": "#d3c6aa", "theme.bar.menus.menu.network.icons.active": "#e69875", "theme.bar.menus.menu.network.icons.passive": "#868d80", "theme.bar.menus.menu.network.listitems.active": "#e69874", "theme.bar.menus.menu.network.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.network.status.color": "#868d80", "theme.bar.menus.menu.network.text": "#d3c6aa", "theme.bar.menus.menu.network.label.color": "#e69875", "theme.bar.menus.menu.network.border.color": "#2f383e", "theme.bar.menus.menu.network.background.color": "#2b3339", "theme.bar.menus.menu.network.card.color": "#2f383e", "theme.bar.menus.menu.volume.input_slider.puck": "#83c092", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#454b53", "theme.bar.menus.menu.volume.input_slider.background": "#83c093", "theme.bar.menus.menu.volume.input_slider.primary": "#dbbc7f", "theme.bar.menus.menu.volume.audio_slider.puck": "#83c092", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#454b53", "theme.bar.menus.menu.volume.audio_slider.background": "#83c093", "theme.bar.menus.menu.volume.audio_slider.primary": "#dbbc7f", "theme.bar.menus.menu.volume.icons.active": "#dbbc7f", "theme.bar.menus.menu.volume.icons.passive": "#868d80", "theme.bar.menus.menu.volume.iconbutton.active": "#dbbc7f", "theme.bar.menus.menu.volume.iconbutton.passive": "#d3c6aa", "theme.bar.menus.menu.volume.listitems.active": "#dbbc7e", "theme.bar.menus.menu.volume.listitems.passive": "#d3c6aa", "theme.bar.menus.menu.volume.border.color": "#2f383e", "theme.bar.menus.menu.volume.background.color": "#2b3339", "theme.bar.menus.menu.media.slider.puck": "#868d80", "theme.bar.menus.menu.media.slider.backgroundhover": "#454b53", "theme.bar.menus.menu.media.slider.background": "#83c093", "theme.bar.menus.menu.media.slider.primary": "#a7c080", "theme.bar.menus.menu.media.buttons.text": "#2b3339", "theme.bar.menus.menu.media.buttons.background": "#83c092", "theme.bar.menus.menu.media.buttons.enabled": "#a7c080", "theme.bar.menus.menu.media.buttons.inactive": "#83c092", "theme.bar.menus.menu.media.border.color": "#2f383e", "theme.bar.menus.menu.media.background.color": "#2b3339", "theme.bar.menus.menu.media.album": "#a7c080", "theme.bar.menus.menu.media.artist": "#a7c080", "theme.bar.menus.menu.media.song": "#83c092", "theme.bar.menus.tooltip.text": "#d3c6aa", "theme.bar.menus.tooltip.background": "#2b3339", "theme.bar.menus.dropdownmenu.divider": "#2f383e", "theme.bar.menus.dropdownmenu.text": "#d3c6aa", "theme.bar.menus.dropdownmenu.background": "#2b3339", "theme.bar.menus.slider.puck": "#868d80", "theme.bar.menus.slider.backgroundhover": "#454b53", "theme.bar.menus.slider.background": "#83c093", "theme.bar.menus.slider.primary": "#83c092", "theme.bar.menus.progressbar.background": "#454b53", "theme.bar.menus.progressbar.foreground": "#83c092", "theme.bar.menus.iconbuttons.active": "#83c092", "theme.bar.menus.iconbuttons.passive": "#d3c6aa", "theme.bar.menus.buttons.text": "#2b3339", "theme.bar.menus.buttons.disabled": "#83c093", "theme.bar.menus.buttons.active": "#a7c080", "theme.bar.menus.buttons.default": "#83c092", "theme.bar.menus.switch.puck": "#454b53", "theme.bar.menus.switch.disabled": "#2f383e", "theme.bar.menus.switch.enabled": "#83c092", "theme.bar.menus.icons.active": "#83c092", "theme.bar.menus.icons.passive": "#83c092", "theme.bar.menus.listitems.active": "#83c091", "theme.bar.menus.listitems.passive": "#d3c6aa", "theme.bar.menus.label": "#83c092", "theme.bar.menus.feinttext": "#2f383e", "theme.bar.menus.dimtext": "#83c092", "theme.bar.menus.cards": "#2f383e", "theme.bar.buttons.notifications.total": "#83c092", "theme.bar.buttons.notifications.icon": "#323d43", "theme.bar.buttons.notifications.background": "#323d43", "theme.bar.buttons.clock.icon": "#323d43", "theme.bar.buttons.clock.text": "#dbbc7f", "theme.bar.buttons.clock.background": "#323d43", "theme.bar.buttons.battery.icon": "#323d43", "theme.bar.buttons.battery.text": "#e69875", "theme.bar.buttons.battery.background": "#323d43", "theme.bar.buttons.systray.background": "#323d43", "theme.bar.buttons.bluetooth.icon": "#323d43", "theme.bar.buttons.bluetooth.text": "#a7c080", "theme.bar.buttons.bluetooth.background": "#323d43", "theme.bar.buttons.network.icon": "#323d43", "theme.bar.buttons.network.text": "#e69875", "theme.bar.buttons.network.background": "#323d43", "theme.bar.buttons.volume.icon": "#323d43", "theme.bar.buttons.volume.text": "#dbbc7f", "theme.bar.buttons.volume.background": "#323d43", "theme.bar.buttons.windowtitle.icon": "#323d43", "theme.bar.buttons.windowtitle.text": "#dbbc7f", "theme.bar.buttons.windowtitle.background": "#323d43", "theme.bar.buttons.workspaces.active": "#dbbc7f", "theme.bar.buttons.workspaces.occupied": "#e69875", "theme.bar.buttons.workspaces.available": "#a7c080", "theme.bar.buttons.workspaces.hover": "#dbbc7f", "theme.bar.buttons.workspaces.background": "#323d43", "theme.bar.buttons.dashboard.icon": "#323d43", "theme.bar.buttons.dashboard.background": "#e69875", "theme.osd.label": "#d3c6aa", "theme.osd.icon": "#2b3339", "theme.osd.bar_overflow_color": "#e67e80", "theme.osd.bar_empty_color": "#504945", "theme.osd.bar_color": "#d3c6aa", "theme.osd.icon_container": "#d3c6aa", "theme.osd.bar_container": "#2b3339", "theme.notification.close_button.label": "#2b3339", "theme.notification.close_button.background": "#e67e80", "theme.notification.labelicon": "#d3c6aa", "theme.notification.text": "#d8caac", "theme.notification.time": "#a89984", "theme.notification.border": "#323d43", "theme.notification.label": "#d3c6aa", "theme.notification.actions.text": "#2b3339", "theme.notification.actions.background": "#a7c080", "theme.notification.background": "#2b3239", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.menus.menu.media.card.color": "#2f383e", "theme.bar.menus.check_radio_button.background": "#000000", "theme.bar.menus.check_radio_button.active": "#ffffff", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#dbbc7f", "theme.bar.buttons.network.icon_background": "#e69875", "theme.bar.buttons.bluetooth.icon_background": "#a7c080", "theme.bar.buttons.windowtitle.icon_background": "#dbbc7f", "theme.bar.buttons.media.icon_background": "#a7c080", "theme.bar.buttons.notifications.icon_background": "#83c092", "theme.bar.buttons.battery.icon_background": "#e69875", "theme.bar.buttons.clock.icon_background": "#dbbc7f", "theme.bar.menus.menu.notifications.pager.button": "#a7c080", "theme.bar.menus.menu.notifications.scrollbar.color": "#a7c080", "theme.bar.menus.menu.notifications.pager.label": "#7a8478", "theme.bar.menus.menu.notifications.pager.background": "#2b3339", "theme.bar.buttons.modules.ram.icon": "#21252b", "theme.bar.buttons.modules.storage.icon_background": "#e67e80", "theme.bar.menus.popover.border": "#3a4248", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#83c092", "theme.bar.menus.menu.power.buttons.restart.text": "#dbbc7f", "theme.bar.buttons.modules.updates.background": "#323d43", "theme.bar.buttons.modules.storage.icon": "#21252b", "theme.bar.buttons.modules.netstat.background": "#323d43", "theme.bar.buttons.modules.weather.icon": "#323d43", "theme.bar.buttons.modules.netstat.text": "#a7c080", "theme.bar.buttons.modules.storage.background": "#323d43", "theme.bar.buttons.modules.power.icon": "#21252b", "theme.bar.buttons.modules.storage.text": "#e67e80", "theme.bar.buttons.modules.cpu.background": "#323d43", "theme.bar.menus.menu.power.border.color": "#454b53", "theme.bar.buttons.modules.power.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.logout.icon": "#3a4248", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#dbbc7f", "theme.bar.menus.menu.power.buttons.restart.icon": "#3a4248", "theme.bar.buttons.modules.cpu.icon": "#21252b", "theme.bar.buttons.modules.kbLayout.icon_background": "#83c092", "theme.bar.buttons.modules.weather.text": "#a7c080", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#3a4248", "theme.bar.menus.menu.power.buttons.sleep.text": "#83c092", "theme.bar.buttons.modules.weather.icon_background": "#a7c080", "theme.bar.menus.menu.power.buttons.shutdown.background": "#2f383e", "theme.bar.menus.menu.power.buttons.logout.background": "#2f383e", "theme.bar.buttons.modules.kbLayout.icon": "#21252b", "theme.bar.buttons.modules.ram.icon_background": "#dbbc7f", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.shutdown.text": "#e67e80", "theme.bar.menus.menu.power.buttons.sleep.background": "#2f383e", "theme.bar.buttons.modules.ram.text": "#dbbc7f", "theme.bar.menus.menu.power.buttons.logout.text": "#a7c080", "theme.bar.buttons.modules.updates.icon_background": "#83c092", "theme.bar.buttons.modules.kbLayout.background": "#323d43", "theme.bar.buttons.modules.power.background": "#323d43", "theme.bar.buttons.modules.weather.background": "#323d43", "theme.bar.menus.menu.power.background.color": "#2b3339", "theme.bar.buttons.modules.ram.background": "#323d43", "theme.bar.buttons.modules.netstat.icon": "#21252b", "theme.bar.buttons.modules.cpu.icon_background": "#e67e80", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#a7c080", "theme.bar.buttons.modules.updates.text": "#83c092", "theme.bar.menus.menu.power.buttons.sleep.icon": "#3a4248", "theme.bar.menus.menu.power.buttons.restart.background": "#2f383e", "theme.bar.buttons.modules.updates.icon": "#21252b", "theme.bar.buttons.modules.cpu.text": "#e67e80", "theme.bar.buttons.modules.netstat.icon_background": "#a7c080", "theme.bar.buttons.modules.kbLayout.text": "#83c092", "theme.bar.buttons.modules.power.border": "#e67e80", "theme.bar.buttons.modules.weather.border": "#a7c080", "theme.bar.buttons.modules.updates.border": "#83c092", "theme.bar.buttons.modules.kbLayout.border": "#83c092", "theme.bar.buttons.modules.netstat.border": "#a7c080", "theme.bar.buttons.modules.storage.border": "#e67e80", "theme.bar.buttons.modules.cpu.border": "#e67e80", "theme.bar.buttons.modules.ram.border": "#dbbc7f", "theme.bar.buttons.notifications.border": "#83c092", "theme.bar.buttons.clock.border": "#dbbc7f", "theme.bar.buttons.battery.border": "#e69875", "theme.bar.buttons.systray.border": "#454b53", "theme.bar.buttons.bluetooth.border": "#a7c080", "theme.bar.buttons.network.border": "#e69875", "theme.bar.buttons.volume.border": "#dbbc7f", "theme.bar.buttons.media.border": "#a7c080", "theme.bar.buttons.windowtitle.border": "#dbbc7f", "theme.bar.buttons.workspaces.border": "#2b3339", "theme.bar.buttons.dashboard.border": "#e69875", "theme.bar.buttons.modules.submap.background": "#323d43", "theme.bar.buttons.modules.submap.text": "#83c092", "theme.bar.buttons.modules.submap.border": "#83c092", "theme.bar.buttons.modules.submap.icon": "#21252b", "theme.bar.buttons.modules.submap.icon_background": "#83c092" } ================================================ FILE: .config/ags/themes/gruvbox.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#83a598", "theme.bar.menus.menu.notifications.pager.label": "#a89984", "theme.bar.menus.menu.notifications.pager.button": "#83a598", "theme.bar.menus.menu.notifications.pager.background": "#1d2021", "theme.bar.menus.menu.notifications.switch.puck": "#504945", "theme.bar.menus.menu.notifications.switch.disabled": "#3c3836", "theme.bar.menus.menu.notifications.switch.enabled": "#83a598", "theme.bar.menus.menu.notifications.clear": "#83a598", "theme.bar.menus.menu.notifications.switch_divider": "#504945", "theme.bar.menus.menu.notifications.border": "#3c3836", "theme.bar.menus.menu.notifications.card": "#282828", "theme.bar.menus.menu.notifications.background": "#1d2021", "theme.bar.menus.menu.notifications.no_notifications_label": "#3c3836", "theme.bar.menus.menu.notifications.label": "#83a598", "theme.bar.menus.menu.power.buttons.sleep.icon": "#32302f", "theme.bar.menus.menu.power.buttons.sleep.text": "#83a598", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#83a598", "theme.bar.menus.menu.power.buttons.sleep.background": "#282828", "theme.bar.menus.menu.power.buttons.logout.icon": "#32302f", "theme.bar.menus.menu.power.buttons.logout.text": "#b8bb26", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#b8bb26", "theme.bar.menus.menu.power.buttons.logout.background": "#282828", "theme.bar.menus.menu.power.buttons.restart.icon": "#32302f", "theme.bar.menus.menu.power.buttons.restart.text": "#fe8019", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#fe8019", "theme.bar.menus.menu.power.buttons.restart.background": "#282828", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#32302f", "theme.bar.menus.menu.power.buttons.shutdown.text": "#cc241d", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#cc241d", "theme.bar.menus.menu.power.buttons.shutdown.background": "#282828", "theme.bar.menus.menu.power.border.color": "#3c3836", "theme.bar.menus.menu.power.background.color": "#1d2021", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#d3869b", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#d3869b", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#d3869b", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#b8bb26", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#b8bb26", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#b8bb26", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#fabd2f", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#fabd2f", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#fabd2f", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#fb4934", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#fb4934", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#fb4934", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#504945", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#83a598", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#b16286", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8ec07c", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#fb4934", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#fabd2f", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#d3869b", "theme.bar.menus.menu.dashboard.controls.input.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.input.background": "#d3869b", "theme.bar.menus.menu.dashboard.controls.volume.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.volume.background": "#fb4934", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#fabd2f", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#83a598", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#b16286", "theme.bar.menus.menu.dashboard.controls.disabled": "#665c54", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#b8bb26", "theme.bar.menus.menu.dashboard.shortcuts.text": "#32302f", "theme.bar.menus.menu.dashboard.shortcuts.background": "#83a598", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#1d2021", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#d3869b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#8ec07b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#ebdbb2", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#83a598", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#3c3836", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#1d2021", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1d2021", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#83a598", "theme.bar.menus.menu.dashboard.powermenu.logout": "#b8bb26", "theme.bar.menus.menu.dashboard.powermenu.restart": "#fe8019", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#cc241d", "theme.bar.menus.menu.dashboard.profile.name": "#d3869b", "theme.bar.menus.menu.dashboard.border.color": "#3c3836", "theme.bar.menus.menu.dashboard.background.color": "#1d2021", "theme.bar.menus.menu.dashboard.card.color": "#282828", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#d3869b", "theme.bar.menus.menu.clock.weather.hourly.icon": "#d3869b", "theme.bar.menus.menu.clock.weather.hourly.time": "#d3869b", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#83a598", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#458588", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#83a598", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#fe8019", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#cc241d", "theme.bar.menus.menu.clock.weather.stats": "#d3869b", "theme.bar.menus.menu.clock.weather.status": "#8ec07c", "theme.bar.menus.menu.clock.weather.temperature": "#ebdbb2", "theme.bar.menus.menu.clock.weather.icon": "#d3869b", "theme.bar.menus.menu.clock.calendar.contextdays": "#665c54", "theme.bar.menus.menu.clock.calendar.days": "#ebdbb2", "theme.bar.menus.menu.clock.calendar.currentday": "#d3869b", "theme.bar.menus.menu.clock.calendar.paginator": "#d3869b", "theme.bar.menus.menu.clock.calendar.weekdays": "#d3869b", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8ec07c", "theme.bar.menus.menu.clock.time.timeperiod": "#8ec07c", "theme.bar.menus.menu.clock.time.time": "#d3869b", "theme.bar.menus.menu.clock.text": "#ebdbb2", "theme.bar.menus.menu.clock.border.color": "#3c3836", "theme.bar.menus.menu.clock.background.color": "#1d2021", "theme.bar.menus.menu.clock.card.color": "#282828", "theme.bar.menus.menu.battery.slider.puck": "#7c6f64", "theme.bar.menus.menu.battery.slider.backgroundhover": "#504945", "theme.bar.menus.menu.battery.slider.background": "#665c54", "theme.bar.menus.menu.battery.slider.primary": "#fabd2f", "theme.bar.menus.menu.battery.icons.active": "#fabd2f", "theme.bar.menus.menu.battery.icons.passive": "#a89984", "theme.bar.menus.menu.battery.listitems.active": "#fabd2f", "theme.bar.menus.menu.battery.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.battery.text": "#ebdbb2", "theme.bar.menus.menu.battery.label.color": "#fabd2f", "theme.bar.menus.menu.battery.border.color": "#3c3836", "theme.bar.menus.menu.battery.background.color": "#1d2021", "theme.bar.menus.menu.battery.card.color": "#282828", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1d2021", "theme.bar.menus.menu.systray.dropdownmenu.text": "#ebdbb2", "theme.bar.menus.menu.systray.dropdownmenu.background": "#1d2021", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#83a598", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#ebdbb2", "theme.bar.menus.menu.bluetooth.icons.active": "#83a598", "theme.bar.menus.menu.bluetooth.icons.passive": "#a89984", "theme.bar.menus.menu.bluetooth.listitems.active": "#83a598", "theme.bar.menus.menu.bluetooth.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.bluetooth.switch.puck": "#504945", "theme.bar.menus.menu.bluetooth.switch.disabled": "#3c3836", "theme.bar.menus.menu.bluetooth.switch.enabled": "#83a598", "theme.bar.menus.menu.bluetooth.switch_divider": "#504945", "theme.bar.menus.menu.bluetooth.status": "#7c6f64", "theme.bar.menus.menu.bluetooth.text": "#ebdbb2", "theme.bar.menus.menu.bluetooth.label.color": "#83a598", "theme.bar.menus.menu.bluetooth.border.color": "#3c3836", "theme.bar.menus.menu.bluetooth.background.color": "#1d2021", "theme.bar.menus.menu.bluetooth.card.color": "#282828", "theme.bar.menus.menu.network.iconbuttons.active": "#b16286", "theme.bar.menus.menu.network.iconbuttons.passive": "#ebdbb2", "theme.bar.menus.menu.network.icons.active": "#b16286", "theme.bar.menus.menu.network.icons.passive": "#a89984", "theme.bar.menus.menu.network.listitems.active": "#b16286", "theme.bar.menus.menu.network.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.network.status.color": "#7c6f64", "theme.bar.menus.menu.network.text": "#ebdbb2", "theme.bar.menus.menu.network.label.color": "#b16286", "theme.bar.menus.menu.network.border.color": "#3c3836", "theme.bar.menus.menu.network.background.color": "#1d2021", "theme.bar.menus.menu.network.card.color": "#282828", "theme.bar.menus.menu.volume.input_slider.puck": "#665c54", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#504945", "theme.bar.menus.menu.volume.input_slider.background": "#665c54", "theme.bar.menus.menu.volume.input_slider.primary": "#fe8018", "theme.bar.menus.menu.volume.audio_slider.puck": "#665c54", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#504945", "theme.bar.menus.menu.volume.audio_slider.background": "#665c54", "theme.bar.menus.menu.volume.audio_slider.primary": "#fe8018", "theme.bar.menus.menu.volume.icons.active": "#fe8018", "theme.bar.menus.menu.volume.icons.passive": "#a89984", "theme.bar.menus.menu.volume.iconbutton.active": "#fe8018", "theme.bar.menus.menu.volume.iconbutton.passive": "#ebdbb2", "theme.bar.menus.menu.volume.listitems.active": "#fe8018", "theme.bar.menus.menu.volume.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.volume.text": "#ebdbb2", "theme.bar.menus.menu.volume.label.color": "#fe8018", "theme.bar.menus.menu.volume.border.color": "#3c3836", "theme.bar.menus.menu.volume.background.color": "#1d2021", "theme.bar.menus.menu.volume.card.color": "#282828", "theme.bar.menus.menu.media.slider.puck": "#7c6f64", "theme.bar.menus.menu.media.slider.backgroundhover": "#504945", "theme.bar.menus.menu.media.slider.background": "#665c54", "theme.bar.menus.menu.media.slider.primary": "#d3869b", "theme.bar.menus.menu.media.buttons.text": "#1d2021", "theme.bar.menus.menu.media.buttons.background": "#83a598", "theme.bar.menus.menu.media.buttons.enabled": "#8ec07c", "theme.bar.menus.menu.media.buttons.inactive": "#665c54", "theme.bar.menus.menu.media.border.color": "#3c3836", "theme.bar.menus.menu.media.card.color": "#282828", "theme.bar.menus.menu.media.background.color": "#1d2021", "theme.bar.menus.menu.media.album": "#d3869b", "theme.bar.menus.menu.media.artist": "#8ec07c", "theme.bar.menus.menu.media.song": "#83a598", "theme.bar.menus.tooltip.text": "#ebdbb2", "theme.bar.menus.tooltip.background": "#1d2021", "theme.bar.menus.dropdownmenu.divider": "#1d2021", "theme.bar.menus.dropdownmenu.text": "#ebdbb2", "theme.bar.menus.dropdownmenu.background": "#1d2021", "theme.bar.menus.slider.puck": "#7c6f64", "theme.bar.menus.slider.backgroundhover": "#504945", "theme.bar.menus.slider.background": "#665c54", "theme.bar.menus.slider.primary": "#83a598", "theme.bar.menus.progressbar.background": "#504945", "theme.bar.menus.progressbar.foreground": "#83a598", "theme.bar.menus.iconbuttons.active": "#83a598", "theme.bar.menus.iconbuttons.passive": "#ebdbb2", "theme.bar.menus.buttons.text": "#32302f", "theme.bar.menus.buttons.disabled": "#665c54", "theme.bar.menus.buttons.active": "#d3869b", "theme.bar.menus.buttons.default": "#83a598", "theme.bar.menus.check_radio_button.active": "#83a598", "theme.bar.menus.check_radio_button.background": "#3c3836", "theme.bar.menus.switch.puck": "#504945", "theme.bar.menus.switch.disabled": "#3c3836", "theme.bar.menus.switch.enabled": "#83a598", "theme.bar.menus.icons.active": "#83a598", "theme.bar.menus.icons.passive": "#665c54", "theme.bar.menus.listitems.active": "#83a598", "theme.bar.menus.listitems.passive": "#ebdbb2", "theme.bar.menus.popover.border": "#32302f", "theme.bar.menus.popover.background": "#32302f", "theme.bar.menus.popover.text": "#83a598", "theme.bar.menus.label": "#83a598", "theme.bar.menus.feinttext": "#3c3836", "theme.bar.menus.dimtext": "#665c54", "theme.bar.menus.text": "#ebdbb2", "theme.bar.menus.border.color": "#3c3836", "theme.bar.menus.cards": "#1d2021", "theme.bar.menus.background": "#1d2021", "theme.bar.buttons.modules.power.icon_background": "#282828", "theme.bar.buttons.modules.power.icon": "#cc241d", "theme.bar.buttons.modules.power.background": "#282828", "theme.bar.buttons.modules.weather.icon_background": "#282828", "theme.bar.buttons.modules.weather.icon": "#fe8017", "theme.bar.buttons.modules.weather.text": "#fe8017", "theme.bar.buttons.modules.weather.background": "#282828", "theme.bar.buttons.modules.updates.icon_background": "#282828", "theme.bar.buttons.modules.updates.icon": "#b16286", "theme.bar.buttons.modules.updates.text": "#b16286", "theme.bar.buttons.modules.updates.background": "#282828", "theme.bar.buttons.modules.kbLayout.icon_background": "#282828", "theme.bar.buttons.modules.kbLayout.icon": "#83a598", "theme.bar.buttons.modules.kbLayout.text": "#83a598", "theme.bar.buttons.modules.kbLayout.background": "#282828", "theme.bar.buttons.modules.netstat.icon_background": "#282828", "theme.bar.buttons.modules.netstat.icon": "#b8bb26", "theme.bar.buttons.modules.netstat.text": "#b8bb26", "theme.bar.buttons.modules.netstat.background": "#282828", "theme.bar.buttons.modules.storage.icon_background": "#282828", "theme.bar.buttons.modules.storage.icon": "#83a598", "theme.bar.buttons.modules.storage.text": "#83a598", "theme.bar.buttons.modules.storage.background": "#282828", "theme.bar.buttons.modules.cpu.icon_background": "#282828", "theme.bar.buttons.modules.cpu.icon": "#d3869b", "theme.bar.buttons.modules.cpu.text": "#d3869b", "theme.bar.buttons.modules.cpu.background": "#282828", "theme.bar.buttons.modules.ram.icon_background": "#282828", "theme.bar.buttons.modules.ram.icon": "#fabd2f", "theme.bar.buttons.modules.ram.text": "#fabd2f", "theme.bar.buttons.modules.ram.background": "#282828", "theme.bar.buttons.notifications.total": "#83a598", "theme.bar.buttons.notifications.icon_background": "#83a598", "theme.bar.buttons.notifications.icon": "#83a598", "theme.bar.buttons.notifications.background": "#282828", "theme.bar.buttons.clock.icon_background": "#d3869b", "theme.bar.buttons.clock.icon": "#d3869b", "theme.bar.buttons.clock.text": "#d3869b", "theme.bar.buttons.clock.background": "#282828", "theme.bar.buttons.battery.icon_background": "#fabd2f", "theme.bar.buttons.battery.icon": "#fabd2f", "theme.bar.buttons.battery.text": "#fabd2f", "theme.bar.buttons.battery.background": "#282828", "theme.bar.buttons.systray.background": "#282828", "theme.bar.buttons.bluetooth.icon_background": "#83a598", "theme.bar.buttons.bluetooth.icon": "#83a598", "theme.bar.buttons.bluetooth.text": "#83a598", "theme.bar.buttons.bluetooth.background": "#282828", "theme.bar.buttons.network.icon_background": "#b16286", "theme.bar.buttons.network.icon": "#b16286", "theme.bar.buttons.network.text": "#b16286", "theme.bar.buttons.network.background": "#282828", "theme.bar.buttons.volume.icon_background": "#fe8018", "theme.bar.buttons.volume.icon": "#fe8018", "theme.bar.buttons.volume.text": "#fe8018", "theme.bar.buttons.volume.background": "#282828", "theme.bar.buttons.media.icon_background": "#83a598", "theme.bar.buttons.media.icon": "#83a598", "theme.bar.buttons.media.text": "#83a598", "theme.bar.buttons.media.background": "#282828", "theme.bar.buttons.windowtitle.icon_background": "#d3869b", "theme.bar.buttons.windowtitle.icon": "#d3869b", "theme.bar.buttons.windowtitle.text": "#d3869b", "theme.bar.buttons.windowtitle.background": "#282828", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.active": "#d3869b", "theme.bar.buttons.workspaces.occupied": "#fb4934", "theme.bar.buttons.workspaces.available": "#83a598", "theme.bar.buttons.workspaces.hover": "#504945", "theme.bar.buttons.workspaces.background": "#282828", "theme.bar.buttons.dashboard.icon": "#fabd2f", "theme.bar.buttons.dashboard.background": "#282828", "theme.bar.buttons.icon": "#83a598", "theme.bar.buttons.text": "#83a598", "theme.bar.buttons.hover": "#504945", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.background": "#282828", "theme.bar.buttons.style": "default", "theme.bar.background": "#1d2021", "theme.osd.label": "#83a598", "theme.osd.icon": "#1d2021", "theme.osd.bar_overflow_color": "#cc241d", "theme.osd.bar_empty_color": "#3c3836", "theme.osd.bar_color": "#83a598", "theme.osd.icon_container": "#83a598", "theme.osd.bar_container": "#1d2021", "theme.notification.close_button.label": "#1d2021", "theme.notification.close_button.background": "#83a598", "theme.notification.labelicon": "#83a598", "theme.notification.text": "#ebdbb2", "theme.notification.time": "#928374", "theme.notification.border": "#3c3836", "theme.notification.label": "#83a598", "theme.notification.actions.text": "#32302f", "theme.notification.actions.background": "#83a598", "theme.notification.background": "#32302f", "theme.bar.buttons.modules.power.border": "#282828", "theme.bar.buttons.modules.weather.border": "#fe8017", "theme.bar.buttons.modules.updates.border": "#b16286", "theme.bar.buttons.modules.kbLayout.border": "#83a598", "theme.bar.buttons.modules.netstat.border": "#b8bb26", "theme.bar.buttons.modules.storage.border": "#83a598", "theme.bar.buttons.modules.cpu.border": "#d3869b", "theme.bar.buttons.modules.ram.border": "#fabd2f", "theme.bar.buttons.notifications.border": "#83a598", "theme.bar.buttons.clock.border": "#d3869b", "theme.bar.buttons.battery.border": "#fabd2f", "theme.bar.buttons.systray.border": "#504945", "theme.bar.buttons.bluetooth.border": "#83a598", "theme.bar.buttons.network.border": "#b16286", "theme.bar.buttons.volume.border": "#fe8018", "theme.bar.buttons.media.border": "#83a598", "theme.bar.buttons.windowtitle.border": "#d3869b", "theme.bar.buttons.workspaces.border": "#ffffff", "theme.bar.buttons.dashboard.border": "#fabd2f", "theme.bar.buttons.modules.submap.background": "#282828", "theme.bar.buttons.modules.submap.text": "#8ec07c", "theme.bar.buttons.modules.submap.border": "#8ec07c", "theme.bar.buttons.modules.submap.icon": "#8ec07c", "theme.bar.buttons.modules.submap.icon_background": "#282828" } ================================================ FILE: .config/ags/themes/gruvbox_split.json ================================================ { "theme.bar.menus.menu.notifications.scrollbar.color": "#83a598", "theme.bar.menus.menu.notifications.pager.label": "#a89984", "theme.bar.menus.menu.notifications.pager.button": "#83a598", "theme.bar.menus.menu.notifications.pager.background": "#1d2021", "theme.bar.menus.menu.notifications.switch.puck": "#504945", "theme.bar.menus.menu.notifications.switch.disabled": "#3c3836", "theme.bar.menus.menu.notifications.switch.enabled": "#83a598", "theme.bar.menus.menu.notifications.clear": "#83a598", "theme.bar.menus.menu.notifications.switch_divider": "#504945", "theme.bar.menus.menu.notifications.border": "#3c3836", "theme.bar.menus.menu.notifications.card": "#282828", "theme.bar.menus.menu.notifications.background": "#1d2021", "theme.bar.menus.menu.notifications.no_notifications_label": "#3c3836", "theme.bar.menus.menu.notifications.label": "#83a598", "theme.bar.menus.menu.power.buttons.sleep.icon": "#32302f", "theme.bar.menus.menu.power.buttons.sleep.text": "#83a598", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#83a598", "theme.bar.menus.menu.power.buttons.sleep.background": "#282828", "theme.bar.menus.menu.power.buttons.logout.icon": "#32302f", "theme.bar.menus.menu.power.buttons.logout.text": "#b8bb26", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#b8bb26", "theme.bar.menus.menu.power.buttons.logout.background": "#282828", "theme.bar.menus.menu.power.buttons.restart.icon": "#32302f", "theme.bar.menus.menu.power.buttons.restart.text": "#fe8019", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#fe8019", "theme.bar.menus.menu.power.buttons.restart.background": "#282828", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#32302f", "theme.bar.menus.menu.power.buttons.shutdown.text": "#cc241d", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#cc241d", "theme.bar.menus.menu.power.buttons.shutdown.background": "#282828", "theme.bar.menus.menu.power.border.color": "#3c3836", "theme.bar.menus.menu.power.background.color": "#1d2021", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#d3869b", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#d3869b", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#d3869b", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#b8bb26", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#b8bb26", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#b8bb26", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#fabd2f", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#fabd2f", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#fabd2f", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#fb4934", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#fb4934", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#fb4934", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#504945", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#83a598", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#b16286", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8ec07c", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#fb4934", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#fabd2f", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#d3869b", "theme.bar.menus.menu.dashboard.controls.input.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.input.background": "#d3869b", "theme.bar.menus.menu.dashboard.controls.volume.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.volume.background": "#fb4934", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#fabd2f", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#83a598", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#32302f", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#b16286", "theme.bar.menus.menu.dashboard.controls.disabled": "#665c54", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#b8bb26", "theme.bar.menus.menu.dashboard.shortcuts.text": "#32302f", "theme.bar.menus.menu.dashboard.shortcuts.background": "#83a598", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#1d2021", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#d3869b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#8ec07b", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#ebdbb2", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#83a598", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#3c3836", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#1d2021", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1d2021", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#83a598", "theme.bar.menus.menu.dashboard.powermenu.logout": "#b8bb26", "theme.bar.menus.menu.dashboard.powermenu.restart": "#fe8019", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#cc241d", "theme.bar.menus.menu.dashboard.profile.name": "#d3869b", "theme.bar.menus.menu.dashboard.border.color": "#3c3836", "theme.bar.menus.menu.dashboard.background.color": "#1d2021", "theme.bar.menus.menu.dashboard.card.color": "#282828", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#d3869b", "theme.bar.menus.menu.clock.weather.hourly.icon": "#d3869b", "theme.bar.menus.menu.clock.weather.hourly.time": "#d3869b", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#83a598", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#458588", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#83a598", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#fe8019", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#cc241d", "theme.bar.menus.menu.clock.weather.stats": "#d3869b", "theme.bar.menus.menu.clock.weather.status": "#8ec07c", "theme.bar.menus.menu.clock.weather.temperature": "#ebdbb2", "theme.bar.menus.menu.clock.weather.icon": "#d3869b", "theme.bar.menus.menu.clock.calendar.contextdays": "#665c54", "theme.bar.menus.menu.clock.calendar.days": "#ebdbb2", "theme.bar.menus.menu.clock.calendar.currentday": "#d3869b", "theme.bar.menus.menu.clock.calendar.paginator": "#d3869b", "theme.bar.menus.menu.clock.calendar.weekdays": "#d3869b", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8ec07c", "theme.bar.menus.menu.clock.time.timeperiod": "#8ec07c", "theme.bar.menus.menu.clock.time.time": "#d3869b", "theme.bar.menus.menu.clock.text": "#ebdbb2", "theme.bar.menus.menu.clock.border.color": "#3c3836", "theme.bar.menus.menu.clock.background.color": "#1d2021", "theme.bar.menus.menu.clock.card.color": "#282828", "theme.bar.menus.menu.battery.slider.puck": "#7c6f64", "theme.bar.menus.menu.battery.slider.backgroundhover": "#504945", "theme.bar.menus.menu.battery.slider.background": "#665c54", "theme.bar.menus.menu.battery.slider.primary": "#fabd2f", "theme.bar.menus.menu.battery.icons.active": "#fabd2f", "theme.bar.menus.menu.battery.icons.passive": "#a89984", "theme.bar.menus.menu.battery.listitems.active": "#fabd2f", "theme.bar.menus.menu.battery.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.battery.text": "#ebdbb2", "theme.bar.menus.menu.battery.label.color": "#fabd2f", "theme.bar.menus.menu.battery.border.color": "#3c3836", "theme.bar.menus.menu.battery.background.color": "#1d2021", "theme.bar.menus.menu.battery.card.color": "#282828", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1d2021", "theme.bar.menus.menu.systray.dropdownmenu.text": "#ebdbb2", "theme.bar.menus.menu.systray.dropdownmenu.background": "#1d2021", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#83a598", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#ebdbb2", "theme.bar.menus.menu.bluetooth.icons.active": "#83a598", "theme.bar.menus.menu.bluetooth.icons.passive": "#a89984", "theme.bar.menus.menu.bluetooth.listitems.active": "#83a598", "theme.bar.menus.menu.bluetooth.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.bluetooth.switch.puck": "#504945", "theme.bar.menus.menu.bluetooth.switch.disabled": "#3c3836", "theme.bar.menus.menu.bluetooth.switch.enabled": "#83a598", "theme.bar.menus.menu.bluetooth.switch_divider": "#504945", "theme.bar.menus.menu.bluetooth.status": "#7c6f64", "theme.bar.menus.menu.bluetooth.text": "#ebdbb2", "theme.bar.menus.menu.bluetooth.label.color": "#83a598", "theme.bar.menus.menu.bluetooth.border.color": "#3c3836", "theme.bar.menus.menu.bluetooth.background.color": "#1d2021", "theme.bar.menus.menu.bluetooth.card.color": "#282828", "theme.bar.menus.menu.network.iconbuttons.active": "#b16286", "theme.bar.menus.menu.network.iconbuttons.passive": "#ebdbb2", "theme.bar.menus.menu.network.icons.active": "#b16286", "theme.bar.menus.menu.network.icons.passive": "#a89984", "theme.bar.menus.menu.network.listitems.active": "#b16286", "theme.bar.menus.menu.network.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.network.status.color": "#7c6f64", "theme.bar.menus.menu.network.text": "#ebdbb2", "theme.bar.menus.menu.network.label.color": "#b16286", "theme.bar.menus.menu.network.border.color": "#3c3836", "theme.bar.menus.menu.network.background.color": "#1d2021", "theme.bar.menus.menu.network.card.color": "#282828", "theme.bar.menus.menu.volume.input_slider.puck": "#665c54", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#504945", "theme.bar.menus.menu.volume.input_slider.background": "#665c54", "theme.bar.menus.menu.volume.input_slider.primary": "#fe8018", "theme.bar.menus.menu.volume.audio_slider.puck": "#665c54", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#504945", "theme.bar.menus.menu.volume.audio_slider.background": "#665c54", "theme.bar.menus.menu.volume.audio_slider.primary": "#fe8018", "theme.bar.menus.menu.volume.icons.active": "#fe8018", "theme.bar.menus.menu.volume.icons.passive": "#a89984", "theme.bar.menus.menu.volume.iconbutton.active": "#fe8018", "theme.bar.menus.menu.volume.iconbutton.passive": "#ebdbb2", "theme.bar.menus.menu.volume.listitems.active": "#fe8018", "theme.bar.menus.menu.volume.listitems.passive": "#ebdbb2", "theme.bar.menus.menu.volume.text": "#ebdbb2", "theme.bar.menus.menu.volume.label.color": "#fe8018", "theme.bar.menus.menu.volume.border.color": "#3c3836", "theme.bar.menus.menu.volume.background.color": "#1d2021", "theme.bar.menus.menu.volume.card.color": "#282828", "theme.bar.menus.menu.media.slider.puck": "#7c6f64", "theme.bar.menus.menu.media.slider.backgroundhover": "#504945", "theme.bar.menus.menu.media.slider.background": "#665c54", "theme.bar.menus.menu.media.slider.primary": "#d3869b", "theme.bar.menus.menu.media.buttons.text": "#1d2021", "theme.bar.menus.menu.media.buttons.background": "#83a598", "theme.bar.menus.menu.media.buttons.enabled": "#8ec07c", "theme.bar.menus.menu.media.buttons.inactive": "#665c54", "theme.bar.menus.menu.media.border.color": "#3c3836", "theme.bar.menus.menu.media.card.color": "#282828", "theme.bar.menus.menu.media.background.color": "#1d2021", "theme.bar.menus.menu.media.album": "#d3869b", "theme.bar.menus.menu.media.artist": "#8ec07c", "theme.bar.menus.menu.media.song": "#83a598", "theme.bar.menus.tooltip.text": "#ebdbb2", "theme.bar.menus.tooltip.background": "#1d2021", "theme.bar.menus.dropdownmenu.divider": "#1d2021", "theme.bar.menus.dropdownmenu.text": "#ebdbb2", "theme.bar.menus.dropdownmenu.background": "#1d2021", "theme.bar.menus.slider.puck": "#7c6f64", "theme.bar.menus.slider.backgroundhover": "#504945", "theme.bar.menus.slider.background": "#665c54", "theme.bar.menus.slider.primary": "#83a598", "theme.bar.menus.progressbar.background": "#504945", "theme.bar.menus.progressbar.foreground": "#83a598", "theme.bar.menus.iconbuttons.active": "#83a598", "theme.bar.menus.iconbuttons.passive": "#ebdbb2", "theme.bar.menus.buttons.text": "#32302f", "theme.bar.menus.buttons.disabled": "#665c54", "theme.bar.menus.buttons.active": "#d3869b", "theme.bar.menus.buttons.default": "#83a598", "theme.bar.menus.check_radio_button.active": "#83a598", "theme.bar.menus.check_radio_button.background": "#3c3836", "theme.bar.menus.switch.puck": "#504945", "theme.bar.menus.switch.disabled": "#3c3836", "theme.bar.menus.switch.enabled": "#83a598", "theme.bar.menus.icons.active": "#83a598", "theme.bar.menus.icons.passive": "#665c54", "theme.bar.menus.listitems.active": "#83a598", "theme.bar.menus.listitems.passive": "#ebdbb2", "theme.bar.menus.popover.border": "#32302f", "theme.bar.menus.popover.background": "#32302f", "theme.bar.menus.popover.text": "#83a598", "theme.bar.menus.label": "#83a598", "theme.bar.menus.feinttext": "#3c3836", "theme.bar.menus.dimtext": "#665c54", "theme.bar.menus.text": "#ebdbb2", "theme.bar.menus.border.color": "#3c3836", "theme.bar.menus.cards": "#1d2021", "theme.bar.menus.background": "#1d2021", "theme.bar.buttons.modules.power.icon_background": "#fb4934", "theme.bar.buttons.modules.power.icon": "#21252b", "theme.bar.buttons.modules.power.background": "#282828", "theme.bar.buttons.modules.weather.icon_background": "#fe8017", "theme.bar.buttons.modules.weather.icon": "#282828", "theme.bar.buttons.modules.weather.text": "#fe8017", "theme.bar.buttons.modules.weather.background": "#282828", "theme.bar.buttons.modules.updates.icon_background": "#b16286", "theme.bar.buttons.modules.updates.icon": "#21252b", "theme.bar.buttons.modules.updates.text": "#b16286", "theme.bar.buttons.modules.updates.background": "#282828", "theme.bar.buttons.modules.kbLayout.icon_background": "#83a598", "theme.bar.buttons.modules.kbLayout.icon": "#21252b", "theme.bar.buttons.modules.kbLayout.text": "#83a598", "theme.bar.buttons.modules.kbLayout.background": "#282828", "theme.bar.buttons.modules.netstat.icon_background": "#b8bb26", "theme.bar.buttons.modules.netstat.icon": "#21252b", "theme.bar.buttons.modules.netstat.text": "#b8bb26", "theme.bar.buttons.modules.netstat.background": "#282828", "theme.bar.buttons.modules.storage.icon_background": "#83a598", "theme.bar.buttons.modules.storage.icon": "#21252b", "theme.bar.buttons.modules.storage.text": "#83a598", "theme.bar.buttons.modules.storage.background": "#282828", "theme.bar.buttons.modules.cpu.icon_background": "#d3869b", "theme.bar.buttons.modules.cpu.icon": "#21252b", "theme.bar.buttons.modules.cpu.text": "#d3869b", "theme.bar.buttons.modules.cpu.background": "#282828", "theme.bar.buttons.modules.ram.icon_background": "#fabd2f", "theme.bar.buttons.modules.ram.icon": "#21252b", "theme.bar.buttons.modules.ram.text": "#fabd2f", "theme.bar.buttons.modules.ram.background": "#282828", "theme.bar.buttons.notifications.total": "#83a598", "theme.bar.buttons.notifications.icon_background": "#83a598", "theme.bar.buttons.notifications.icon": "#282828", "theme.bar.buttons.notifications.background": "#282828", "theme.bar.buttons.clock.icon_background": "#d3869b", "theme.bar.buttons.clock.icon": "#282828", "theme.bar.buttons.clock.text": "#d3869b", "theme.bar.buttons.clock.background": "#282828", "theme.bar.buttons.battery.icon_background": "#fabd2f", "theme.bar.buttons.battery.icon": "#282828", "theme.bar.buttons.battery.text": "#fabd2f", "theme.bar.buttons.battery.background": "#282828", "theme.bar.buttons.systray.background": "#282828", "theme.bar.buttons.bluetooth.icon_background": "#83a598", "theme.bar.buttons.bluetooth.icon": "#282828", "theme.bar.buttons.bluetooth.text": "#83a598", "theme.bar.buttons.bluetooth.background": "#282828", "theme.bar.buttons.network.icon_background": "#b16286", "theme.bar.buttons.network.icon": "#282828", "theme.bar.buttons.network.text": "#b16286", "theme.bar.buttons.network.background": "#282828", "theme.bar.buttons.volume.icon_background": "#fe8018", "theme.bar.buttons.volume.icon": "#282828", "theme.bar.buttons.volume.text": "#fe8018", "theme.bar.buttons.volume.background": "#282828", "theme.bar.buttons.media.icon_background": "#83a598", "theme.bar.buttons.media.icon": "#282828", "theme.bar.buttons.media.text": "#83a598", "theme.bar.buttons.media.background": "#282828", "theme.bar.buttons.windowtitle.icon_background": "#d3869b", "theme.bar.buttons.windowtitle.icon": "#282828", "theme.bar.buttons.windowtitle.text": "#d3869b", "theme.bar.buttons.windowtitle.background": "#282828", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.active": "#d3869b", "theme.bar.buttons.workspaces.occupied": "#fb4934", "theme.bar.buttons.workspaces.available": "#83a598", "theme.bar.buttons.workspaces.hover": "#d3869b", "theme.bar.buttons.workspaces.background": "#282828", "theme.bar.buttons.dashboard.icon": "#282828", "theme.bar.buttons.dashboard.background": "#fabc2f", "theme.bar.buttons.icon": "#83a598", "theme.bar.buttons.text": "#83a598", "theme.bar.buttons.hover": "#504945", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.background": "#282828", "theme.bar.buttons.style": "split", "theme.bar.background": "#1d2021", "theme.osd.label": "#83a598", "theme.osd.icon": "#1d2021", "theme.osd.bar_overflow_color": "#cc241d", "theme.osd.bar_empty_color": "#3c3836", "theme.osd.bar_color": "#83a598", "theme.osd.icon_container": "#83a598", "theme.osd.bar_container": "#1d2021", "theme.notification.close_button.label": "#1d2021", "theme.notification.close_button.background": "#83a598", "theme.notification.labelicon": "#83a598", "theme.notification.text": "#ebdbb2", "theme.notification.time": "#928374", "theme.notification.border": "#3c3836", "theme.notification.label": "#83a598", "theme.notification.actions.text": "#32302f", "theme.notification.actions.background": "#83a598", "theme.notification.background": "#32302f", "theme.bar.buttons.modules.power.border": "#282828", "theme.bar.buttons.modules.weather.border": "#fe8017", "theme.bar.buttons.modules.updates.border": "#b16286", "theme.bar.buttons.modules.kbLayout.border": "#83a598", "theme.bar.buttons.modules.netstat.border": "#b8bb26", "theme.bar.buttons.modules.storage.border": "#83a598", "theme.bar.buttons.modules.cpu.border": "#d3869b", "theme.bar.buttons.modules.ram.border": "#fabd2f", "theme.bar.buttons.notifications.border": "#83a598", "theme.bar.buttons.clock.border": "#d3869b", "theme.bar.buttons.battery.border": "#fabd2f", "theme.bar.buttons.systray.border": "#504945", "theme.bar.buttons.bluetooth.border": "#83a598", "theme.bar.buttons.network.border": "#b16286", "theme.bar.buttons.volume.border": "#fe8018", "theme.bar.buttons.media.border": "#83a598", "theme.bar.buttons.windowtitle.border": "#d3869b", "theme.bar.buttons.workspaces.border": "#ffffff", "theme.bar.buttons.dashboard.border": "#fabd2f", "theme.bar.buttons.modules.submap.background": "#282828", "theme.bar.buttons.modules.submap.text": "#8ec07c", "theme.bar.buttons.modules.submap.border": "#8ec07c", "theme.bar.buttons.modules.submap.icon": "#21252b", "theme.bar.buttons.modules.submap.icon_background": "#8ec07c" } ================================================ FILE: .config/ags/themes/monochrome.json ================================================ { "theme.bar.menus.background": "#000000", "theme.bar.background": "#000000", "theme.bar.buttons.media.icon": "#FFFFFF", "theme.bar.buttons.media.text": "#FFFFFF", "theme.bar.buttons.icon": "#FFFFFF", "theme.bar.buttons.text": "#FFFFFF", "theme.bar.buttons.hover": "#333333", "theme.bar.buttons.background": "#1A1A1A", "theme.bar.menus.text": "#CCCCCC", "theme.bar.menus.border.color": "#333333", "theme.bar.buttons.media.background": "#090909", "theme.bar.menus.menu.volume.text": "#CCCCCC", "theme.bar.menus.menu.volume.card.color": "#1A1A1A", "theme.bar.menus.menu.volume.label.color": "#FFFFFF", "theme.bar.menus.popover.text": "#FFFFFF", "theme.bar.menus.popover.background": "#000000", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#000000", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#CCCCCC", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#FFFFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#333333", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#000000", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1A1A1A", "theme.bar.menus.menu.notifications.switch.puck": "#333333", "theme.bar.menus.menu.notifications.switch.disabled": "#333333", "theme.bar.menus.menu.notifications.switch.enabled": "#FFFFFF", "theme.bar.menus.menu.notifications.clear": "#ffffff", "theme.bar.menus.menu.notifications.switch_divider": "#333333", "theme.bar.menus.menu.notifications.border": "#333333", "theme.bar.menus.menu.notifications.card": "#1A1A1A", "theme.bar.menus.menu.notifications.background": "#000000", "theme.bar.menus.menu.notifications.no_notifications_label": "#333333", "theme.bar.menus.menu.notifications.label": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#333333", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ffffff", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#ffffff", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.controls.input.text": "#000000", "theme.bar.menus.menu.dashboard.controls.input.background": "#FFFFFF", "theme.bar.menus.menu.dashboard.controls.volume.text": "#000000", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ffffff", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#000000", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#ffffff", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#000000", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#ffffff", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#000000", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#FFFFFF", "theme.bar.menus.menu.dashboard.controls.disabled": "#333333", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#5CFF5C", "theme.bar.menus.menu.dashboard.shortcuts.text": "#000000", "theme.bar.menus.menu.dashboard.shortcuts.background": "#FFFFFF", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.logout": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.restart": "#ffffff", "theme.bar.menus.menu.dashboard.profile.name": "#FFFFFF", "theme.bar.menus.menu.dashboard.border.color": "#333333", "theme.bar.menus.menu.dashboard.background.color": "#000000", "theme.bar.menus.menu.dashboard.card.color": "#1A1A1A", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#FFFFFF", "theme.bar.menus.menu.clock.weather.hourly.icon": "#FFFFFF", "theme.bar.menus.menu.clock.weather.hourly.time": "#FFFFFF", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#ffffff", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#ffffff", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#FFFFFF", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#ffffff", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#ffffff", "theme.bar.menus.menu.clock.weather.stats": "#FFFFFF", "theme.bar.menus.menu.clock.weather.status": "#FFFFFF", "theme.bar.menus.menu.clock.weather.temperature": "#CCCCCC", "theme.bar.menus.menu.clock.weather.icon": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.contextdays": "#333333", "theme.bar.menus.menu.clock.calendar.days": "#CCCCCC", "theme.bar.menus.menu.clock.calendar.currentday": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.paginator": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.weekdays": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.yearmonth": "#ffffff", "theme.bar.menus.menu.clock.time.timeperiod": "#ffffff", "theme.bar.menus.menu.clock.time.time": "#FFFFFF", "theme.bar.menus.menu.clock.text": "#CCCCCC", "theme.bar.menus.menu.clock.border.color": "#333333", "theme.bar.menus.menu.clock.background.color": "#000000", "theme.bar.menus.menu.clock.card.color": "#1A1A1A", "theme.bar.menus.menu.battery.slider.puck": "#5e5c64", "theme.bar.menus.menu.battery.slider.backgroundhover": "#5e5c64", "theme.bar.menus.menu.battery.slider.background": "#5e5c64", "theme.bar.menus.menu.battery.slider.primary": "#cccccc", "theme.bar.menus.menu.battery.icons.active": "#ffffff", "theme.bar.menus.menu.battery.icons.passive": "#9a9996", "theme.bar.menus.menu.battery.listitems.active": "#ffffff", "theme.bar.menus.menu.battery.listitems.passive": "#9a9996", "theme.bar.menus.menu.battery.text": "#CCCCCC", "theme.bar.menus.menu.battery.label.color": "#ffffff", "theme.bar.menus.menu.battery.border.color": "#333333", "theme.bar.menus.menu.battery.background.color": "#000000", "theme.bar.menus.menu.battery.card.color": "#111111", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1A1A1A", "theme.bar.menus.menu.systray.dropdownmenu.text": "#CCCCCC", "theme.bar.menus.menu.systray.dropdownmenu.background": "#000000", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#ffffff", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#9a9996", "theme.bar.menus.menu.bluetooth.icons.active": "#ffffff", "theme.bar.menus.menu.bluetooth.icons.passive": "#77767b", "theme.bar.menus.menu.bluetooth.listitems.active": "#FFFFFF", "theme.bar.menus.menu.bluetooth.listitems.passive": "#77767b", "theme.bar.menus.menu.bluetooth.switch.puck": "#9a9996", "theme.bar.menus.menu.bluetooth.switch.disabled": "#444444", "theme.bar.menus.menu.bluetooth.switch.enabled": "#FFFFFF", "theme.bar.menus.menu.bluetooth.switch_divider": "#444444", "theme.bar.menus.menu.bluetooth.status": "#CCCCCC", "theme.bar.menus.menu.bluetooth.text": "#FFFFFF", "theme.bar.menus.menu.bluetooth.label.color": "#FFFFFF", "theme.bar.menus.menu.bluetooth.border.color": "#444444", "theme.bar.menus.menu.bluetooth.background.color": "#000000", "theme.bar.menus.menu.bluetooth.card.color": "#111111", "theme.bar.menus.menu.network.iconbuttons.active": "#FFFFFF", "theme.bar.menus.menu.network.iconbuttons.passive": "#77767b", "theme.bar.menus.menu.network.icons.active": "#FFFFFF", "theme.bar.menus.menu.network.icons.passive": "#77767b", "theme.bar.menus.menu.network.listitems.active": "#FFFFFF", "theme.bar.menus.menu.network.listitems.passive": "#77767b", "theme.bar.menus.menu.network.status.color": "#CCCCCC", "theme.bar.menus.menu.network.text": "#FFFFFF", "theme.bar.menus.menu.network.label.color": "#FFFFFF", "theme.bar.menus.menu.network.border.color": "#444444", "theme.bar.menus.menu.network.background.color": "#000000", "theme.bar.menus.menu.network.card.color": "#111111", "theme.bar.menus.menu.volume.input_slider.puck": "#CCCCCC", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#444444", "theme.bar.menus.menu.volume.input_slider.background": "#77767b", "theme.bar.menus.menu.volume.input_slider.primary": "#FFFFFF", "theme.bar.menus.menu.volume.audio_slider.puck": "#CCCCCC", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#444444", "theme.bar.menus.menu.volume.audio_slider.background": "#77767b", "theme.bar.menus.menu.volume.audio_slider.primary": "#FFFFFF", "theme.bar.menus.menu.volume.icons.active": "#FFFFFF", "theme.bar.menus.menu.volume.icons.passive": "#77767b", "theme.bar.menus.menu.volume.iconbutton.active": "#FFFFFF", "theme.bar.menus.menu.volume.iconbutton.passive": "#77767b", "theme.bar.menus.menu.volume.listitems.active": "#FFFFFF", "theme.bar.menus.menu.volume.listitems.passive": "#77767b", "theme.bar.menus.menu.volume.border.color": "#444444", "theme.bar.menus.menu.volume.background.color": "#000000", "theme.bar.menus.menu.media.slider.puck": "#CCCCCC", "theme.bar.menus.menu.media.slider.backgroundhover": "#444444", "theme.bar.menus.menu.media.slider.background": "#77767b", "theme.bar.menus.menu.media.slider.primary": "#FFFFFF", "theme.bar.menus.menu.media.buttons.text": "#000000", "theme.bar.menus.menu.media.buttons.background": "#FFFFFF", "theme.bar.menus.menu.media.buttons.enabled": "#FFFFFF", "theme.bar.menus.menu.media.buttons.inactive": "#5e5c64", "theme.bar.menus.menu.media.border.color": "#444444", "theme.bar.menus.menu.media.background.color": "#000000", "theme.bar.menus.menu.media.album": "#FFFFFF", "theme.bar.menus.menu.media.artist": "#FFFFFF", "theme.bar.menus.menu.media.song": "#FFFFFF", "theme.bar.menus.tooltip.text": "#FFFFFF", "theme.bar.menus.tooltip.background": "#000000", "theme.bar.menus.dropdownmenu.divider": "#111111", "theme.bar.menus.dropdownmenu.text": "#FFFFFF", "theme.bar.menus.dropdownmenu.background": "#000000", "theme.bar.menus.slider.puck": "#CCCCCC", "theme.bar.menus.slider.backgroundhover": "#444444", "theme.bar.menus.slider.background": "#CCCCCC", "theme.bar.menus.slider.primary": "#FFFFFF", "theme.bar.menus.progressbar.background": "#444444", "theme.bar.menus.progressbar.foreground": "#FFFFFF", "theme.bar.menus.iconbuttons.active": "#FFFFFF", "theme.bar.menus.iconbuttons.passive": "#FFFFFF", "theme.bar.menus.buttons.text": "#000000", "theme.bar.menus.buttons.disabled": "#CCCCCC", "theme.bar.menus.buttons.active": "#FFFFFF", "theme.bar.menus.buttons.default": "#FFFFFF", "theme.bar.menus.switch.puck": "#CCCCCC", "theme.bar.menus.switch.disabled": "#444444", "theme.bar.menus.switch.enabled": "#FFFFFF", "theme.bar.menus.icons.active": "#FFFFFF", "theme.bar.menus.icons.passive": "#CCCCCC", "theme.bar.menus.listitems.active": "#FFFFFF", "theme.bar.menus.listitems.passive": "#FFFFFF", "theme.bar.menus.label": "#FFFFFF", "theme.bar.menus.feinttext": "#444444", "theme.bar.menus.dimtext": "#CCCCCC", "theme.bar.menus.cards": "#111111", "theme.bar.buttons.notifications.total": "#FFFFFF", "theme.bar.buttons.notifications.icon": "#FFFFFF", "theme.bar.buttons.notifications.background": "#090909", "theme.bar.buttons.clock.icon": "#FFFFFF", "theme.bar.buttons.clock.text": "#FFFFFF", "theme.bar.buttons.clock.background": "#090909", "theme.bar.buttons.battery.icon": "#FFFFFF", "theme.bar.buttons.battery.text": "#FFFFFF", "theme.bar.buttons.battery.background": "#090909", "theme.bar.buttons.systray.background": "#090909", "theme.bar.buttons.bluetooth.icon": "#FFFFFF", "theme.bar.buttons.bluetooth.text": "#FFFFFF", "theme.bar.buttons.bluetooth.background": "#090909", "theme.bar.buttons.network.icon": "#FFFFFF", "theme.bar.buttons.network.text": "#FFFFFF", "theme.bar.buttons.network.background": "#090909", "theme.bar.buttons.volume.icon": "#FFFFFF", "theme.bar.buttons.volume.text": "#FFFFFF", "theme.bar.buttons.volume.background": "#090909", "theme.bar.buttons.windowtitle.icon": "#FFFFFF", "theme.bar.buttons.windowtitle.text": "#FFFFFF", "theme.bar.buttons.windowtitle.background": "#090909", "theme.bar.buttons.workspaces.active": "#FFFFFF", "theme.bar.buttons.workspaces.occupied": "#FFFFFF", "theme.bar.buttons.workspaces.available": "#FFFFFF", "theme.bar.buttons.workspaces.hover": "#444444", "theme.bar.buttons.workspaces.background": "#090909", "theme.bar.buttons.dashboard.icon": "#FFFFFF", "theme.bar.buttons.dashboard.background": "#090909", "theme.osd.label": "#FFFFFF", "theme.osd.icon": "#000000", "theme.osd.bar_overflow_color": "#FFFFFF", "theme.osd.bar_empty_color": "#444444", "theme.osd.bar_color": "#FFFFFF", "theme.osd.icon_container": "#FFFFFF", "theme.osd.bar_container": "#000000", "theme.notification.close_button.label": "#000000", "theme.notification.close_button.background": "#FFFFFF", "theme.notification.labelicon": "#FFFFFF", "theme.notification.text": "#FFFFFF", "theme.notification.time": "#CCCCCC", "theme.notification.border": "#444444", "theme.notification.label": "#FFFFFF", "theme.notification.actions.text": "#000000", "theme.notification.actions.background": "#FFFFFF", "theme.notification.background": "#1a1a1a", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.menus.menu.media.card.color": "#1A1A1A", "theme.bar.menus.check_radio_button.background": "#000000", "theme.bar.menus.check_radio_button.active": "#ffffff", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#FFFFFF", "theme.bar.menus.menu.notifications.scrollbar.color": "#FFFFFF", "theme.bar.menus.menu.notifications.pager.label": "#9a9996", "theme.bar.menus.menu.notifications.pager.background": "#000000", "theme.bar.buttons.clock.icon_background": "#FFFFFF", "theme.bar.buttons.modules.ram.icon": "#ffffff", "theme.bar.buttons.modules.storage.icon_background": "#ffffff", "theme.bar.menus.popover.border": "#000000", "theme.bar.buttons.volume.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.restart.text": "#ffffff", "theme.bar.buttons.modules.updates.background": "#090909", "theme.bar.buttons.modules.storage.icon": "#ffffff", "theme.bar.buttons.modules.netstat.background": "#090909", "theme.bar.buttons.modules.weather.icon": "#FFFFFF", "theme.bar.buttons.modules.netstat.text": "#ffffff", "theme.bar.buttons.modules.storage.background": "#090909", "theme.bar.buttons.modules.power.icon": "#ffffff", "theme.bar.buttons.modules.storage.text": "#ffffff", "theme.bar.buttons.modules.cpu.background": "#090909", "theme.bar.menus.menu.power.border.color": "#333333", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.logout.icon": "#000000", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.restart.icon": "#000000", "theme.bar.buttons.modules.cpu.icon": "#ffffff", "theme.bar.buttons.battery.icon_background": "#ffffff", "theme.bar.buttons.modules.kbLayout.icon_background": "#ffffff", "theme.bar.buttons.modules.weather.text": "#FFFFFF", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#000000", "theme.bar.menus.menu.power.buttons.sleep.text": "#ffffff", "theme.bar.buttons.modules.weather.icon_background": "#FFFFFF", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1A1A1A", "theme.bar.buttons.media.icon_background": "#FFFFFF", "theme.bar.menus.menu.power.buttons.logout.background": "#1A1A1A", "theme.bar.buttons.modules.kbLayout.icon": "#ffffff", "theme.bar.buttons.modules.ram.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#FFFFFF", "theme.bar.menus.menu.power.buttons.shutdown.text": "#ffffff", "theme.bar.menus.menu.power.buttons.sleep.background": "#1A1A1A", "theme.bar.buttons.modules.ram.text": "#ffffff", "theme.bar.menus.menu.power.buttons.logout.text": "#ffffff", "theme.bar.buttons.modules.updates.icon_background": "#FFFFFF", "theme.bar.buttons.modules.kbLayout.background": "#090909", "theme.bar.buttons.modules.power.background": "#090909", "theme.bar.buttons.modules.weather.background": "#090909", "theme.bar.buttons.icon_background": "#090909", "theme.bar.menus.menu.power.background.color": "#000000", "theme.bar.buttons.modules.ram.background": "#090909", "theme.bar.buttons.modules.netstat.icon": "#ffffff", "theme.bar.buttons.windowtitle.icon_background": "#FFFFFF", "theme.bar.buttons.modules.cpu.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#ffffff", "theme.bar.buttons.modules.updates.text": "#FFFFFF", "theme.bar.menus.menu.power.buttons.sleep.icon": "#000000", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#1A1A1A", "theme.bar.buttons.modules.updates.icon": "#FFFFFF", "theme.bar.buttons.modules.cpu.text": "#ffffff", "theme.bar.buttons.modules.netstat.icon_background": "#ffffff", "theme.bar.buttons.modules.kbLayout.text": "#ffffff", "theme.bar.buttons.notifications.icon_background": "#FFFFFF", "theme.bar.buttons.modules.power.border": "#ffffff", "theme.bar.buttons.modules.weather.border": "#FFFFFF", "theme.bar.buttons.modules.updates.border": "#FFFFFF", "theme.bar.buttons.modules.kbLayout.border": "#ffffff", "theme.bar.buttons.modules.netstat.border": "#ffffff", "theme.bar.buttons.modules.storage.border": "#ffffff", "theme.bar.buttons.modules.cpu.border": "#ffffff", "theme.bar.buttons.modules.ram.border": "#ffffff", "theme.bar.buttons.notifications.border": "#FFFFFF", "theme.bar.buttons.clock.border": "#FFFFFF", "theme.bar.buttons.battery.border": "#FFFFFF", "theme.bar.buttons.systray.border": "#444444", "theme.bar.buttons.bluetooth.border": "#FFFFFF", "theme.bar.buttons.network.border": "#FFFFFF", "theme.bar.buttons.volume.border": "#FFFFFF", "theme.bar.buttons.media.border": "#FFFFFF", "theme.bar.buttons.windowtitle.border": "#FFFFFF", "theme.bar.buttons.workspaces.border": "#FFFFFF", "theme.bar.buttons.dashboard.border": "#FFFFFF", "theme.bar.buttons.modules.submap.background": "#090909", "theme.bar.buttons.modules.submap.text": "#FFFFFF", "theme.bar.buttons.modules.submap.border": "#FFFFFF", "theme.bar.buttons.modules.submap.icon": "#FFFFFF", "theme.bar.buttons.modules.submap.icon_background": "#090909" } ================================================ FILE: .config/ags/themes/monochrome_split.json ================================================ { "theme.bar.menus.background": "#000000", "theme.bar.background": "#000000", "theme.bar.buttons.media.icon": "#090909", "theme.bar.buttons.media.text": "#FFFFFF", "theme.bar.buttons.icon": "#FFFFFF", "theme.bar.buttons.text": "#FFFFFF", "theme.bar.buttons.hover": "#333333", "theme.bar.buttons.background": "#1A1A1A", "theme.bar.menus.text": "#CCCCCC", "theme.bar.menus.border.color": "#333333", "theme.bar.buttons.media.background": "#090909", "theme.bar.menus.menu.volume.text": "#CCCCCC", "theme.bar.menus.menu.volume.card.color": "#1A1A1A", "theme.bar.menus.menu.volume.label.color": "#FFFFFF", "theme.bar.menus.popover.text": "#FFFFFF", "theme.bar.menus.popover.background": "#000000", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#000000", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#CCCCCC", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#FFFFFF", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#333333", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#000000", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#1A1A1A", "theme.bar.menus.menu.notifications.switch.puck": "#333333", "theme.bar.menus.menu.notifications.switch.disabled": "#333333", "theme.bar.menus.menu.notifications.switch.enabled": "#FFFFFF", "theme.bar.menus.menu.notifications.clear": "#ffffff", "theme.bar.menus.menu.notifications.switch_divider": "#333333", "theme.bar.menus.menu.notifications.border": "#333333", "theme.bar.menus.menu.notifications.card": "#1A1A1A", "theme.bar.menus.menu.notifications.background": "#000000", "theme.bar.menus.menu.notifications.no_notifications_label": "#333333", "theme.bar.menus.menu.notifications.label": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#FFFFFF", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#ffffff", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#333333", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#ffffff", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#ffffff", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#FFFFFF", "theme.bar.menus.menu.dashboard.controls.input.text": "#000000", "theme.bar.menus.menu.dashboard.controls.input.background": "#FFFFFF", "theme.bar.menus.menu.dashboard.controls.volume.text": "#000000", "theme.bar.menus.menu.dashboard.controls.volume.background": "#ffffff", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#000000", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#ffffff", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#000000", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#ffffff", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#000000", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#FFFFFF", "theme.bar.menus.menu.dashboard.controls.disabled": "#333333", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#5CFF5C", "theme.bar.menus.menu.dashboard.shortcuts.text": "#000000", "theme.bar.menus.menu.dashboard.shortcuts.background": "#FFFFFF", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.logout": "#ffffff", "theme.bar.menus.menu.dashboard.powermenu.restart": "#ffffff", "theme.bar.menus.menu.dashboard.profile.name": "#FFFFFF", "theme.bar.menus.menu.dashboard.border.color": "#333333", "theme.bar.menus.menu.dashboard.background.color": "#000000", "theme.bar.menus.menu.dashboard.card.color": "#1A1A1A", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#FFFFFF", "theme.bar.menus.menu.clock.weather.hourly.icon": "#FFFFFF", "theme.bar.menus.menu.clock.weather.hourly.time": "#FFFFFF", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#ffffff", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#ffffff", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#FFFFFF", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#ffffff", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#ffffff", "theme.bar.menus.menu.clock.weather.stats": "#FFFFFF", "theme.bar.menus.menu.clock.weather.status": "#FFFFFF", "theme.bar.menus.menu.clock.weather.temperature": "#CCCCCC", "theme.bar.menus.menu.clock.weather.icon": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.contextdays": "#333333", "theme.bar.menus.menu.clock.calendar.days": "#CCCCCC", "theme.bar.menus.menu.clock.calendar.currentday": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.paginator": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.weekdays": "#FFFFFF", "theme.bar.menus.menu.clock.calendar.yearmonth": "#ffffff", "theme.bar.menus.menu.clock.time.timeperiod": "#ffffff", "theme.bar.menus.menu.clock.time.time": "#FFFFFF", "theme.bar.menus.menu.clock.text": "#CCCCCC", "theme.bar.menus.menu.clock.border.color": "#333333", "theme.bar.menus.menu.clock.background.color": "#000000", "theme.bar.menus.menu.clock.card.color": "#1A1A1A", "theme.bar.menus.menu.battery.slider.puck": "#5e5c64", "theme.bar.menus.menu.battery.slider.backgroundhover": "#5e5c64", "theme.bar.menus.menu.battery.slider.background": "#5e5c64", "theme.bar.menus.menu.battery.slider.primary": "#cccccc", "theme.bar.menus.menu.battery.icons.active": "#ffffff", "theme.bar.menus.menu.battery.icons.passive": "#9a9996", "theme.bar.menus.menu.battery.listitems.active": "#ffffff", "theme.bar.menus.menu.battery.listitems.passive": "#9a9996", "theme.bar.menus.menu.battery.text": "#CCCCCC", "theme.bar.menus.menu.battery.label.color": "#ffffff", "theme.bar.menus.menu.battery.border.color": "#333333", "theme.bar.menus.menu.battery.background.color": "#000000", "theme.bar.menus.menu.battery.card.color": "#111111", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#1A1A1A", "theme.bar.menus.menu.systray.dropdownmenu.text": "#CCCCCC", "theme.bar.menus.menu.systray.dropdownmenu.background": "#000000", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#ffffff", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#9a9996", "theme.bar.menus.menu.bluetooth.icons.active": "#ffffff", "theme.bar.menus.menu.bluetooth.icons.passive": "#77767b", "theme.bar.menus.menu.bluetooth.listitems.active": "#FFFFFF", "theme.bar.menus.menu.bluetooth.listitems.passive": "#77767b", "theme.bar.menus.menu.bluetooth.switch.puck": "#9a9996", "theme.bar.menus.menu.bluetooth.switch.disabled": "#444444", "theme.bar.menus.menu.bluetooth.switch.enabled": "#FFFFFF", "theme.bar.menus.menu.bluetooth.switch_divider": "#444444", "theme.bar.menus.menu.bluetooth.status": "#CCCCCC", "theme.bar.menus.menu.bluetooth.text": "#FFFFFF", "theme.bar.menus.menu.bluetooth.label.color": "#FFFFFF", "theme.bar.menus.menu.bluetooth.border.color": "#444444", "theme.bar.menus.menu.bluetooth.background.color": "#000000", "theme.bar.menus.menu.bluetooth.card.color": "#111111", "theme.bar.menus.menu.network.iconbuttons.active": "#FFFFFF", "theme.bar.menus.menu.network.iconbuttons.passive": "#77767b", "theme.bar.menus.menu.network.icons.active": "#FFFFFF", "theme.bar.menus.menu.network.icons.passive": "#77767b", "theme.bar.menus.menu.network.listitems.active": "#FFFFFF", "theme.bar.menus.menu.network.listitems.passive": "#77767b", "theme.bar.menus.menu.network.status.color": "#CCCCCC", "theme.bar.menus.menu.network.text": "#FFFFFF", "theme.bar.menus.menu.network.label.color": "#FFFFFF", "theme.bar.menus.menu.network.border.color": "#444444", "theme.bar.menus.menu.network.background.color": "#000000", "theme.bar.menus.menu.network.card.color": "#111111", "theme.bar.menus.menu.volume.input_slider.puck": "#CCCCCC", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#444444", "theme.bar.menus.menu.volume.input_slider.background": "#77767b", "theme.bar.menus.menu.volume.input_slider.primary": "#FFFFFF", "theme.bar.menus.menu.volume.audio_slider.puck": "#CCCCCC", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#444444", "theme.bar.menus.menu.volume.audio_slider.background": "#77767b", "theme.bar.menus.menu.volume.audio_slider.primary": "#FFFFFF", "theme.bar.menus.menu.volume.icons.active": "#FFFFFF", "theme.bar.menus.menu.volume.icons.passive": "#77767b", "theme.bar.menus.menu.volume.iconbutton.active": "#FFFFFF", "theme.bar.menus.menu.volume.iconbutton.passive": "#77767b", "theme.bar.menus.menu.volume.listitems.active": "#FFFFFF", "theme.bar.menus.menu.volume.listitems.passive": "#77767b", "theme.bar.menus.menu.volume.border.color": "#444444", "theme.bar.menus.menu.volume.background.color": "#000000", "theme.bar.menus.menu.media.slider.puck": "#CCCCCC", "theme.bar.menus.menu.media.slider.backgroundhover": "#444444", "theme.bar.menus.menu.media.slider.background": "#77767b", "theme.bar.menus.menu.media.slider.primary": "#FFFFFF", "theme.bar.menus.menu.media.buttons.text": "#000000", "theme.bar.menus.menu.media.buttons.background": "#FFFFFF", "theme.bar.menus.menu.media.buttons.enabled": "#FFFFFF", "theme.bar.menus.menu.media.buttons.inactive": "#5e5c64", "theme.bar.menus.menu.media.border.color": "#444444", "theme.bar.menus.menu.media.background.color": "#000000", "theme.bar.menus.menu.media.album": "#FFFFFF", "theme.bar.menus.menu.media.artist": "#FFFFFF", "theme.bar.menus.menu.media.song": "#FFFFFF", "theme.bar.menus.tooltip.text": "#FFFFFF", "theme.bar.menus.tooltip.background": "#000000", "theme.bar.menus.dropdownmenu.divider": "#111111", "theme.bar.menus.dropdownmenu.text": "#FFFFFF", "theme.bar.menus.dropdownmenu.background": "#000000", "theme.bar.menus.slider.puck": "#CCCCCC", "theme.bar.menus.slider.backgroundhover": "#444444", "theme.bar.menus.slider.background": "#CCCCCC", "theme.bar.menus.slider.primary": "#FFFFFF", "theme.bar.menus.progressbar.background": "#444444", "theme.bar.menus.progressbar.foreground": "#FFFFFF", "theme.bar.menus.iconbuttons.active": "#FFFFFF", "theme.bar.menus.iconbuttons.passive": "#FFFFFF", "theme.bar.menus.buttons.text": "#000000", "theme.bar.menus.buttons.disabled": "#CCCCCC", "theme.bar.menus.buttons.active": "#FFFFFF", "theme.bar.menus.buttons.default": "#FFFFFF", "theme.bar.menus.switch.puck": "#CCCCCC", "theme.bar.menus.switch.disabled": "#444444", "theme.bar.menus.switch.enabled": "#FFFFFF", "theme.bar.menus.icons.active": "#FFFFFF", "theme.bar.menus.icons.passive": "#CCCCCC", "theme.bar.menus.listitems.active": "#ffffff", "theme.bar.menus.listitems.passive": "#FFFFFF", "theme.bar.menus.label": "#FFFFFF", "theme.bar.menus.feinttext": "#444444", "theme.bar.menus.dimtext": "#CCCCCC", "theme.bar.menus.cards": "#111111", "theme.bar.buttons.notifications.total": "#FFFFFF", "theme.bar.buttons.notifications.icon": "#090909", "theme.bar.buttons.notifications.background": "#090909", "theme.bar.buttons.clock.icon": "#000000", "theme.bar.buttons.clock.text": "#FFFFFF", "theme.bar.buttons.clock.background": "#090909", "theme.bar.buttons.battery.icon": "#090909", "theme.bar.buttons.battery.text": "#FFFFFF", "theme.bar.buttons.battery.background": "#090909", "theme.bar.buttons.systray.background": "#090909", "theme.bar.buttons.bluetooth.icon": "#090909", "theme.bar.buttons.bluetooth.text": "#FFFFFF", "theme.bar.buttons.bluetooth.background": "#090909", "theme.bar.buttons.network.icon": "#090909", "theme.bar.buttons.network.text": "#FFFFFF", "theme.bar.buttons.network.background": "#090909", "theme.bar.buttons.volume.icon": "#090909", "theme.bar.buttons.volume.text": "#FFFFFF", "theme.bar.buttons.volume.background": "#090909", "theme.bar.buttons.windowtitle.icon": "#090909", "theme.bar.buttons.windowtitle.text": "#FFFFFF", "theme.bar.buttons.windowtitle.background": "#090909", "theme.bar.buttons.workspaces.active": "#FFFFFF", "theme.bar.buttons.workspaces.occupied": "#FFFFFF", "theme.bar.buttons.workspaces.available": "#FFFFFF", "theme.bar.buttons.workspaces.hover": "#444444", "theme.bar.buttons.workspaces.background": "#090909", "theme.bar.buttons.dashboard.icon": "#000000", "theme.bar.buttons.dashboard.background": "#ffffff", "theme.osd.label": "#FFFFFF", "theme.osd.icon": "#000000", "theme.osd.bar_overflow_color": "#FFFFFF", "theme.osd.bar_empty_color": "#444444", "theme.osd.bar_color": "#FFFFFF", "theme.osd.icon_container": "#FFFFFF", "theme.osd.bar_container": "#000000", "theme.notification.close_button.label": "#000000", "theme.notification.close_button.background": "#FFFFFF", "theme.notification.labelicon": "#FFFFFF", "theme.notification.text": "#FFFFFF", "theme.notification.time": "#CCCCCC", "theme.notification.border": "#444444", "theme.notification.label": "#FFFFFF", "theme.notification.actions.text": "#000000", "theme.notification.actions.background": "#FFFFFF", "theme.notification.background": "#1a1a1a", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.menus.menu.media.card.color": "#1A1A1A", "theme.bar.menus.check_radio_button.background": "#000000", "theme.bar.menus.check_radio_button.active": "#ffffff", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#ffffff", "theme.bar.buttons.network.icon_background": "#ffffff", "theme.bar.buttons.bluetooth.icon_background": "#ffffff", "theme.bar.buttons.windowtitle.icon_background": "#ffffff", "theme.bar.buttons.media.icon_background": "#ffffff", "theme.bar.buttons.notifications.icon_background": "#ffffff", "theme.bar.buttons.battery.icon_background": "#ffffff", "theme.bar.buttons.clock.icon_background": "#ffffff", "theme.bar.menus.menu.notifications.pager.button": "#FFFFFF", "theme.bar.menus.menu.notifications.scrollbar.color": "#FFFFFF", "theme.bar.menus.menu.notifications.pager.label": "#9a9996", "theme.bar.menus.menu.notifications.pager.background": "#000000", "theme.bar.buttons.modules.ram.icon": "#21252b", "theme.bar.buttons.modules.storage.icon_background": "#ffffff", "theme.bar.menus.popover.border": "#000000", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.restart.text": "#ffffff", "theme.bar.buttons.modules.updates.background": "#090909", "theme.bar.buttons.modules.storage.icon": "#21252b", "theme.bar.buttons.modules.netstat.background": "#090909", "theme.bar.buttons.modules.weather.icon": "#090909", "theme.bar.buttons.modules.netstat.text": "#ffffff", "theme.bar.buttons.modules.storage.background": "#090909", "theme.bar.buttons.modules.power.icon": "#21252b", "theme.bar.buttons.modules.storage.text": "#ffffff", "theme.bar.buttons.modules.cpu.background": "#090909", "theme.bar.menus.menu.power.border.color": "#333333", "theme.bar.buttons.modules.power.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.logout.icon": "#000000", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.restart.icon": "#000000", "theme.bar.buttons.modules.cpu.icon": "#21252b", "theme.bar.buttons.modules.kbLayout.icon_background": "#ffffff", "theme.bar.buttons.modules.weather.text": "#FFFFFF", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#000000", "theme.bar.menus.menu.power.buttons.sleep.text": "#ffffff", "theme.bar.buttons.modules.weather.icon_background": "#FFFFFF", "theme.bar.menus.menu.power.buttons.shutdown.background": "#1A1A1A", "theme.bar.menus.menu.power.buttons.logout.background": "#1A1A1A", "theme.bar.buttons.modules.kbLayout.icon": "#21252b", "theme.bar.buttons.modules.ram.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#FFFFFF", "theme.bar.menus.menu.power.buttons.shutdown.text": "#ffffff", "theme.bar.menus.menu.power.buttons.sleep.background": "#1A1A1A", "theme.bar.buttons.modules.ram.text": "#ffffff", "theme.bar.menus.menu.power.buttons.logout.text": "#ffffff", "theme.bar.buttons.modules.updates.icon_background": "#FFFFFF", "theme.bar.buttons.modules.kbLayout.background": "#090909", "theme.bar.buttons.modules.power.background": "#090909", "theme.bar.buttons.modules.weather.background": "#090909", "theme.bar.menus.menu.power.background.color": "#000000", "theme.bar.buttons.modules.ram.background": "#090909", "theme.bar.buttons.modules.netstat.icon": "#21252b", "theme.bar.buttons.modules.cpu.icon_background": "#ffffff", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#ffffff", "theme.bar.buttons.modules.updates.text": "#FFFFFF", "theme.bar.menus.menu.power.buttons.sleep.icon": "#000000", "theme.bar.menus.menu.power.buttons.restart.background": "#1A1A1A", "theme.bar.buttons.modules.updates.icon": "#21252b", "theme.bar.buttons.modules.cpu.text": "#ffffff", "theme.bar.buttons.modules.netstat.icon_background": "#ffffff", "theme.bar.buttons.modules.kbLayout.text": "#ffffff", "theme.bar.buttons.modules.power.border": "#ffffff", "theme.bar.buttons.modules.weather.border": "#FFFFFF", "theme.bar.buttons.modules.updates.border": "#FFFFFF", "theme.bar.buttons.modules.kbLayout.border": "#ffffff", "theme.bar.buttons.modules.netstat.border": "#ffffff", "theme.bar.buttons.modules.storage.border": "#ffffff", "theme.bar.buttons.modules.cpu.border": "#ffffff", "theme.bar.buttons.modules.ram.border": "#ffffff", "theme.bar.buttons.notifications.border": "#FFFFFF", "theme.bar.buttons.clock.border": "#FFFFFF", "theme.bar.buttons.battery.border": "#FFFFFF", "theme.bar.buttons.systray.border": "#444444", "theme.bar.buttons.bluetooth.border": "#FFFFFF", "theme.bar.buttons.network.border": "#FFFFFF", "theme.bar.buttons.volume.border": "#FFFFFF", "theme.bar.buttons.media.border": "#FFFFFF", "theme.bar.buttons.windowtitle.border": "#FFFFFF", "theme.bar.buttons.workspaces.border": "#FFFFFF", "theme.bar.buttons.dashboard.border": "#FFFFFF", "theme.bar.buttons.modules.submap.background": "#090909", "theme.bar.buttons.modules.submap.text": "#FFFFFF", "theme.bar.buttons.modules.submap.border": "#FFFFFF", "theme.bar.buttons.modules.submap.icon": "#21252b", "theme.bar.buttons.modules.submap.icon_background": "#FFFFFF" } ================================================ FILE: .config/ags/themes/nord.json ================================================ { "theme.bar.menus.background": "#2e3440", "theme.bar.background": "#2e3440", "theme.bar.buttons.media.icon": "#88c0d0", "theme.bar.buttons.media.text": "#88c0d0", "theme.bar.buttons.icon": "#88c0d0", "theme.bar.buttons.text": "#88c0d0", "theme.bar.buttons.hover": "#434c53", "theme.bar.buttons.background": "#3b4252", "theme.bar.menus.text": "#d8dee9", "theme.bar.menus.border.color": "#434c53", "theme.bar.buttons.media.background": "#3b4252", "theme.bar.menus.menu.volume.text": "#d8dee9", "theme.bar.menus.menu.volume.card.color": "#3b4252", "theme.bar.menus.menu.volume.label.color": "#81a1c1", "theme.bar.menus.popover.text": "#88c0d0", "theme.bar.menus.popover.background": "#2e3440", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#2e3440", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#d8dee9", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#88c0d0", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#434c53", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#2e3440", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#3b4252", "theme.bar.menus.menu.notifications.switch.puck": "#434c53", "theme.bar.menus.menu.notifications.switch.disabled": "#434c53", "theme.bar.menus.menu.notifications.switch.enabled": "#88c0d0", "theme.bar.menus.menu.notifications.clear": "#8fbcbb", "theme.bar.menus.menu.notifications.switch_divider": "#434c53", "theme.bar.menus.menu.notifications.border": "#434c53", "theme.bar.menus.menu.notifications.card": "#3b4252", "theme.bar.menus.menu.notifications.background": "#2e3440", "theme.bar.menus.menu.notifications.no_notifications_label": "#434c53", "theme.bar.menus.menu.notifications.label": "#88c0d0", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#434c53", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#88c0d0", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#88c0d0", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8fbcbb", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#81a1c1", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#81a1c1", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#8fbcbb", "theme.bar.menus.menu.dashboard.controls.input.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.input.background": "#8fbcbb", "theme.bar.menus.menu.dashboard.controls.volume.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.volume.background": "#81a1c1", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#81a1c1", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#88c0d0", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#88c0d0", "theme.bar.menus.menu.dashboard.controls.disabled": "#434c53", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#8fbcbb", "theme.bar.menus.menu.dashboard.shortcuts.text": "#2e3440", "theme.bar.menus.menu.dashboard.shortcuts.background": "#88c0d0", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#88c0d0", "theme.bar.menus.menu.dashboard.powermenu.logout": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.restart": "#81a1c1", "theme.bar.menus.menu.dashboard.profile.name": "#8fbcbb", "theme.bar.menus.menu.dashboard.border.color": "#434c53", "theme.bar.menus.menu.dashboard.background.color": "#2e3440", "theme.bar.menus.menu.dashboard.card.color": "#3b4252", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#8fbcbb", "theme.bar.menus.menu.clock.weather.hourly.icon": "#8fbcbb", "theme.bar.menus.menu.clock.weather.hourly.time": "#8fbcbb", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#88c0d0", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#88c0d0", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#88c0d0", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#81a1c1", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#8fbcbb", "theme.bar.menus.menu.clock.weather.stats": "#8fbcbb", "theme.bar.menus.menu.clock.weather.status": "#8fbcbb", "theme.bar.menus.menu.clock.weather.temperature": "#d8dee9", "theme.bar.menus.menu.clock.weather.icon": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.contextdays": "#434c53", "theme.bar.menus.menu.clock.calendar.days": "#d8dee9", "theme.bar.menus.menu.clock.calendar.currentday": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.paginator": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.weekdays": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8fbcbb", "theme.bar.menus.menu.clock.time.timeperiod": "#8fbcbb", "theme.bar.menus.menu.clock.time.time": "#8fbcbb", "theme.bar.menus.menu.clock.text": "#d8dee9", "theme.bar.menus.menu.clock.border.color": "#434c53", "theme.bar.menus.menu.clock.background.color": "#2e3440", "theme.bar.menus.menu.clock.card.color": "#3b4252", "theme.bar.menus.menu.battery.slider.puck": "#4c566a", "theme.bar.menus.menu.battery.slider.backgroundhover": "#434c53", "theme.bar.menus.menu.battery.slider.background": "#434c53", "theme.bar.menus.menu.battery.slider.primary": "#81a1c1", "theme.bar.menus.menu.battery.icons.active": "#81a1c1", "theme.bar.menus.menu.battery.icons.passive": "#5e81ac", "theme.bar.menus.menu.battery.listitems.active": "#81a1c1", "theme.bar.menus.menu.battery.listitems.passive": "#d8dee9", "theme.bar.menus.menu.battery.text": "#d8dee9", "theme.bar.menus.menu.battery.label.color": "#81a1c1", "theme.bar.menus.menu.battery.border.color": "#434c53", "theme.bar.menus.menu.battery.background.color": "#2e3440", "theme.bar.menus.menu.battery.card.color": "#3b4252", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#3b4252", "theme.bar.menus.menu.systray.dropdownmenu.text": "#d8dee9", "theme.bar.menus.menu.systray.dropdownmenu.background": "#2e3440", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#88c0d0", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#d8dee9", "theme.bar.menus.menu.bluetooth.icons.active": "#88c0d0", "theme.bar.menus.menu.bluetooth.icons.passive": "#5e81ac", "theme.bar.menus.menu.bluetooth.listitems.active": "#88c0d0", "theme.bar.menus.menu.bluetooth.listitems.passive": "#d8dee9", "theme.bar.menus.menu.bluetooth.switch.puck": "#434c53", "theme.bar.menus.menu.bluetooth.switch.disabled": "#434c53", "theme.bar.menus.menu.bluetooth.switch.enabled": "#88c0d0", "theme.bar.menus.menu.bluetooth.switch_divider": "#434c53", "theme.bar.menus.menu.bluetooth.status": "#4c566a", "theme.bar.menus.menu.bluetooth.text": "#d8dee9", "theme.bar.menus.menu.bluetooth.label.color": "#88c0d0", "theme.bar.menus.menu.bluetooth.border.color": "#434c53", "theme.bar.menus.menu.bluetooth.background.color": "#2e3440", "theme.bar.menus.menu.bluetooth.card.color": "#3b4252", "theme.bar.menus.menu.network.iconbuttons.active": "#88c0d0", "theme.bar.menus.menu.network.iconbuttons.passive": "#d8dee9", "theme.bar.menus.menu.network.icons.active": "#88c0d0", "theme.bar.menus.menu.network.icons.passive": "#5e81ac", "theme.bar.menus.menu.network.listitems.active": "#88c0d0", "theme.bar.menus.menu.network.listitems.passive": "#d8dee9", "theme.bar.menus.menu.network.status.color": "#4c566a", "theme.bar.menus.menu.network.text": "#d8dee9", "theme.bar.menus.menu.network.label.color": "#88c0d0", "theme.bar.menus.menu.network.border.color": "#434c53", "theme.bar.menus.menu.network.background.color": "#2e3440", "theme.bar.menus.menu.network.card.color": "#3b4252", "theme.bar.menus.menu.volume.input_slider.puck": "#434c53", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#434c53", "theme.bar.menus.menu.volume.input_slider.background": "#434c53", "theme.bar.menus.menu.volume.input_slider.primary": "#81a1c1", "theme.bar.menus.menu.volume.audio_slider.puck": "#434c53", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#434c53", "theme.bar.menus.menu.volume.audio_slider.background": "#434c53", "theme.bar.menus.menu.volume.audio_slider.primary": "#81a1c1", "theme.bar.menus.menu.volume.icons.active": "#81a1c1", "theme.bar.menus.menu.volume.icons.passive": "#5e81ac", "theme.bar.menus.menu.volume.iconbutton.active": "#81a1c1", "theme.bar.menus.menu.volume.iconbutton.passive": "#d8dee9", "theme.bar.menus.menu.volume.listitems.active": "#81a1c1", "theme.bar.menus.menu.volume.listitems.passive": "#d8dee9", "theme.bar.menus.menu.volume.border.color": "#434c53", "theme.bar.menus.menu.volume.background.color": "#2e3440", "theme.bar.menus.menu.media.slider.puck": "#4c566a", "theme.bar.menus.menu.media.slider.backgroundhover": "#434c53", "theme.bar.menus.menu.media.slider.background": "#434c53", "theme.bar.menus.menu.media.slider.primary": "#8fbcbb", "theme.bar.menus.menu.media.buttons.text": "#2e3440", "theme.bar.menus.menu.media.buttons.background": "#88c0d0", "theme.bar.menus.menu.media.buttons.enabled": "#8fbcbb", "theme.bar.menus.menu.media.buttons.inactive": "#434c53", "theme.bar.menus.menu.media.border.color": "#434c53", "theme.bar.menus.menu.media.background.color": "#2e3440", "theme.bar.menus.menu.media.album": "#8fbcbb", "theme.bar.menus.menu.media.artist": "#8fbcbb", "theme.bar.menus.menu.media.song": "#88c0d0", "theme.bar.menus.tooltip.text": "#d8dee9", "theme.bar.menus.tooltip.background": "#2e3440", "theme.bar.menus.dropdownmenu.divider": "#3b4252", "theme.bar.menus.dropdownmenu.text": "#d8dee9", "theme.bar.menus.dropdownmenu.background": "#2e3440", "theme.bar.menus.slider.puck": "#4c566a", "theme.bar.menus.slider.backgroundhover": "#434c53", "theme.bar.menus.slider.background": "#434c53", "theme.bar.menus.slider.primary": "#88c0d0", "theme.bar.menus.progressbar.background": "#434c53", "theme.bar.menus.progressbar.foreground": "#88c0d0", "theme.bar.menus.iconbuttons.active": "#88c0d0", "theme.bar.menus.iconbuttons.passive": "#d8dee9", "theme.bar.menus.buttons.text": "#2e3440", "theme.bar.menus.buttons.disabled": "#434c53", "theme.bar.menus.buttons.active": "#8fbcbb", "theme.bar.menus.buttons.default": "#88c0d0", "theme.bar.menus.switch.puck": "#434c53", "theme.bar.menus.switch.disabled": "#434c53", "theme.bar.menus.switch.enabled": "#88c0d0", "theme.bar.menus.icons.active": "#88c0d0", "theme.bar.menus.icons.passive": "#434c53", "theme.bar.menus.listitems.active": "#88c0d0", "theme.bar.menus.listitems.passive": "#d8dee9", "theme.bar.menus.label": "#88c0d0", "theme.bar.menus.feinttext": "#434c53", "theme.bar.menus.dimtext": "#6272a4", "theme.bar.menus.cards": "#3b4252", "theme.bar.buttons.notifications.total": "#88c0d0", "theme.bar.buttons.notifications.icon": "#88c0d0", "theme.bar.buttons.notifications.background": "#3b4252", "theme.bar.buttons.clock.icon": "#8fbcbb", "theme.bar.buttons.clock.text": "#8fbcbb", "theme.bar.buttons.clock.background": "#3b4252", "theme.bar.buttons.battery.icon": "#81a1c1", "theme.bar.buttons.battery.text": "#81a1c1", "theme.bar.buttons.battery.background": "#3b4252", "theme.bar.buttons.systray.background": "#3b4252", "theme.bar.buttons.bluetooth.icon": "#88c0d0", "theme.bar.buttons.bluetooth.text": "#88c0d0", "theme.bar.buttons.bluetooth.background": "#3b4252", "theme.bar.buttons.network.icon": "#88c0d0", "theme.bar.buttons.network.text": "#88c0d0", "theme.bar.buttons.network.background": "#3b4252", "theme.bar.buttons.volume.icon": "#81a1c1", "theme.bar.buttons.volume.text": "#81a1c1", "theme.bar.buttons.volume.background": "#3b4252", "theme.bar.buttons.windowtitle.icon": "#8fbcbb", "theme.bar.buttons.windowtitle.text": "#8fbcbb", "theme.bar.buttons.windowtitle.background": "#3b4252", "theme.bar.buttons.workspaces.active": "#8fbcbb", "theme.bar.buttons.workspaces.occupied": "#81a1c1", "theme.bar.buttons.workspaces.available": "#88c0d0", "theme.bar.buttons.workspaces.hover": "#434c53", "theme.bar.buttons.workspaces.background": "#3b4252", "theme.bar.buttons.dashboard.icon": "#81a1c1", "theme.bar.buttons.dashboard.background": "#3b4252", "theme.osd.label": "#88c0d0", "theme.osd.icon": "#2e3440", "theme.osd.bar_overflow_color": "#8fbcbb", "theme.osd.bar_empty_color": "#434c53", "theme.osd.bar_color": "#88c0d0", "theme.osd.icon_container": "#88c0d0", "theme.osd.bar_container": "#2e3440", "theme.notification.close_button.label": "#2e3440", "theme.notification.close_button.background": "#8fbcbb", "theme.notification.labelicon": "#88c0d0", "theme.notification.text": "#d8dee9", "theme.notification.time": "#4c566a", "theme.notification.border": "#434c53", "theme.notification.label": "#88c0d0", "theme.notification.actions.text": "#2e3440", "theme.notification.actions.background": "#88c0d0", "theme.notification.background": "#2e3440", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.menus.menu.media.card.color": "#3b4252", "theme.bar.menus.check_radio_button.background": "#2e3440", "theme.bar.menus.check_radio_button.active": "#88c0d0", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#88c0d0", "theme.bar.menus.menu.notifications.scrollbar.color": "#88c0d0", "theme.bar.menus.menu.notifications.pager.label": "#5e81ac", "theme.bar.menus.menu.notifications.pager.background": "#2e3440", "theme.bar.buttons.clock.icon_background": "#8fbcbb", "theme.bar.buttons.modules.ram.icon": "#81a1c1", "theme.bar.buttons.modules.storage.icon_background": "#8fbcbb", "theme.bar.menus.popover.border": "#2e3440", "theme.bar.buttons.volume.icon_background": "#81a1c1", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#88c0d0", "theme.bar.menus.menu.power.buttons.restart.text": "#81a1c1", "theme.bar.buttons.modules.updates.background": "#3b4252", "theme.bar.buttons.modules.storage.icon": "#8fbcbb", "theme.bar.buttons.modules.netstat.background": "#3b4252", "theme.bar.buttons.modules.weather.icon": "#88c0d0", "theme.bar.buttons.modules.netstat.text": "#8fbcbb", "theme.bar.buttons.modules.storage.background": "#3b4252", "theme.bar.buttons.modules.power.icon": "#8fbcbb", "theme.bar.buttons.modules.storage.text": "#8fbcbb", "theme.bar.buttons.modules.cpu.background": "#3b4252", "theme.bar.menus.menu.power.border.color": "#434c53", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#8fbcbb", "theme.bar.menus.menu.power.buttons.logout.icon": "#2e3440", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#81a1c1", "theme.bar.menus.menu.power.buttons.restart.icon": "#2e3440", "theme.bar.buttons.modules.cpu.icon": "#8fbcbb", "theme.bar.buttons.battery.icon_background": "#81a1c1", "theme.bar.buttons.modules.kbLayout.icon_background": "#88c0d0", "theme.bar.buttons.modules.weather.text": "#88c0d0", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#2e3440", "theme.bar.menus.menu.power.buttons.sleep.text": "#88c0d0", "theme.bar.buttons.modules.weather.icon_background": "#88c0d0", "theme.bar.menus.menu.power.buttons.shutdown.background": "#3b4252", "theme.bar.buttons.media.icon_background": "#88c0d0", "theme.bar.menus.menu.power.buttons.logout.background": "#3b4252", "theme.bar.buttons.modules.kbLayout.icon": "#88c0d0", "theme.bar.buttons.modules.ram.icon_background": "#81a1c1", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#8fbcbb", "theme.bar.menus.menu.power.buttons.shutdown.text": "#8fbcbb", "theme.bar.menus.menu.power.buttons.sleep.background": "#3b4252", "theme.bar.buttons.modules.ram.text": "#81a1c1", "theme.bar.menus.menu.power.buttons.logout.text": "#8fbcbb", "theme.bar.buttons.modules.updates.icon_background": "#88c0d0", "theme.bar.buttons.modules.kbLayout.background": "#3b4252", "theme.bar.buttons.modules.power.background": "#3b4252", "theme.bar.buttons.modules.weather.background": "#3b4252", "theme.bar.buttons.icon_background": "#3b4252", "theme.bar.menus.menu.power.background.color": "#2e3440", "theme.bar.buttons.modules.ram.background": "#3b4252", "theme.bar.buttons.modules.netstat.icon": "#8fbcbb", "theme.bar.buttons.windowtitle.icon_background": "#8fbcbb", "theme.bar.buttons.modules.cpu.icon_background": "#8fbcbb", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#8fbcbb", "theme.bar.buttons.modules.updates.text": "#88c0d0", "theme.bar.menus.menu.power.buttons.sleep.icon": "#2e3440", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#3b4252", "theme.bar.buttons.modules.updates.icon": "#88c0d0", "theme.bar.buttons.modules.cpu.text": "#8fbcbb", "theme.bar.buttons.modules.netstat.icon_background": "#8fbcbb", "theme.bar.buttons.modules.kbLayout.text": "#88c0d0", "theme.bar.buttons.notifications.icon_background": "#88c0d0", "theme.bar.buttons.modules.power.border": "#8fbcbb", "theme.bar.buttons.modules.weather.border": "#88c0d0", "theme.bar.buttons.modules.updates.border": "#88c0d0", "theme.bar.buttons.modules.kbLayout.border": "#88c0d0", "theme.bar.buttons.modules.netstat.border": "#8fbcbb", "theme.bar.buttons.modules.storage.border": "#8fbcbb", "theme.bar.buttons.modules.cpu.border": "#8fbcbb", "theme.bar.buttons.modules.ram.border": "#81a1c1", "theme.bar.buttons.notifications.border": "#88c0d0", "theme.bar.buttons.clock.border": "#8fbcbb", "theme.bar.buttons.battery.border": "#81a1c1", "theme.bar.buttons.systray.border": "#434c53", "theme.bar.buttons.bluetooth.border": "#88c0d0", "theme.bar.buttons.network.border": "#88c0d0", "theme.bar.buttons.volume.border": "#81a1c1", "theme.bar.buttons.media.border": "#88c0d0", "theme.bar.buttons.windowtitle.border": "#8fbcbb", "theme.bar.buttons.workspaces.border": "#2e3440", "theme.bar.buttons.dashboard.border": "#81a1c1", "theme.bar.buttons.modules.submap.background": "#3b4252", "theme.bar.buttons.modules.submap.text": "#8fbcbb", "theme.bar.buttons.modules.submap.border": "#8fbcbb", "theme.bar.buttons.modules.submap.icon": "#8fbcbb", "theme.bar.buttons.modules.submap.icon_background": "#3b4252" } ================================================ FILE: .config/ags/themes/nord_split.json ================================================ { "theme.bar.menus.background": "#2e3440", "theme.bar.background": "#2e3440", "theme.bar.buttons.media.icon": "#3b4252", "theme.bar.buttons.media.text": "#88c0d0", "theme.bar.buttons.icon": "#88c0d0", "theme.bar.buttons.text": "#88c0d0", "theme.bar.buttons.hover": "#434c53", "theme.bar.buttons.background": "#3b4252", "theme.bar.menus.text": "#d8dee9", "theme.bar.menus.border.color": "#434c53", "theme.bar.buttons.media.background": "#3b4252", "theme.bar.menus.menu.volume.text": "#d8dee9", "theme.bar.menus.menu.volume.card.color": "#3b4252", "theme.bar.menus.menu.volume.label.color": "#81a1c1", "theme.bar.menus.popover.text": "#88c0d0", "theme.bar.menus.popover.background": "#2e3440", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#2e3440", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#d8dee9", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#88c0d0", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#434c53", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#2e3440", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#3b4252", "theme.bar.menus.menu.notifications.switch.puck": "#434c53", "theme.bar.menus.menu.notifications.switch.disabled": "#434c53", "theme.bar.menus.menu.notifications.switch.enabled": "#88c0d0", "theme.bar.menus.menu.notifications.clear": "#8fbcbb", "theme.bar.menus.menu.notifications.switch_divider": "#434c53", "theme.bar.menus.menu.notifications.border": "#434c53", "theme.bar.menus.menu.notifications.card": "#3b4252", "theme.bar.menus.menu.notifications.background": "#2e3440", "theme.bar.menus.menu.notifications.no_notifications_label": "#434c53", "theme.bar.menus.menu.notifications.label": "#88c0d0", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#8fbcbb", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#81a1c1", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#434c53", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#88c0d0", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#88c0d0", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#8fbcbb", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#81a1c1", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#81a1c1", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#8fbcbb", "theme.bar.menus.menu.dashboard.controls.input.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.input.background": "#8fbcbb", "theme.bar.menus.menu.dashboard.controls.volume.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.volume.background": "#81a1c1", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#81a1c1", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#88c0d0", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#2e3440", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#88c0d0", "theme.bar.menus.menu.dashboard.controls.disabled": "#434c53", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#8fbcbb", "theme.bar.menus.menu.dashboard.shortcuts.text": "#2e3440", "theme.bar.menus.menu.dashboard.shortcuts.background": "#88c0d0", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#88c0d0", "theme.bar.menus.menu.dashboard.powermenu.logout": "#8fbcbb", "theme.bar.menus.menu.dashboard.powermenu.restart": "#81a1c1", "theme.bar.menus.menu.dashboard.profile.name": "#8fbcbb", "theme.bar.menus.menu.dashboard.border.color": "#434c53", "theme.bar.menus.menu.dashboard.background.color": "#2e3440", "theme.bar.menus.menu.dashboard.card.color": "#3b4252", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#8fbcbb", "theme.bar.menus.menu.clock.weather.hourly.icon": "#8fbcbb", "theme.bar.menus.menu.clock.weather.hourly.time": "#8fbcbb", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#88c0d0", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#88c0d0", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#88c0d0", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#81a1c1", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#8fbcbb", "theme.bar.menus.menu.clock.weather.stats": "#8fbcbb", "theme.bar.menus.menu.clock.weather.status": "#8fbcbb", "theme.bar.menus.menu.clock.weather.temperature": "#d8dee9", "theme.bar.menus.menu.clock.weather.icon": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.contextdays": "#434c53", "theme.bar.menus.menu.clock.calendar.days": "#d8dee9", "theme.bar.menus.menu.clock.calendar.currentday": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.paginator": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.weekdays": "#8fbcbb", "theme.bar.menus.menu.clock.calendar.yearmonth": "#8fbcbb", "theme.bar.menus.menu.clock.time.timeperiod": "#8fbcbb", "theme.bar.menus.menu.clock.time.time": "#8fbcbb", "theme.bar.menus.menu.clock.text": "#d8dee9", "theme.bar.menus.menu.clock.border.color": "#434c53", "theme.bar.menus.menu.clock.background.color": "#2e3440", "theme.bar.menus.menu.clock.card.color": "#3b4252", "theme.bar.menus.menu.battery.slider.puck": "#4c566a", "theme.bar.menus.menu.battery.slider.backgroundhover": "#434c53", "theme.bar.menus.menu.battery.slider.background": "#434c53", "theme.bar.menus.menu.battery.slider.primary": "#81a1c1", "theme.bar.menus.menu.battery.icons.active": "#81a1c1", "theme.bar.menus.menu.battery.icons.passive": "#5e81ac", "theme.bar.menus.menu.battery.listitems.active": "#81a1c1", "theme.bar.menus.menu.battery.listitems.passive": "#d8dee9", "theme.bar.menus.menu.battery.text": "#d8dee9", "theme.bar.menus.menu.battery.label.color": "#81a1c1", "theme.bar.menus.menu.battery.border.color": "#434c53", "theme.bar.menus.menu.battery.background.color": "#2e3440", "theme.bar.menus.menu.battery.card.color": "#3b4252", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#3b4252", "theme.bar.menus.menu.systray.dropdownmenu.text": "#d8dee9", "theme.bar.menus.menu.systray.dropdownmenu.background": "#2e3440", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#88c0d0", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#d8dee9", "theme.bar.menus.menu.bluetooth.icons.active": "#88c0d0", "theme.bar.menus.menu.bluetooth.icons.passive": "#5e81ac", "theme.bar.menus.menu.bluetooth.listitems.active": "#88c0d0", "theme.bar.menus.menu.bluetooth.listitems.passive": "#d8dee9", "theme.bar.menus.menu.bluetooth.switch.puck": "#434c53", "theme.bar.menus.menu.bluetooth.switch.disabled": "#434c53", "theme.bar.menus.menu.bluetooth.switch.enabled": "#88c0d0", "theme.bar.menus.menu.bluetooth.switch_divider": "#434c53", "theme.bar.menus.menu.bluetooth.status": "#4c566a", "theme.bar.menus.menu.bluetooth.text": "#d8dee9", "theme.bar.menus.menu.bluetooth.label.color": "#88c0d0", "theme.bar.menus.menu.bluetooth.border.color": "#434c53", "theme.bar.menus.menu.bluetooth.background.color": "#2e3440", "theme.bar.menus.menu.bluetooth.card.color": "#3b4252", "theme.bar.menus.menu.network.iconbuttons.active": "#88c0d0", "theme.bar.menus.menu.network.iconbuttons.passive": "#d8dee9", "theme.bar.menus.menu.network.icons.active": "#88c0d0", "theme.bar.menus.menu.network.icons.passive": "#5e81ac", "theme.bar.menus.menu.network.listitems.active": "#88c0d0", "theme.bar.menus.menu.network.listitems.passive": "#d8dee9", "theme.bar.menus.menu.network.status.color": "#4c566a", "theme.bar.menus.menu.network.text": "#d8dee9", "theme.bar.menus.menu.network.label.color": "#88c0d0", "theme.bar.menus.menu.network.border.color": "#434c53", "theme.bar.menus.menu.network.background.color": "#2e3440", "theme.bar.menus.menu.network.card.color": "#3b4252", "theme.bar.menus.menu.volume.input_slider.puck": "#434c53", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#434c53", "theme.bar.menus.menu.volume.input_slider.background": "#434c53", "theme.bar.menus.menu.volume.input_slider.primary": "#81a1c1", "theme.bar.menus.menu.volume.audio_slider.puck": "#434c53", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#434c53", "theme.bar.menus.menu.volume.audio_slider.background": "#434c53", "theme.bar.menus.menu.volume.audio_slider.primary": "#81a1c1", "theme.bar.menus.menu.volume.icons.active": "#81a1c1", "theme.bar.menus.menu.volume.icons.passive": "#5e81ac", "theme.bar.menus.menu.volume.iconbutton.active": "#81a1c1", "theme.bar.menus.menu.volume.iconbutton.passive": "#d8dee9", "theme.bar.menus.menu.volume.listitems.active": "#81a1c1", "theme.bar.menus.menu.volume.listitems.passive": "#d8dee9", "theme.bar.menus.menu.volume.border.color": "#434c53", "theme.bar.menus.menu.volume.background.color": "#2e3440", "theme.bar.menus.menu.media.slider.puck": "#4c566a", "theme.bar.menus.menu.media.slider.backgroundhover": "#434c53", "theme.bar.menus.menu.media.slider.background": "#434c53", "theme.bar.menus.menu.media.slider.primary": "#8fbcbb", "theme.bar.menus.menu.media.buttons.text": "#2e3440", "theme.bar.menus.menu.media.buttons.background": "#88c0d0", "theme.bar.menus.menu.media.buttons.enabled": "#8fbcbb", "theme.bar.menus.menu.media.buttons.inactive": "#434c53", "theme.bar.menus.menu.media.border.color": "#434c53", "theme.bar.menus.menu.media.background.color": "#2e3440", "theme.bar.menus.menu.media.album": "#8fbcbb", "theme.bar.menus.menu.media.artist": "#8fbcbb", "theme.bar.menus.menu.media.song": "#88c0d0", "theme.bar.menus.tooltip.text": "#d8dee9", "theme.bar.menus.tooltip.background": "#2e3440", "theme.bar.menus.dropdownmenu.divider": "#3b4252", "theme.bar.menus.dropdownmenu.text": "#d8dee9", "theme.bar.menus.dropdownmenu.background": "#2e3440", "theme.bar.menus.slider.puck": "#4c566a", "theme.bar.menus.slider.backgroundhover": "#434c53", "theme.bar.menus.slider.background": "#434c53", "theme.bar.menus.slider.primary": "#88c0d0", "theme.bar.menus.progressbar.background": "#434c53", "theme.bar.menus.progressbar.foreground": "#88c0d0", "theme.bar.menus.iconbuttons.active": "#88c0d0", "theme.bar.menus.iconbuttons.passive": "#d8dee9", "theme.bar.menus.buttons.text": "#2e3440", "theme.bar.menus.buttons.disabled": "#434c53", "theme.bar.menus.buttons.active": "#8fbcbb", "theme.bar.menus.buttons.default": "#88c0d0", "theme.bar.menus.switch.puck": "#434c53", "theme.bar.menus.switch.disabled": "#434c53", "theme.bar.menus.switch.enabled": "#88c0d0", "theme.bar.menus.icons.active": "#88c0d0", "theme.bar.menus.icons.passive": "#434c53", "theme.bar.menus.listitems.active": "#88c0d0", "theme.bar.menus.listitems.passive": "#d8dee9", "theme.bar.menus.label": "#88c0d0", "theme.bar.menus.feinttext": "#434c53", "theme.bar.menus.dimtext": "#6272a4", "theme.bar.menus.cards": "#3b4252", "theme.bar.buttons.notifications.total": "#88c0d0", "theme.bar.buttons.notifications.icon": "#3b4252", "theme.bar.buttons.notifications.background": "#3b4252", "theme.bar.buttons.clock.icon": "#3b4252", "theme.bar.buttons.clock.text": "#8fbcbb", "theme.bar.buttons.clock.background": "#3b4252", "theme.bar.buttons.battery.icon": "#3b4252", "theme.bar.buttons.battery.text": "#81a1c1", "theme.bar.buttons.battery.background": "#3b4252", "theme.bar.buttons.systray.background": "#3b4252", "theme.bar.buttons.bluetooth.icon": "#3b4252", "theme.bar.buttons.bluetooth.text": "#88c0d0", "theme.bar.buttons.bluetooth.background": "#3b4252", "theme.bar.buttons.network.icon": "#3b4252", "theme.bar.buttons.network.text": "#88c0d0", "theme.bar.buttons.network.background": "#3b4252", "theme.bar.buttons.volume.icon": "#3b4252", "theme.bar.buttons.volume.text": "#81a1c1", "theme.bar.buttons.volume.background": "#3b4252", "theme.bar.buttons.windowtitle.icon": "#3b4252", "theme.bar.buttons.windowtitle.text": "#8fbcbb", "theme.bar.buttons.windowtitle.background": "#3b4252", "theme.bar.buttons.workspaces.active": "#8fbcbb", "theme.bar.buttons.workspaces.occupied": "#81a1c1", "theme.bar.buttons.workspaces.available": "#88c0d0", "theme.bar.buttons.workspaces.hover": "#8fbcbb", "theme.bar.buttons.workspaces.background": "#3b4252", "theme.bar.buttons.dashboard.icon": "#3b4252", "theme.bar.buttons.dashboard.background": "#81a1c1", "theme.osd.label": "#88c0d0", "theme.osd.icon": "#2e3440", "theme.osd.bar_overflow_color": "#8fbcbb", "theme.osd.bar_empty_color": "#434c53", "theme.osd.bar_color": "#88c0d0", "theme.osd.icon_container": "#88c0d0", "theme.osd.bar_container": "#2e3440", "theme.notification.close_button.label": "#2e3440", "theme.notification.close_button.background": "#8fbcbb", "theme.notification.labelicon": "#88c0d0", "theme.notification.text": "#d8dee9", "theme.notification.time": "#4c566a", "theme.notification.border": "#434c53", "theme.notification.label": "#88c0d0", "theme.notification.actions.text": "#2e3440", "theme.notification.actions.background": "#88c0d0", "theme.notification.background": "#2e3440", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#ffffff", "theme.bar.menus.menu.media.card.color": "#3b4252", "theme.bar.menus.check_radio_button.background": "#2e3440", "theme.bar.menus.check_radio_button.active": "#88c0d0", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#81a1c1", "theme.bar.buttons.network.icon_background": "#88c0d0", "theme.bar.buttons.bluetooth.icon_background": "#88c0d0", "theme.bar.buttons.windowtitle.icon_background": "#8fbcbb", "theme.bar.buttons.media.icon_background": "#88c0d0", "theme.bar.buttons.notifications.icon_background": "#88c0d0", "theme.bar.buttons.battery.icon_background": "#81a1c1", "theme.bar.buttons.clock.icon_background": "#8fbcbb", "theme.bar.menus.menu.notifications.pager.button": "#88c0d0", "theme.bar.menus.menu.notifications.scrollbar.color": "#88c0d0", "theme.bar.menus.menu.notifications.pager.label": "#5e81ac", "theme.bar.menus.menu.notifications.pager.background": "#2e3440", "theme.bar.buttons.modules.ram.icon": "#21252b", "theme.bar.buttons.modules.storage.icon_background": "#8fbcbb", "theme.bar.menus.popover.border": "#2e3440", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#88c0d0", "theme.bar.menus.menu.power.buttons.restart.text": "#81a1c1", "theme.bar.buttons.modules.updates.background": "#3b4252", "theme.bar.buttons.modules.storage.icon": "#21252b", "theme.bar.buttons.modules.netstat.background": "#3b4252", "theme.bar.buttons.modules.weather.icon": "#3b4252", "theme.bar.buttons.modules.netstat.text": "#8fbcbb", "theme.bar.buttons.modules.storage.background": "#3b4252", "theme.bar.buttons.modules.power.icon": "#21252b", "theme.bar.buttons.modules.storage.text": "#8fbcbb", "theme.bar.buttons.modules.cpu.background": "#3b4252", "theme.bar.menus.menu.power.border.color": "#434c53", "theme.bar.buttons.modules.power.icon_background": "#8fbcbb", "theme.bar.menus.menu.power.buttons.logout.icon": "#2e3440", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#81a1c1", "theme.bar.menus.menu.power.buttons.restart.icon": "#2e3440", "theme.bar.buttons.modules.cpu.icon": "#21252b", "theme.bar.buttons.modules.kbLayout.icon_background": "#88c0d0", "theme.bar.buttons.modules.weather.text": "#88c0d0", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#2e3440", "theme.bar.menus.menu.power.buttons.sleep.text": "#88c0d0", "theme.bar.buttons.modules.weather.icon_background": "#88c0d0", "theme.bar.menus.menu.power.buttons.shutdown.background": "#3b4252", "theme.bar.menus.menu.power.buttons.logout.background": "#3b4252", "theme.bar.buttons.modules.kbLayout.icon": "#21252b", "theme.bar.buttons.modules.ram.icon_background": "#81a1c1", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#8fbcbb", "theme.bar.menus.menu.power.buttons.shutdown.text": "#8fbcbb", "theme.bar.menus.menu.power.buttons.sleep.background": "#3b4252", "theme.bar.buttons.modules.ram.text": "#81a1c1", "theme.bar.menus.menu.power.buttons.logout.text": "#8fbcbb", "theme.bar.buttons.modules.updates.icon_background": "#88c0d0", "theme.bar.buttons.modules.kbLayout.background": "#3b4252", "theme.bar.buttons.modules.power.background": "#3b4252", "theme.bar.buttons.modules.weather.background": "#3b4252", "theme.bar.menus.menu.power.background.color": "#2e3440", "theme.bar.buttons.modules.ram.background": "#3b4252", "theme.bar.buttons.modules.netstat.icon": "#21252b", "theme.bar.buttons.modules.cpu.icon_background": "#8fbcbb", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#8fbcbb", "theme.bar.buttons.modules.updates.text": "#88c0d0", "theme.bar.menus.menu.power.buttons.sleep.icon": "#2e3440", "theme.bar.menus.menu.power.buttons.restart.background": "#3b4252", "theme.bar.buttons.modules.updates.icon": "#21252b", "theme.bar.buttons.modules.cpu.text": "#8fbcbb", "theme.bar.buttons.modules.netstat.icon_background": "#8fbcbb", "theme.bar.buttons.modules.kbLayout.text": "#88c0d0", "theme.bar.buttons.modules.power.border": "#8fbcbb", "theme.bar.buttons.modules.weather.border": "#88c0d0", "theme.bar.buttons.modules.updates.border": "#88c0d0", "theme.bar.buttons.modules.kbLayout.border": "#88c0d0", "theme.bar.buttons.modules.netstat.border": "#8fbcbb", "theme.bar.buttons.modules.storage.border": "#8fbcbb", "theme.bar.buttons.modules.cpu.border": "#8fbcbb", "theme.bar.buttons.modules.ram.border": "#81a1c1", "theme.bar.buttons.notifications.border": "#88c0d0", "theme.bar.buttons.clock.border": "#8fbcbb", "theme.bar.buttons.battery.border": "#81a1c1", "theme.bar.buttons.systray.border": "#434c53", "theme.bar.buttons.bluetooth.border": "#88c0d0", "theme.bar.buttons.network.border": "#88c0d0", "theme.bar.buttons.volume.border": "#81a1c1", "theme.bar.buttons.media.border": "#88c0d0", "theme.bar.buttons.windowtitle.border": "#8fbcbb", "theme.bar.buttons.workspaces.border": "#2e3440", "theme.bar.buttons.dashboard.border": "#81a1c1", "theme.bar.buttons.modules.submap.background": "#3b4252", "theme.bar.buttons.modules.submap.text": "#8fbcbb", "theme.bar.buttons.modules.submap.border": "#8fbcbb", "theme.bar.buttons.modules.submap.icon": "#21252b", "theme.bar.buttons.modules.submap.icon_background": "#8fbcbb" } ================================================ FILE: .config/ags/themes/one_dark.json ================================================ { "theme.bar.menus.background": "#282c34", "theme.bar.background": "#282c34", "theme.bar.buttons.media.icon": "#61afef", "theme.bar.buttons.media.text": "#61afef", "theme.bar.buttons.icon": "#61afef", "theme.bar.buttons.text": "#61afef", "theme.bar.buttons.hover": "#3e4451", "theme.bar.buttons.background": "#3e4451", "theme.bar.menus.text": "#abb2bf", "theme.bar.menus.border.color": "#4b5263", "theme.bar.buttons.media.background": "#21252b", "theme.bar.menus.menu.volume.text": "#abb2bf", "theme.bar.menus.menu.volume.card.color": "#21252b", "theme.bar.menus.menu.volume.label.color": "#e06c75", "theme.bar.menus.popover.text": "#61afef", "theme.bar.menus.popover.background": "#282c34", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#e06c75", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#e06c75", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#98c379", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#282c34", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#abb2bf", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#61afef", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#4b5263", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#282c34", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#21252b", "theme.bar.menus.menu.notifications.switch.puck": "#3e4451", "theme.bar.menus.menu.notifications.switch.disabled": "#4b5263", "theme.bar.menus.menu.notifications.switch.enabled": "#61afef", "theme.bar.menus.menu.notifications.clear": "#e06c75", "theme.bar.menus.menu.notifications.switch_divider": "#3e4451", "theme.bar.menus.menu.notifications.border": "#4b5263", "theme.bar.menus.menu.notifications.card": "#21252b", "theme.bar.menus.menu.notifications.background": "#282c34", "theme.bar.menus.menu.notifications.no_notifications_label": "#4b5263", "theme.bar.menus.menu.notifications.label": "#61afef", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#c678dd", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#c678dd", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#c678dd", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#98c379", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#98c379", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#98c379", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#e5c07b", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#e5c07b", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#e5c07b", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#e06c75", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#e06c75", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#e06c75", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#3e4451", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#61afef", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#c678dd", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#56b6c2", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#e06c75", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#e5c07b", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#c678dd", "theme.bar.menus.menu.dashboard.controls.input.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.input.background": "#c678dd", "theme.bar.menus.menu.dashboard.controls.volume.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.volume.background": "#e06c75", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#e5c07b", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#56b6c2", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c678dd", "theme.bar.menus.menu.dashboard.controls.disabled": "#5c6370", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#98c379", "theme.bar.menus.menu.dashboard.shortcuts.text": "#282c34", "theme.bar.menus.menu.dashboard.shortcuts.background": "#61afef", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#56b6c2", "theme.bar.menus.menu.dashboard.powermenu.logout": "#98c379", "theme.bar.menus.menu.dashboard.powermenu.restart": "#d19a66", "theme.bar.menus.menu.dashboard.profile.name": "#c678dd", "theme.bar.menus.menu.dashboard.border.color": "#4b5263", "theme.bar.menus.menu.dashboard.background.color": "#282c34", "theme.bar.menus.menu.dashboard.card.color": "#21252b", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#c678dd", "theme.bar.menus.menu.clock.weather.hourly.icon": "#c678dd", "theme.bar.menus.menu.clock.weather.hourly.time": "#c678dd", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#56b6c2", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#61afef", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#61afef", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#d19a66", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#e06c75", "theme.bar.menus.menu.clock.weather.stats": "#c678dd", "theme.bar.menus.menu.clock.weather.status": "#56b6c2", "theme.bar.menus.menu.clock.weather.temperature": "#abb2bf", "theme.bar.menus.menu.clock.weather.icon": "#c678dd", "theme.bar.menus.menu.clock.calendar.contextdays": "#5c6370", "theme.bar.menus.menu.clock.calendar.days": "#abb2bf", "theme.bar.menus.menu.clock.calendar.currentday": "#c678dd", "theme.bar.menus.menu.clock.calendar.paginator": "#c678dd", "theme.bar.menus.menu.clock.calendar.weekdays": "#c678dd", "theme.bar.menus.menu.clock.calendar.yearmonth": "#56b6c2", "theme.bar.menus.menu.clock.time.timeperiod": "#56b6c2", "theme.bar.menus.menu.clock.time.time": "#c678dd", "theme.bar.menus.menu.clock.text": "#abb2bf", "theme.bar.menus.menu.clock.border.color": "#4b5263", "theme.bar.menus.menu.clock.background.color": "#282c34", "theme.bar.menus.menu.clock.card.color": "#21252b", "theme.bar.menus.menu.battery.slider.puck": "#3e4451", "theme.bar.menus.menu.battery.slider.backgroundhover": "#3e4451", "theme.bar.menus.menu.battery.slider.background": "#5c6370", "theme.bar.menus.menu.battery.slider.primary": "#e5c07b", "theme.bar.menus.menu.battery.icons.active": "#e5c07b", "theme.bar.menus.menu.battery.icons.passive": "#828997", "theme.bar.menus.menu.battery.listitems.active": "#e5c07b", "theme.bar.menus.menu.battery.listitems.passive": "#abb2bf", "theme.bar.menus.menu.battery.text": "#abb2bf", "theme.bar.menus.menu.battery.label.color": "#e5c07b", "theme.bar.menus.menu.battery.border.color": "#4b5263", "theme.bar.menus.menu.battery.background.color": "#282c34", "theme.bar.menus.menu.battery.card.color": "#21252b", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#21252b", "theme.bar.menus.menu.systray.dropdownmenu.text": "#abb2bf", "theme.bar.menus.menu.systray.dropdownmenu.background": "#282c34", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#61afef", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#abb2bf", "theme.bar.menus.menu.bluetooth.icons.active": "#61afef", "theme.bar.menus.menu.bluetooth.icons.passive": "#5c6370", "theme.bar.menus.menu.bluetooth.listitems.active": "#61afef", "theme.bar.menus.menu.bluetooth.listitems.passive": "#abb2bf", "theme.bar.menus.menu.bluetooth.switch.puck": "#4b5263", "theme.bar.menus.menu.bluetooth.switch.disabled": "#3e4451", "theme.bar.menus.menu.bluetooth.switch.enabled": "#61afef", "theme.bar.menus.menu.bluetooth.switch_divider": "#4b5263", "theme.bar.menus.menu.bluetooth.status": "#5c6370", "theme.bar.menus.menu.bluetooth.text": "#abb2bf", "theme.bar.menus.menu.bluetooth.label.color": "#61afef", "theme.bar.menus.menu.bluetooth.border.color": "#3e4451", "theme.bar.menus.menu.bluetooth.background.color": "#282c34", "theme.bar.menus.menu.bluetooth.card.color": "#21252b", "theme.bar.menus.menu.network.iconbuttons.active": "#c678dd", "theme.bar.menus.menu.network.iconbuttons.passive": "#abb2bf", "theme.bar.menus.menu.network.icons.active": "#c678dd", "theme.bar.menus.menu.network.icons.passive": "#5c6370", "theme.bar.menus.menu.network.listitems.active": "#c678dd", "theme.bar.menus.menu.network.listitems.passive": "#abb2bf", "theme.bar.menus.menu.network.status.color": "#5c6370", "theme.bar.menus.menu.network.text": "#abb2bf", "theme.bar.menus.menu.network.label.color": "#c678dd", "theme.bar.menus.menu.network.border.color": "#3e4451", "theme.bar.menus.menu.network.background.color": "#282c34", "theme.bar.menus.menu.network.card.color": "#21252b", "theme.bar.menus.menu.volume.input_slider.puck": "#4b5263", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#4b5263", "theme.bar.menus.menu.volume.input_slider.background": "#4b5263", "theme.bar.menus.menu.volume.input_slider.primary": "#e06c75", "theme.bar.menus.menu.volume.audio_slider.puck": "#4b5263", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#4b5263", "theme.bar.menus.menu.volume.audio_slider.background": "#4b5263", "theme.bar.menus.menu.volume.audio_slider.primary": "#e06c75", "theme.bar.menus.menu.volume.icons.active": "#e06c75", "theme.bar.menus.menu.volume.icons.passive": "#5c6370", "theme.bar.menus.menu.volume.iconbutton.active": "#e06c75", "theme.bar.menus.menu.volume.iconbutton.passive": "#abb2bf", "theme.bar.menus.menu.volume.listitems.active": "#e06c75", "theme.bar.menus.menu.volume.listitems.passive": "#abb2bf", "theme.bar.menus.menu.volume.border.color": "#3e4451", "theme.bar.menus.menu.volume.background.color": "#282c34", "theme.bar.menus.menu.media.slider.puck": "#5c6370", "theme.bar.menus.menu.media.slider.backgroundhover": "#4b5263", "theme.bar.menus.menu.media.slider.background": "#4b5263", "theme.bar.menus.menu.media.slider.primary": "#98c379", "theme.bar.menus.menu.media.buttons.text": "#282c34", "theme.bar.menus.menu.media.buttons.background": "#98c379", "theme.bar.menus.menu.media.buttons.enabled": "#56b6c2", "theme.bar.menus.menu.media.buttons.inactive": "#4b5263", "theme.bar.menus.menu.media.border.color": "#3e4451", "theme.bar.menus.menu.media.background.color": "#282c34", "theme.bar.menus.menu.media.album": "#98c379", "theme.bar.menus.menu.media.artist": "#56b6c2", "theme.bar.menus.menu.media.song": "#98c379", "theme.bar.menus.tooltip.text": "#abb2bf", "theme.bar.menus.tooltip.background": "#282c34", "theme.bar.menus.dropdownmenu.divider": "#21252b", "theme.bar.menus.dropdownmenu.text": "#abb2bf", "theme.bar.menus.dropdownmenu.background": "#282c34", "theme.bar.menus.slider.puck": "#5c6370", "theme.bar.menus.slider.backgroundhover": "#4b5263", "theme.bar.menus.slider.background": "#4b5263", "theme.bar.menus.slider.primary": "#61afef", "theme.bar.menus.progressbar.background": "#4b5263", "theme.bar.menus.progressbar.foreground": "#61afef", "theme.bar.menus.iconbuttons.active": "#61afef", "theme.bar.menus.iconbuttons.passive": "#abb2bf", "theme.bar.menus.buttons.text": "#282c34", "theme.bar.menus.buttons.disabled": "#4b5263", "theme.bar.menus.buttons.active": "#98c379", "theme.bar.menus.buttons.default": "#61afef", "theme.bar.menus.switch.puck": "#4b5263", "theme.bar.menus.switch.disabled": "#3e4451", "theme.bar.menus.switch.enabled": "#61afef", "theme.bar.menus.icons.active": "#61afef", "theme.bar.menus.icons.passive": "#4b5263", "theme.bar.menus.listitems.active": "#61afef", "theme.bar.menus.listitems.passive": "#abb2bf", "theme.bar.menus.label": "#61afef", "theme.bar.menus.feinttext": "#3e4451", "theme.bar.menus.dimtext": "#4b5263", "theme.bar.menus.cards": "#21252b", "theme.bar.buttons.notifications.total": "#61afef", "theme.bar.buttons.notifications.icon": "#61afef", "theme.bar.buttons.notifications.background": "#21252b", "theme.bar.buttons.clock.icon": "#98c379", "theme.bar.buttons.clock.text": "#98c379", "theme.bar.buttons.clock.background": "#21252b", "theme.bar.buttons.battery.icon": "#e5c07b", "theme.bar.buttons.battery.text": "#e5c07b", "theme.bar.buttons.battery.background": "#21252b", "theme.bar.buttons.systray.background": "#21252b", "theme.bar.buttons.bluetooth.icon": "#61afef", "theme.bar.buttons.bluetooth.text": "#61afef", "theme.bar.buttons.bluetooth.background": "#21252b", "theme.bar.buttons.network.icon": "#c678dd", "theme.bar.buttons.network.text": "#c678dd", "theme.bar.buttons.network.background": "#21252b", "theme.bar.buttons.volume.icon": "#e06c75", "theme.bar.buttons.volume.text": "#e06c75", "theme.bar.buttons.volume.background": "#21252b", "theme.bar.buttons.windowtitle.icon": "#98c379", "theme.bar.buttons.windowtitle.text": "#98c379", "theme.bar.buttons.windowtitle.background": "#21252b", "theme.bar.buttons.workspaces.active": "#c678dd", "theme.bar.buttons.workspaces.occupied": "#e06c75", "theme.bar.buttons.workspaces.available": "#61afef", "theme.bar.buttons.workspaces.hover": "#3e4451", "theme.bar.buttons.workspaces.background": "#21252b", "theme.bar.buttons.dashboard.icon": "#e5c07b", "theme.bar.buttons.dashboard.background": "#21252b", "theme.osd.label": "#61afef", "theme.osd.icon": "#282c34", "theme.osd.bar_overflow_color": "#e06c75", "theme.osd.bar_empty_color": "#4b5263", "theme.osd.bar_color": "#61afef", "theme.osd.icon_container": "#61afef", "theme.osd.bar_container": "#282c34", "theme.notification.close_button.label": "#282c34", "theme.notification.close_button.background": "#e06c75", "theme.notification.labelicon": "#61afef", "theme.notification.text": "#abb2bf", "theme.notification.time": "#5c6370", "theme.notification.border": "#4b5263", "theme.notification.label": "#61afef", "theme.notification.actions.text": "#282c34", "theme.notification.actions.background": "#61afef", "theme.notification.background": "#282c34", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#21252b", "theme.bar.menus.check_radio_button.background": "#2e3440", "theme.bar.menus.check_radio_button.active": "#88c0d0", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#61afef", "theme.bar.menus.menu.notifications.scrollbar.color": "#61afef", "theme.bar.menus.menu.notifications.pager.label": "#828997", "theme.bar.menus.menu.notifications.pager.background": "#282c34", "theme.bar.buttons.clock.icon_background": "#c678dd", "theme.bar.buttons.modules.ram.icon": "#e5c07b", "theme.bar.buttons.modules.storage.icon_background": "#e06c75", "theme.bar.menus.popover.border": "#282c34", "theme.bar.buttons.volume.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#56b6c2", "theme.bar.menus.menu.power.buttons.restart.text": "#d19a66", "theme.bar.buttons.modules.updates.background": "#21252b", "theme.bar.buttons.modules.storage.icon": "#e06c75", "theme.bar.buttons.modules.netstat.background": "#21252b", "theme.bar.buttons.modules.weather.icon": "#61afef", "theme.bar.buttons.modules.netstat.text": "#98c379", "theme.bar.buttons.modules.storage.background": "#21252b", "theme.bar.buttons.modules.power.icon": "#e06c75", "theme.bar.buttons.modules.storage.text": "#e06c75", "theme.bar.buttons.modules.cpu.background": "#21252b", "theme.bar.menus.menu.power.border.color": "#4b5263", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.logout.icon": "#282c34", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#d19a66", "theme.bar.menus.menu.power.buttons.restart.icon": "#282c34", "theme.bar.buttons.modules.cpu.icon": "#e06c75", "theme.bar.buttons.battery.icon_background": "#e5c07b", "theme.bar.buttons.modules.kbLayout.icon_background": "#56b6c2", "theme.bar.buttons.modules.weather.text": "#61afef", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#282c34", "theme.bar.menus.menu.power.buttons.sleep.text": "#56b6c2", "theme.bar.buttons.modules.weather.icon_background": "#61afef", "theme.bar.menus.menu.power.buttons.shutdown.background": "#21252b", "theme.bar.buttons.media.icon_background": "#61afef", "theme.bar.menus.menu.power.buttons.logout.background": "#21252b", "theme.bar.buttons.modules.kbLayout.icon": "#56b6c2", "theme.bar.buttons.modules.ram.icon_background": "#e5c07b", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.shutdown.text": "#e06c75", "theme.bar.menus.menu.power.buttons.sleep.background": "#21252b", "theme.bar.buttons.modules.ram.text": "#e5c07b", "theme.bar.menus.menu.power.buttons.logout.text": "#98c379", "theme.bar.buttons.modules.updates.icon_background": "#c678dd", "theme.bar.buttons.modules.kbLayout.background": "#21252b", "theme.bar.buttons.modules.power.background": "#21252b", "theme.bar.buttons.modules.weather.background": "#21252b", "theme.bar.buttons.icon_background": "#21252b", "theme.bar.menus.menu.power.background.color": "#282c34", "theme.bar.buttons.modules.ram.background": "#21252b", "theme.bar.buttons.modules.netstat.icon": "#98c379", "theme.bar.buttons.windowtitle.icon_background": "#c678dd", "theme.bar.buttons.modules.cpu.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#98c379", "theme.bar.buttons.modules.updates.text": "#c678dd", "theme.bar.menus.menu.power.buttons.sleep.icon": "#282c34", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#21252b", "theme.bar.buttons.modules.updates.icon": "#c678dd", "theme.bar.buttons.modules.cpu.text": "#e06c75", "theme.bar.buttons.modules.netstat.icon_background": "#98c379", "theme.bar.buttons.modules.kbLayout.text": "#56b6c2", "theme.bar.buttons.notifications.icon_background": "#61afef", "theme.bar.buttons.modules.power.border": "#e06c75", "theme.bar.buttons.modules.weather.border": "#61afef", "theme.bar.buttons.modules.updates.border": "#c678dd", "theme.bar.buttons.modules.kbLayout.border": "#56b6c2", "theme.bar.buttons.modules.netstat.border": "#98c379", "theme.bar.buttons.modules.storage.border": "#e06c75", "theme.bar.buttons.modules.cpu.border": "#e06c75", "theme.bar.buttons.modules.ram.border": "#e5c07b", "theme.bar.buttons.notifications.border": "#61afef", "theme.bar.buttons.clock.border": "#98c379", "theme.bar.buttons.battery.border": "#e5c07b", "theme.bar.buttons.systray.border": "#4b5263", "theme.bar.buttons.bluetooth.border": "#61afef", "theme.bar.buttons.network.border": "#c678dd", "theme.bar.buttons.volume.border": "#e06c75", "theme.bar.buttons.media.border": "#61afef", "theme.bar.buttons.windowtitle.border": "#98c379", "theme.bar.buttons.workspaces.border": "#21252b", "theme.bar.buttons.dashboard.border": "#e5c07b", "theme.bar.buttons.modules.submap.background": "#21252b", "theme.bar.buttons.modules.submap.text": "#56b6c2", "theme.bar.buttons.modules.submap.border": "#56b6c2", "theme.bar.buttons.modules.submap.icon": "#56b6c2", "theme.bar.buttons.modules.submap.icon_background": "#21252b" } ================================================ FILE: .config/ags/themes/one_dark_split.json ================================================ { "theme.bar.menus.background": "#282c34", "theme.bar.background": "#282c34", "theme.bar.buttons.media.icon": "#21252b", "theme.bar.buttons.media.text": "#61afef", "theme.bar.buttons.icon": "#61afef", "theme.bar.buttons.text": "#61afef", "theme.bar.buttons.hover": "#3e4451", "theme.bar.buttons.background": "#3e4451", "theme.bar.menus.text": "#abb2bf", "theme.bar.menus.border.color": "#4b5263", "theme.bar.buttons.media.background": "#21252b", "theme.bar.menus.menu.volume.text": "#abb2bf", "theme.bar.menus.menu.volume.card.color": "#21252b", "theme.bar.menus.menu.volume.label.color": "#e06c75", "theme.bar.menus.popover.text": "#61afef", "theme.bar.menus.popover.background": "#282c34", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#e06c75", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#e06c75", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#98c379", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#282c34", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#abb2bf", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#61afef", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#4b5263", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#282c34", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#21252b", "theme.bar.menus.menu.notifications.switch.puck": "#3e4451", "theme.bar.menus.menu.notifications.switch.disabled": "#4b5263", "theme.bar.menus.menu.notifications.switch.enabled": "#61afef", "theme.bar.menus.menu.notifications.clear": "#e06c75", "theme.bar.menus.menu.notifications.switch_divider": "#3e4451", "theme.bar.menus.menu.notifications.border": "#4b5263", "theme.bar.menus.menu.notifications.card": "#21252b", "theme.bar.menus.menu.notifications.background": "#282c34", "theme.bar.menus.menu.notifications.no_notifications_label": "#4b5263", "theme.bar.menus.menu.notifications.label": "#61afef", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#c678dd", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#c678dd", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#c678dd", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#98c379", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#98c379", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#98c379", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#e5c07b", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#e5c07b", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#e5c07b", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#e06c75", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#e06c75", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#e06c75", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#3e4451", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#61afef", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#c678dd", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#56b6c2", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#e06c75", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#e5c07b", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#c678dd", "theme.bar.menus.menu.dashboard.controls.input.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.input.background": "#c678dd", "theme.bar.menus.menu.dashboard.controls.volume.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.volume.background": "#e06c75", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#e5c07b", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#56b6c2", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#282c34", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c678dd", "theme.bar.menus.menu.dashboard.controls.disabled": "#5c6370", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#98c379", "theme.bar.menus.menu.dashboard.shortcuts.text": "#282c34", "theme.bar.menus.menu.dashboard.shortcuts.background": "#61afef", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#56b6c2", "theme.bar.menus.menu.dashboard.powermenu.logout": "#98c379", "theme.bar.menus.menu.dashboard.powermenu.restart": "#d19a66", "theme.bar.menus.menu.dashboard.profile.name": "#c678dd", "theme.bar.menus.menu.dashboard.border.color": "#4b5263", "theme.bar.menus.menu.dashboard.background.color": "#282c34", "theme.bar.menus.menu.dashboard.card.color": "#21252b", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#c678dd", "theme.bar.menus.menu.clock.weather.hourly.icon": "#c678dd", "theme.bar.menus.menu.clock.weather.hourly.time": "#c678dd", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#56b6c2", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#61afef", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#61afef", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#d19a66", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#e06c75", "theme.bar.menus.menu.clock.weather.stats": "#c678dd", "theme.bar.menus.menu.clock.weather.status": "#56b6c2", "theme.bar.menus.menu.clock.weather.temperature": "#abb2bf", "theme.bar.menus.menu.clock.weather.icon": "#c678dd", "theme.bar.menus.menu.clock.calendar.contextdays": "#5c6370", "theme.bar.menus.menu.clock.calendar.days": "#abb2bf", "theme.bar.menus.menu.clock.calendar.currentday": "#c678dd", "theme.bar.menus.menu.clock.calendar.paginator": "#c678dd", "theme.bar.menus.menu.clock.calendar.weekdays": "#c678dd", "theme.bar.menus.menu.clock.calendar.yearmonth": "#56b6c2", "theme.bar.menus.menu.clock.time.timeperiod": "#56b6c2", "theme.bar.menus.menu.clock.time.time": "#c678dd", "theme.bar.menus.menu.clock.text": "#abb2bf", "theme.bar.menus.menu.clock.border.color": "#4b5263", "theme.bar.menus.menu.clock.background.color": "#282c34", "theme.bar.menus.menu.clock.card.color": "#21252b", "theme.bar.menus.menu.battery.slider.puck": "#3e4451", "theme.bar.menus.menu.battery.slider.backgroundhover": "#3e4451", "theme.bar.menus.menu.battery.slider.background": "#5c6370", "theme.bar.menus.menu.battery.slider.primary": "#e5c07b", "theme.bar.menus.menu.battery.icons.active": "#e5c07b", "theme.bar.menus.menu.battery.icons.passive": "#828997", "theme.bar.menus.menu.battery.listitems.active": "#e5c07b", "theme.bar.menus.menu.battery.listitems.passive": "#abb2bf", "theme.bar.menus.menu.battery.text": "#abb2bf", "theme.bar.menus.menu.battery.label.color": "#e5c07b", "theme.bar.menus.menu.battery.border.color": "#4b5263", "theme.bar.menus.menu.battery.background.color": "#282c34", "theme.bar.menus.menu.battery.card.color": "#21252b", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#21252b", "theme.bar.menus.menu.systray.dropdownmenu.text": "#abb2bf", "theme.bar.menus.menu.systray.dropdownmenu.background": "#282c34", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#61afef", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#abb2bf", "theme.bar.menus.menu.bluetooth.icons.active": "#61afef", "theme.bar.menus.menu.bluetooth.icons.passive": "#5c6370", "theme.bar.menus.menu.bluetooth.listitems.active": "#61afef", "theme.bar.menus.menu.bluetooth.listitems.passive": "#abb2bf", "theme.bar.menus.menu.bluetooth.switch.puck": "#4b5263", "theme.bar.menus.menu.bluetooth.switch.disabled": "#3e4451", "theme.bar.menus.menu.bluetooth.switch.enabled": "#61afef", "theme.bar.menus.menu.bluetooth.switch_divider": "#4b5263", "theme.bar.menus.menu.bluetooth.status": "#5c6370", "theme.bar.menus.menu.bluetooth.text": "#abb2bf", "theme.bar.menus.menu.bluetooth.label.color": "#61afef", "theme.bar.menus.menu.bluetooth.border.color": "#3e4451", "theme.bar.menus.menu.bluetooth.background.color": "#282c34", "theme.bar.menus.menu.bluetooth.card.color": "#21252b", "theme.bar.menus.menu.network.iconbuttons.active": "#c678dd", "theme.bar.menus.menu.network.iconbuttons.passive": "#abb2bf", "theme.bar.menus.menu.network.icons.active": "#c678dd", "theme.bar.menus.menu.network.icons.passive": "#5c6370", "theme.bar.menus.menu.network.listitems.active": "#c678dd", "theme.bar.menus.menu.network.listitems.passive": "#abb2bf", "theme.bar.menus.menu.network.status.color": "#5c6370", "theme.bar.menus.menu.network.text": "#abb2bf", "theme.bar.menus.menu.network.label.color": "#c678dd", "theme.bar.menus.menu.network.border.color": "#3e4451", "theme.bar.menus.menu.network.background.color": "#282c34", "theme.bar.menus.menu.network.card.color": "#21252b", "theme.bar.menus.menu.volume.input_slider.puck": "#4b5263", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#4b5263", "theme.bar.menus.menu.volume.input_slider.background": "#4b5263", "theme.bar.menus.menu.volume.input_slider.primary": "#e06c75", "theme.bar.menus.menu.volume.audio_slider.puck": "#4b5263", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#4b5263", "theme.bar.menus.menu.volume.audio_slider.background": "#4b5263", "theme.bar.menus.menu.volume.audio_slider.primary": "#e06c75", "theme.bar.menus.menu.volume.icons.active": "#e06c75", "theme.bar.menus.menu.volume.icons.passive": "#5c6370", "theme.bar.menus.menu.volume.iconbutton.active": "#e06c75", "theme.bar.menus.menu.volume.iconbutton.passive": "#abb2bf", "theme.bar.menus.menu.volume.listitems.active": "#e06c75", "theme.bar.menus.menu.volume.listitems.passive": "#abb2bf", "theme.bar.menus.menu.volume.border.color": "#3e4451", "theme.bar.menus.menu.volume.background.color": "#282c34", "theme.bar.menus.menu.media.slider.puck": "#5c6370", "theme.bar.menus.menu.media.slider.backgroundhover": "#4b5263", "theme.bar.menus.menu.media.slider.background": "#4b5263", "theme.bar.menus.menu.media.slider.primary": "#98c379", "theme.bar.menus.menu.media.buttons.text": "#282c34", "theme.bar.menus.menu.media.buttons.background": "#98c379", "theme.bar.menus.menu.media.buttons.enabled": "#56b6c2", "theme.bar.menus.menu.media.buttons.inactive": "#4b5263", "theme.bar.menus.menu.media.border.color": "#3e4451", "theme.bar.menus.menu.media.background.color": "#282c34", "theme.bar.menus.menu.media.album": "#98c379", "theme.bar.menus.menu.media.artist": "#56b6c2", "theme.bar.menus.menu.media.song": "#98c379", "theme.bar.menus.tooltip.text": "#abb2bf", "theme.bar.menus.tooltip.background": "#282c34", "theme.bar.menus.dropdownmenu.divider": "#21252b", "theme.bar.menus.dropdownmenu.text": "#abb2bf", "theme.bar.menus.dropdownmenu.background": "#282c34", "theme.bar.menus.slider.puck": "#5c6370", "theme.bar.menus.slider.backgroundhover": "#4b5263", "theme.bar.menus.slider.background": "#4b5263", "theme.bar.menus.slider.primary": "#61afef", "theme.bar.menus.progressbar.background": "#4b5263", "theme.bar.menus.progressbar.foreground": "#61afef", "theme.bar.menus.iconbuttons.active": "#61afef", "theme.bar.menus.iconbuttons.passive": "#abb2bf", "theme.bar.menus.buttons.text": "#282c34", "theme.bar.menus.buttons.disabled": "#4b5263", "theme.bar.menus.buttons.active": "#98c379", "theme.bar.menus.buttons.default": "#61afef", "theme.bar.menus.switch.puck": "#4b5263", "theme.bar.menus.switch.disabled": "#3e4451", "theme.bar.menus.switch.enabled": "#61afef", "theme.bar.menus.icons.active": "#61afef", "theme.bar.menus.icons.passive": "#4b5263", "theme.bar.menus.listitems.active": "#61afef", "theme.bar.menus.listitems.passive": "#abb2bf", "theme.bar.menus.label": "#61afef", "theme.bar.menus.feinttext": "#3e4451", "theme.bar.menus.dimtext": "#4b5263", "theme.bar.menus.cards": "#21252b", "theme.bar.buttons.notifications.total": "#61afef", "theme.bar.buttons.notifications.icon": "#21252b", "theme.bar.buttons.notifications.background": "#21252b", "theme.bar.buttons.clock.icon": "#21252b", "theme.bar.buttons.clock.text": "#98c379", "theme.bar.buttons.clock.background": "#21252b", "theme.bar.buttons.battery.icon": "#21252b", "theme.bar.buttons.battery.text": "#e5c07b", "theme.bar.buttons.battery.background": "#21252b", "theme.bar.buttons.systray.background": "#21252b", "theme.bar.buttons.bluetooth.icon": "#21252b", "theme.bar.buttons.bluetooth.text": "#61afef", "theme.bar.buttons.bluetooth.background": "#21252b", "theme.bar.buttons.network.icon": "#21252b", "theme.bar.buttons.network.text": "#c678dd", "theme.bar.buttons.network.background": "#21252b", "theme.bar.buttons.volume.icon": "#21252b", "theme.bar.buttons.volume.text": "#e06c75", "theme.bar.buttons.volume.background": "#21252b", "theme.bar.buttons.windowtitle.icon": "#21252b", "theme.bar.buttons.windowtitle.text": "#98c379", "theme.bar.buttons.windowtitle.background": "#21252b", "theme.bar.buttons.workspaces.active": "#c678dd", "theme.bar.buttons.workspaces.occupied": "#e06c75", "theme.bar.buttons.workspaces.available": "#61afef", "theme.bar.buttons.workspaces.hover": "#c678dd", "theme.bar.buttons.workspaces.background": "#21252b", "theme.bar.buttons.dashboard.icon": "#21252b", "theme.bar.buttons.dashboard.background": "#e5c07b", "theme.osd.label": "#61afef", "theme.osd.icon": "#282c34", "theme.osd.bar_overflow_color": "#e06c75", "theme.osd.bar_empty_color": "#4b5263", "theme.osd.bar_color": "#61afef", "theme.osd.icon_container": "#61afef", "theme.osd.bar_container": "#282c34", "theme.notification.close_button.label": "#282c34", "theme.notification.close_button.background": "#e06c75", "theme.notification.labelicon": "#61afef", "theme.notification.text": "#abb2bf", "theme.notification.time": "#5c6370", "theme.notification.border": "#4b5263", "theme.notification.label": "#61afef", "theme.notification.actions.text": "#282c34", "theme.notification.actions.background": "#61afef", "theme.notification.background": "#282c34", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#21252b", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#21252b", "theme.bar.menus.check_radio_button.background": "#2e3440", "theme.bar.menus.check_radio_button.active": "#88c0d0", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#e06c75", "theme.bar.buttons.network.icon_background": "#c678dd", "theme.bar.buttons.bluetooth.icon_background": "#61afef", "theme.bar.buttons.windowtitle.icon_background": "#98c379", "theme.bar.buttons.media.icon_background": "#61afef", "theme.bar.buttons.notifications.icon_background": "#61afef", "theme.bar.buttons.battery.icon_background": "#e5c07b", "theme.bar.buttons.clock.icon_background": "#98c379", "theme.bar.menus.menu.notifications.pager.button": "#61afef", "theme.bar.menus.menu.notifications.scrollbar.color": "#61afef", "theme.bar.menus.menu.notifications.pager.label": "#828997", "theme.bar.menus.menu.notifications.pager.background": "#282c34", "theme.bar.buttons.modules.ram.icon": "#21252b", "theme.bar.buttons.modules.storage.icon_background": "#e06c75", "theme.bar.menus.popover.border": "#282c34", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#56b6c2", "theme.bar.menus.menu.power.buttons.restart.text": "#d19a66", "theme.bar.buttons.modules.updates.background": "#21252b", "theme.bar.buttons.modules.storage.icon": "#21252b", "theme.bar.buttons.modules.netstat.background": "#21252b", "theme.bar.buttons.modules.weather.icon": "#21252b", "theme.bar.buttons.modules.netstat.text": "#98c379", "theme.bar.buttons.modules.storage.background": "#21252b", "theme.bar.buttons.modules.power.icon": "#21252b", "theme.bar.buttons.modules.storage.text": "#e06c75", "theme.bar.buttons.modules.cpu.background": "#21252b", "theme.bar.menus.menu.power.border.color": "#4b5263", "theme.bar.buttons.modules.power.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.logout.icon": "#282c34", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#d19a66", "theme.bar.menus.menu.power.buttons.restart.icon": "#282c34", "theme.bar.buttons.modules.cpu.icon": "#21252b", "theme.bar.buttons.modules.kbLayout.icon_background": "#56b6c2", "theme.bar.buttons.modules.weather.text": "#61afef", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#282c34", "theme.bar.menus.menu.power.buttons.sleep.text": "#56b6c2", "theme.bar.buttons.modules.weather.icon_background": "#61afef", "theme.bar.menus.menu.power.buttons.shutdown.background": "#21252b", "theme.bar.menus.menu.power.buttons.logout.background": "#21252b", "theme.bar.buttons.modules.kbLayout.icon": "#21252b", "theme.bar.buttons.modules.ram.icon_background": "#e5c07b", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.shutdown.text": "#e06c75", "theme.bar.menus.menu.power.buttons.sleep.background": "#21252b", "theme.bar.buttons.modules.ram.text": "#e5c07b", "theme.bar.menus.menu.power.buttons.logout.text": "#98c379", "theme.bar.buttons.modules.updates.icon_background": "#c678dd", "theme.bar.buttons.modules.kbLayout.background": "#21252b", "theme.bar.buttons.modules.power.background": "#21252b", "theme.bar.buttons.modules.weather.background": "#21252b", "theme.bar.menus.menu.power.background.color": "#282c34", "theme.bar.buttons.modules.ram.background": "#21252b", "theme.bar.buttons.modules.netstat.icon": "#21252b", "theme.bar.buttons.modules.cpu.icon_background": "#e06c75", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#98c379", "theme.bar.buttons.modules.updates.text": "#c678dd", "theme.bar.menus.menu.power.buttons.sleep.icon": "#282c34", "theme.bar.menus.menu.power.buttons.restart.background": "#21252b", "theme.bar.buttons.modules.updates.icon": "#21252b", "theme.bar.buttons.modules.cpu.text": "#e06c75", "theme.bar.buttons.modules.netstat.icon_background": "#98c379", "theme.bar.buttons.modules.kbLayout.text": "#56b6c2", "theme.bar.buttons.modules.power.border": "#e06c75", "theme.bar.buttons.modules.weather.border": "#61afef", "theme.bar.buttons.modules.updates.border": "#c678dd", "theme.bar.buttons.modules.kbLayout.border": "#56b6c2", "theme.bar.buttons.modules.netstat.border": "#98c379", "theme.bar.buttons.modules.storage.border": "#e06c75", "theme.bar.buttons.modules.cpu.border": "#e06c75", "theme.bar.buttons.modules.ram.border": "#e5c07b", "theme.bar.buttons.notifications.border": "#61afef", "theme.bar.buttons.clock.border": "#98c379", "theme.bar.buttons.battery.border": "#e5c07b", "theme.bar.buttons.systray.border": "#4b5263", "theme.bar.buttons.bluetooth.border": "#61afef", "theme.bar.buttons.network.border": "#c678dd", "theme.bar.buttons.volume.border": "#e06c75", "theme.bar.buttons.media.border": "#61afef", "theme.bar.buttons.windowtitle.border": "#98c379", "theme.bar.buttons.workspaces.border": "#21252b", "theme.bar.buttons.dashboard.border": "#e5c07b", "theme.bar.buttons.modules.submap.background": "#21252b", "theme.bar.buttons.modules.submap.text": "#56b6c2", "theme.bar.buttons.modules.submap.border": "#56b6c2", "theme.bar.buttons.modules.submap.icon": "#21252b", "theme.bar.buttons.modules.submap.icon_background": "#56b6c2" } ================================================ FILE: .config/ags/themes/rose_pine.json ================================================ { "theme.bar.menus.background": "#191724", "theme.bar.background": "#191724", "theme.bar.buttons.media.icon": "#c4a7e7", "theme.bar.buttons.media.text": "#c4a7e7", "theme.bar.buttons.icon": "#c4a7e7", "theme.bar.buttons.text": "#c4a7e7", "theme.bar.buttons.hover": "#26233a", "theme.bar.buttons.background": "#21202e", "theme.bar.menus.text": "#e0def4", "theme.bar.menus.border.color": "#1f1d2e", "theme.bar.buttons.media.background": "#21202e", "theme.bar.menus.menu.volume.text": "#e0def4", "theme.bar.menus.menu.volume.card.color": "#21202e", "theme.bar.menus.menu.volume.label.color": "#eb6f92", "theme.bar.menus.popover.text": "#c4a7e7", "theme.bar.menus.popover.background": "#1f1d2e", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#191724", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#e0def4", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#1f1d2e", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#191724", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#21202e", "theme.bar.menus.menu.notifications.switch.puck": "#26233a", "theme.bar.menus.menu.notifications.switch.disabled": "#1f1d2e", "theme.bar.menus.menu.notifications.switch.enabled": "#c4a7e7", "theme.bar.menus.menu.notifications.clear": "#eb6f92", "theme.bar.menus.menu.notifications.switch_divider": "#26233a", "theme.bar.menus.menu.notifications.border": "#1f1d2e", "theme.bar.menus.menu.notifications.card": "#21202e", "theme.bar.menus.menu.notifications.background": "#191724", "theme.bar.menus.menu.notifications.no_notifications_label": "#1f1d2e", "theme.bar.menus.menu.notifications.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#26233a", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#30738f", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#9ccfd8", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#eb6f92", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f6c177", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.input.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.input.background": "#30738f", "theme.bar.menus.menu.dashboard.controls.volume.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.volume.background": "#eb6f92", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f6c177", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#9ccfd8", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.disabled": "#403d52", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#9ccfd8", "theme.bar.menus.menu.dashboard.shortcuts.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.shortcuts.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.logout": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.restart": "#f6c177", "theme.bar.menus.menu.dashboard.profile.name": "#c4a7e7", "theme.bar.menus.menu.dashboard.border.color": "#1f1d2e", "theme.bar.menus.menu.dashboard.background.color": "#191724", "theme.bar.menus.menu.dashboard.card.color": "#21202e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.icon": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.time": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#9ccfd8", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#31748f", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#f6c177", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#eb6f92", "theme.bar.menus.menu.clock.weather.stats": "#c4a7e7", "theme.bar.menus.menu.clock.weather.status": "#9ccfd8", "theme.bar.menus.menu.clock.weather.temperature": "#e0def4", "theme.bar.menus.menu.clock.weather.icon": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.contextdays": "#403d52", "theme.bar.menus.menu.clock.calendar.days": "#e0def4", "theme.bar.menus.menu.clock.calendar.currentday": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.paginator": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.weekdays": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.yearmonth": "#9ccfd8", "theme.bar.menus.menu.clock.time.timeperiod": "#9ccfd8", "theme.bar.menus.menu.clock.time.time": "#c4a7e7", "theme.bar.menus.menu.clock.text": "#e0def4", "theme.bar.menus.menu.clock.border.color": "#1f1d2e", "theme.bar.menus.menu.clock.background.color": "#191724", "theme.bar.menus.menu.clock.card.color": "#21202e", "theme.bar.menus.menu.battery.slider.puck": "#26233a", "theme.bar.menus.menu.battery.slider.backgroundhover": "#26233a", "theme.bar.menus.menu.battery.slider.background": "#403d52", "theme.bar.menus.menu.battery.slider.primary": "#f6c177", "theme.bar.menus.menu.battery.icons.active": "#f6c177", "theme.bar.menus.menu.battery.icons.passive": "#524f67", "theme.bar.menus.menu.battery.listitems.active": "#f6c177", "theme.bar.menus.menu.battery.listitems.passive": "#e0def4", "theme.bar.menus.menu.battery.text": "#e0def4", "theme.bar.menus.menu.battery.label.color": "#f6c177", "theme.bar.menus.menu.battery.border.color": "#1f1d2e", "theme.bar.menus.menu.battery.background.color": "#191724", "theme.bar.menus.menu.battery.card.color": "#21202e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#21202e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#e0def4", "theme.bar.menus.menu.systray.dropdownmenu.background": "#191724", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.icons.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.icons.passive": "#524f67", "theme.bar.menus.menu.bluetooth.listitems.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.listitems.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.switch.puck": "#26233a", "theme.bar.menus.menu.bluetooth.switch.disabled": "#1f1d2e", "theme.bar.menus.menu.bluetooth.switch.enabled": "#9ccfd8", "theme.bar.menus.menu.bluetooth.switch_divider": "#26233a", "theme.bar.menus.menu.bluetooth.status": "#26233a", "theme.bar.menus.menu.bluetooth.text": "#e0def4", "theme.bar.menus.menu.bluetooth.label.color": "#9ccfd8", "theme.bar.menus.menu.bluetooth.border.color": "#1f1d2e", "theme.bar.menus.menu.bluetooth.background.color": "#191724", "theme.bar.menus.menu.bluetooth.card.color": "#21202e", "theme.bar.menus.menu.network.iconbuttons.active": "#c4a7e7", "theme.bar.menus.menu.network.iconbuttons.passive": "#e0def4", "theme.bar.menus.menu.network.icons.active": "#c4a7e7", "theme.bar.menus.menu.network.icons.passive": "#524f67", "theme.bar.menus.menu.network.listitems.active": "#c4a7e7", "theme.bar.menus.menu.network.listitems.passive": "#e0def4", "theme.bar.menus.menu.network.status.color": "#26233a", "theme.bar.menus.menu.network.text": "#e0def4", "theme.bar.menus.menu.network.label.color": "#c4a7e7", "theme.bar.menus.menu.network.border.color": "#1f1d2e", "theme.bar.menus.menu.network.background.color": "#191724", "theme.bar.menus.menu.network.card.color": "#21202e", "theme.bar.menus.menu.volume.input_slider.puck": "#403d52", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#26233a", "theme.bar.menus.menu.volume.input_slider.background": "#403d52", "theme.bar.menus.menu.volume.input_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.audio_slider.puck": "#403d52", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#26233a", "theme.bar.menus.menu.volume.audio_slider.background": "#403d52", "theme.bar.menus.menu.volume.audio_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.icons.active": "#eb6f92", "theme.bar.menus.menu.volume.icons.passive": "#524f67", "theme.bar.menus.menu.volume.iconbutton.active": "#eb6f92", "theme.bar.menus.menu.volume.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.volume.listitems.active": "#eb6f92", "theme.bar.menus.menu.volume.listitems.passive": "#e0def4", "theme.bar.menus.menu.volume.border.color": "#1f1d2e", "theme.bar.menus.menu.volume.background.color": "#191724", "theme.bar.menus.menu.media.slider.puck": "#26233a", "theme.bar.menus.menu.media.slider.backgroundhover": "#26233a", "theme.bar.menus.menu.media.slider.background": "#403d52", "theme.bar.menus.menu.media.slider.primary": "#c4a7e7", "theme.bar.menus.menu.media.buttons.text": "#191724", "theme.bar.menus.menu.media.buttons.background": "#c4a7e7", "theme.bar.menus.menu.media.buttons.enabled": "#9ccfd8", "theme.bar.menus.menu.media.buttons.inactive": "#403d52", "theme.bar.menus.menu.media.border.color": "#1f1d2e", "theme.bar.menus.menu.media.background.color": "#191724", "theme.bar.menus.menu.media.album": "#c4a7e7", "theme.bar.menus.menu.media.artist": "#9ccfd8", "theme.bar.menus.menu.media.song": "#c4a7e7", "theme.bar.menus.tooltip.text": "#e0def4", "theme.bar.menus.tooltip.background": "#191724", "theme.bar.menus.dropdownmenu.divider": "#21202e", "theme.bar.menus.dropdownmenu.text": "#e0def4", "theme.bar.menus.dropdownmenu.background": "#191724", "theme.bar.menus.slider.puck": "#26233a", "theme.bar.menus.slider.backgroundhover": "#26233a", "theme.bar.menus.slider.background": "#403d52", "theme.bar.menus.slider.primary": "#c4a7e7", "theme.bar.menus.progressbar.background": "#26233a", "theme.bar.menus.progressbar.foreground": "#c4a7e7", "theme.bar.menus.iconbuttons.active": "#c4a7e7", "theme.bar.menus.iconbuttons.passive": "#e0def4", "theme.bar.menus.buttons.text": "#1f1d2e", "theme.bar.menus.buttons.disabled": "#403d52", "theme.bar.menus.buttons.active": "#c4a7e7", "theme.bar.menus.buttons.default": "#c4a7e7", "theme.bar.menus.switch.puck": "#26233a", "theme.bar.menus.switch.disabled": "#1f1d2e", "theme.bar.menus.switch.enabled": "#c4a7e7", "theme.bar.menus.icons.active": "#c4a7e7", "theme.bar.menus.icons.passive": "#403d52", "theme.bar.menus.listitems.active": "#c4a7e7", "theme.bar.menus.listitems.passive": "#e0def4", "theme.bar.menus.label": "#c4a7e7", "theme.bar.menus.feinttext": "#1f1d2e", "theme.bar.menus.dimtext": "#403d52", "theme.bar.menus.cards": "#21202e", "theme.bar.buttons.notifications.total": "#c4a7e7", "theme.bar.buttons.notifications.icon": "#c4a7e7", "theme.bar.buttons.notifications.background": "#21202e", "theme.bar.buttons.clock.icon": "#c4a7e7", "theme.bar.buttons.clock.text": "#c4a7e7", "theme.bar.buttons.clock.background": "#21202e", "theme.bar.buttons.battery.icon": "#f6c177", "theme.bar.buttons.battery.text": "#f6c177", "theme.bar.buttons.battery.background": "#21202e", "theme.bar.buttons.systray.background": "#21202e", "theme.bar.buttons.bluetooth.icon": "#9ccfd8", "theme.bar.buttons.bluetooth.text": "#9ccfd8", "theme.bar.buttons.bluetooth.background": "#21202e", "theme.bar.buttons.network.icon": "#c4a7e7", "theme.bar.buttons.network.text": "#c4a7e7", "theme.bar.buttons.network.background": "#21202e", "theme.bar.buttons.volume.icon": "#eb6f92", "theme.bar.buttons.volume.text": "#eb6f92", "theme.bar.buttons.volume.background": "#21202e", "theme.bar.buttons.windowtitle.icon": "#c4a7e7", "theme.bar.buttons.windowtitle.text": "#c4a7e7", "theme.bar.buttons.windowtitle.background": "#21202e", "theme.bar.buttons.workspaces.active": "#c4a7e7", "theme.bar.buttons.workspaces.occupied": "#eb6f92", "theme.bar.buttons.workspaces.available": "#9ccfd8", "theme.bar.buttons.workspaces.hover": "#26233a", "theme.bar.buttons.workspaces.background": "#21202e", "theme.bar.buttons.dashboard.icon": "#f6c177", "theme.bar.buttons.dashboard.background": "#21202e", "theme.osd.label": "#c4a7e7", "theme.osd.icon": "#191724", "theme.osd.bar_overflow_color": "#eb6f92", "theme.osd.bar_empty_color": "#1f1d2e", "theme.osd.bar_color": "#c4a7e7", "theme.osd.icon_container": "#c4a7e7", "theme.osd.bar_container": "#191724", "theme.notification.close_button.label": "#191724", "theme.notification.close_button.background": "#eb6f92", "theme.notification.labelicon": "#c4a7e7", "theme.notification.text": "#e0def4", "theme.notification.time": "#403d52", "theme.notification.border": "#1f1d2e", "theme.notification.label": "#c4a7e7", "theme.notification.actions.text": "#1f1d2e", "theme.notification.actions.background": "#c4a7e7", "theme.notification.background": "#1f1d2e", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#21202e", "theme.bar.menus.check_radio_button.background": "#393452", "theme.bar.menus.check_radio_button.active": "#c4a7e7", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#c4a7e7", "theme.bar.menus.menu.notifications.scrollbar.color": "#c4a7e7", "theme.bar.menus.menu.notifications.pager.label": "#524f67", "theme.bar.menus.menu.notifications.pager.background": "#191724", "theme.bar.buttons.clock.icon_background": "#c4a7e7", "theme.bar.buttons.modules.ram.icon": "#f6c177", "theme.bar.buttons.modules.storage.icon_background": "#eb6f92", "theme.bar.menus.popover.border": "#1f1d2e", "theme.bar.buttons.volume.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#9ccfd8", "theme.bar.menus.menu.power.buttons.restart.text": "#f6c177", "theme.bar.buttons.modules.updates.background": "#21202e", "theme.bar.buttons.modules.storage.icon": "#eb6f92", "theme.bar.buttons.modules.netstat.background": "#21202e", "theme.bar.buttons.modules.weather.icon": "#c4a7e7", "theme.bar.buttons.modules.netstat.text": "#9ccfd8", "theme.bar.buttons.modules.storage.background": "#21202e", "theme.bar.buttons.modules.power.icon": "#eb6f92", "theme.bar.buttons.modules.storage.text": "#eb6f92", "theme.bar.buttons.modules.cpu.background": "#21202e", "theme.bar.menus.menu.power.border.color": "#1f1d2e", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.logout.icon": "#1f1d2e", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.restart.icon": "#1f1d2e", "theme.bar.buttons.modules.cpu.icon": "#eb6f92", "theme.bar.buttons.battery.icon_background": "#f6c177", "theme.bar.buttons.modules.kbLayout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.weather.text": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#1f1d2e", "theme.bar.menus.menu.power.buttons.sleep.text": "#9ccfd8", "theme.bar.buttons.modules.weather.icon_background": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.background": "#21202e", "theme.bar.buttons.media.icon_background": "#c4a7e7", "theme.bar.menus.menu.power.buttons.logout.background": "#21202e", "theme.bar.buttons.modules.kbLayout.icon": "#9ccfd8", "theme.bar.buttons.modules.ram.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.shutdown.text": "#eb6f92", "theme.bar.menus.menu.power.buttons.sleep.background": "#21202e", "theme.bar.buttons.modules.ram.text": "#f6c177", "theme.bar.menus.menu.power.buttons.logout.text": "#9ccfd8", "theme.bar.buttons.modules.updates.icon_background": "#30738f", "theme.bar.buttons.modules.kbLayout.background": "#21202e", "theme.bar.buttons.modules.power.background": "#21202e", "theme.bar.buttons.modules.weather.background": "#21202e", "theme.bar.buttons.icon_background": "#21202e", "theme.bar.menus.menu.power.background.color": "#191724", "theme.bar.buttons.modules.ram.background": "#21202e", "theme.bar.buttons.modules.netstat.icon": "#9ccfd8", "theme.bar.buttons.windowtitle.icon_background": "#c4a7e7", "theme.bar.buttons.modules.cpu.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.updates.text": "#30738f", "theme.bar.menus.menu.power.buttons.sleep.icon": "#1f1d2e", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#21202e", "theme.bar.buttons.modules.updates.icon": "#30738f", "theme.bar.buttons.modules.cpu.text": "#eb6f92", "theme.bar.buttons.modules.netstat.icon_background": "#9ccfd8", "theme.bar.buttons.modules.kbLayout.text": "#9ccfd8", "theme.bar.buttons.notifications.icon_background": "#c4a7e7", "theme.bar.buttons.modules.power.border": "#eb6f92", "theme.bar.buttons.modules.weather.border": "#c4a7e7", "theme.bar.buttons.modules.updates.border": "#30738f", "theme.bar.buttons.modules.kbLayout.border": "#9ccfd8", "theme.bar.buttons.modules.netstat.border": "#9ccfd8", "theme.bar.buttons.modules.storage.border": "#eb6f92", "theme.bar.buttons.modules.cpu.border": "#eb6f92", "theme.bar.buttons.modules.ram.border": "#f6c177", "theme.bar.buttons.notifications.border": "#c4a7e7", "theme.bar.buttons.clock.border": "#c4a7e7", "theme.bar.buttons.battery.border": "#f6c177", "theme.bar.buttons.systray.border": "#26233a", "theme.bar.buttons.bluetooth.border": "#9ccfd8", "theme.bar.buttons.network.border": "#c4a7e7", "theme.bar.buttons.volume.border": "#eb6f92", "theme.bar.buttons.media.border": "#c4a7e7", "theme.bar.buttons.windowtitle.border": "#c4a7e7", "theme.bar.buttons.workspaces.border": "#1f1d2e", "theme.bar.buttons.dashboard.border": "#f6c177", "theme.bar.buttons.modules.submap.background": "#21202e", "theme.bar.buttons.modules.submap.text": "#9ccfd8", "theme.bar.buttons.modules.submap.border": "#9ccfd8", "theme.bar.buttons.modules.submap.icon": "#9ccfd8", "theme.bar.buttons.modules.submap.icon_background": "#21202e" } ================================================ FILE: .config/ags/themes/rose_pine_moon.json ================================================ { "theme.bar.menus.background": "#232136", "theme.bar.background": "#232136", "theme.bar.buttons.media.icon": "#c4a7e7", "theme.bar.buttons.media.text": "#c4a7e7", "theme.bar.buttons.icon": "#c4a7e7", "theme.bar.buttons.text": "#c4a7e7", "theme.bar.buttons.hover": "#393552", "theme.bar.buttons.background": "#2a283e", "theme.bar.menus.text": "#e0def4", "theme.bar.menus.border.color": "#2a273f", "theme.bar.buttons.media.background": "#2a283e", "theme.bar.menus.menu.volume.text": "#e0def4", "theme.bar.menus.menu.volume.card.color": "#2a283e", "theme.bar.menus.menu.volume.label.color": "#eb6f92", "theme.bar.menus.popover.text": "#c4a7e7", "theme.bar.menus.popover.background": "#2a273f", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#232136", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#e0def4", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#2a273f", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#232136", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#2a283e", "theme.bar.menus.menu.notifications.switch.puck": "#393552", "theme.bar.menus.menu.notifications.switch.disabled": "#2a273f", "theme.bar.menus.menu.notifications.switch.enabled": "#c4a7e7", "theme.bar.menus.menu.notifications.clear": "#eb6f92", "theme.bar.menus.menu.notifications.switch_divider": "#393552", "theme.bar.menus.menu.notifications.border": "#2a273f", "theme.bar.menus.menu.notifications.card": "#2a283e", "theme.bar.menus.menu.notifications.background": "#232136", "theme.bar.menus.menu.notifications.no_notifications_label": "#2a273f", "theme.bar.menus.menu.notifications.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#393552", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#3e8eb0", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#9ccfd8", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#eb6f92", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f6c177", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.input.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.input.background": "#3e8eb0", "theme.bar.menus.menu.dashboard.controls.volume.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.volume.background": "#eb6f92", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f6c177", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#9ccfd8", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.disabled": "#44415a", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#9ccfd8", "theme.bar.menus.menu.dashboard.shortcuts.text": "#2a273f", "theme.bar.menus.menu.dashboard.shortcuts.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.logout": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.restart": "#f6c177", "theme.bar.menus.menu.dashboard.profile.name": "#c4a7e7", "theme.bar.menus.menu.dashboard.border.color": "#2a273f", "theme.bar.menus.menu.dashboard.background.color": "#232136", "theme.bar.menus.menu.dashboard.card.color": "#2a283e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.icon": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.time": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#9ccfd8", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#3e8fb0", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#f6c177", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#eb6f92", "theme.bar.menus.menu.clock.weather.stats": "#c4a7e7", "theme.bar.menus.menu.clock.weather.status": "#9ccfd8", "theme.bar.menus.menu.clock.weather.temperature": "#e0def4", "theme.bar.menus.menu.clock.weather.icon": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.contextdays": "#44415a", "theme.bar.menus.menu.clock.calendar.days": "#e0def4", "theme.bar.menus.menu.clock.calendar.currentday": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.paginator": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.weekdays": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.yearmonth": "#9ccfd8", "theme.bar.menus.menu.clock.time.timeperiod": "#9ccfd8", "theme.bar.menus.menu.clock.time.time": "#c4a7e7", "theme.bar.menus.menu.clock.text": "#e0def4", "theme.bar.menus.menu.clock.border.color": "#2a273f", "theme.bar.menus.menu.clock.background.color": "#232136", "theme.bar.menus.menu.clock.card.color": "#2a283e", "theme.bar.menus.menu.battery.slider.puck": "#393552", "theme.bar.menus.menu.battery.slider.backgroundhover": "#393552", "theme.bar.menus.menu.battery.slider.background": "#44415a", "theme.bar.menus.menu.battery.slider.primary": "#f6c177", "theme.bar.menus.menu.battery.icons.active": "#f6c177", "theme.bar.menus.menu.battery.icons.passive": "#56526e", "theme.bar.menus.menu.battery.listitems.active": "#f6c177", "theme.bar.menus.menu.battery.listitems.passive": "#e0def4", "theme.bar.menus.menu.battery.text": "#e0def4", "theme.bar.menus.menu.battery.label.color": "#f6c177", "theme.bar.menus.menu.battery.border.color": "#2a273f", "theme.bar.menus.menu.battery.background.color": "#232136", "theme.bar.menus.menu.battery.card.color": "#2a283e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#2a283e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#e0def4", "theme.bar.menus.menu.systray.dropdownmenu.background": "#232136", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.icons.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.icons.passive": "#56526e", "theme.bar.menus.menu.bluetooth.listitems.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.listitems.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.switch.puck": "#393552", "theme.bar.menus.menu.bluetooth.switch.disabled": "#2a273f", "theme.bar.menus.menu.bluetooth.switch.enabled": "#9ccfd8", "theme.bar.menus.menu.bluetooth.switch_divider": "#393552", "theme.bar.menus.menu.bluetooth.status": "#393552", "theme.bar.menus.menu.bluetooth.text": "#e0def4", "theme.bar.menus.menu.bluetooth.label.color": "#9ccfd8", "theme.bar.menus.menu.bluetooth.border.color": "#2a273f", "theme.bar.menus.menu.bluetooth.background.color": "#232136", "theme.bar.menus.menu.bluetooth.card.color": "#2a283e", "theme.bar.menus.menu.network.iconbuttons.active": "#c4a7e7", "theme.bar.menus.menu.network.iconbuttons.passive": "#e0def4", "theme.bar.menus.menu.network.icons.active": "#c4a7e7", "theme.bar.menus.menu.network.icons.passive": "#56526e", "theme.bar.menus.menu.network.listitems.active": "#c4a7e7", "theme.bar.menus.menu.network.listitems.passive": "#e0def4", "theme.bar.menus.menu.network.status.color": "#393552", "theme.bar.menus.menu.network.text": "#e0def4", "theme.bar.menus.menu.network.label.color": "#c4a7e7", "theme.bar.menus.menu.network.border.color": "#2a273f", "theme.bar.menus.menu.network.background.color": "#232136", "theme.bar.menus.menu.network.card.color": "#2a283e", "theme.bar.menus.menu.volume.input_slider.puck": "#44415a", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#393552", "theme.bar.menus.menu.volume.input_slider.background": "#44415a", "theme.bar.menus.menu.volume.input_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.audio_slider.puck": "#44415a", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#393552", "theme.bar.menus.menu.volume.audio_slider.background": "#44415a", "theme.bar.menus.menu.volume.audio_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.icons.active": "#eb6f92", "theme.bar.menus.menu.volume.icons.passive": "#56526e", "theme.bar.menus.menu.volume.iconbutton.active": "#eb6f92", "theme.bar.menus.menu.volume.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.volume.listitems.active": "#eb6f92", "theme.bar.menus.menu.volume.listitems.passive": "#e0def4", "theme.bar.menus.menu.volume.border.color": "#2a273f", "theme.bar.menus.menu.volume.background.color": "#232136", "theme.bar.menus.menu.media.slider.puck": "#393552", "theme.bar.menus.menu.media.slider.backgroundhover": "#393552", "theme.bar.menus.menu.media.slider.background": "#44415a", "theme.bar.menus.menu.media.slider.primary": "#c4a7e7", "theme.bar.menus.menu.media.buttons.text": "#232136", "theme.bar.menus.menu.media.buttons.background": "#c4a7e7", "theme.bar.menus.menu.media.buttons.enabled": "#9ccfd8", "theme.bar.menus.menu.media.buttons.inactive": "#44415a", "theme.bar.menus.menu.media.border.color": "#2a273f", "theme.bar.menus.menu.media.background.color": "#232136", "theme.bar.menus.menu.media.album": "#c4a7e7", "theme.bar.menus.menu.media.artist": "#9ccfd8", "theme.bar.menus.menu.media.song": "#c4a7e7", "theme.bar.menus.tooltip.text": "#e0def4", "theme.bar.menus.tooltip.background": "#232136", "theme.bar.menus.dropdownmenu.divider": "#2a283e", "theme.bar.menus.dropdownmenu.text": "#e0def4", "theme.bar.menus.dropdownmenu.background": "#232136", "theme.bar.menus.slider.puck": "#393552", "theme.bar.menus.slider.backgroundhover": "#393552", "theme.bar.menus.slider.background": "#44415a", "theme.bar.menus.slider.primary": "#c4a7e7", "theme.bar.menus.progressbar.background": "#393552", "theme.bar.menus.progressbar.foreground": "#c4a7e7", "theme.bar.menus.iconbuttons.active": "#c4a7e7", "theme.bar.menus.iconbuttons.passive": "#e0def4", "theme.bar.menus.buttons.text": "#2a273f", "theme.bar.menus.buttons.disabled": "#44415a", "theme.bar.menus.buttons.active": "#c4a7e7", "theme.bar.menus.buttons.default": "#c4a7e7", "theme.bar.menus.switch.puck": "#393552", "theme.bar.menus.switch.disabled": "#2a273f", "theme.bar.menus.switch.enabled": "#c4a7e7", "theme.bar.menus.icons.active": "#c4a7e7", "theme.bar.menus.icons.passive": "#44415a", "theme.bar.menus.listitems.active": "#c4a7e7", "theme.bar.menus.listitems.passive": "#e0def4", "theme.bar.menus.label": "#c4a7e7", "theme.bar.menus.feinttext": "#2a273f", "theme.bar.menus.dimtext": "#44415a", "theme.bar.menus.cards": "#2a283e", "theme.bar.buttons.notifications.total": "#c4a7e7", "theme.bar.buttons.notifications.icon": "#c4a7e7", "theme.bar.buttons.notifications.background": "#2a283e", "theme.bar.buttons.clock.icon": "#c4a7e7", "theme.bar.buttons.clock.text": "#c4a7e7", "theme.bar.buttons.clock.background": "#2a283e", "theme.bar.buttons.battery.icon": "#f6c177", "theme.bar.buttons.battery.text": "#f6c177", "theme.bar.buttons.battery.background": "#2a283e", "theme.bar.buttons.systray.background": "#2a283e", "theme.bar.buttons.bluetooth.icon": "#9ccfd8", "theme.bar.buttons.bluetooth.text": "#9ccfd8", "theme.bar.buttons.bluetooth.background": "#2a283e", "theme.bar.buttons.network.icon": "#c4a7e7", "theme.bar.buttons.network.text": "#c4a7e7", "theme.bar.buttons.network.background": "#2a283e", "theme.bar.buttons.volume.icon": "#eb6f92", "theme.bar.buttons.volume.text": "#eb6f92", "theme.bar.buttons.volume.background": "#2a283e", "theme.bar.buttons.windowtitle.icon": "#c4a7e7", "theme.bar.buttons.windowtitle.text": "#c4a7e7", "theme.bar.buttons.windowtitle.background": "#2a283e", "theme.bar.buttons.workspaces.active": "#c4a7e7", "theme.bar.buttons.workspaces.occupied": "#eb6f92", "theme.bar.buttons.workspaces.available": "#9ccfd8", "theme.bar.buttons.workspaces.hover": "#393552", "theme.bar.buttons.workspaces.background": "#2a283e", "theme.bar.buttons.dashboard.icon": "#f6c177", "theme.bar.buttons.dashboard.background": "#2a283e", "theme.osd.label": "#c4a7e7", "theme.osd.icon": "#232136", "theme.osd.bar_overflow_color": "#eb6f92", "theme.osd.bar_empty_color": "#2a273f", "theme.osd.bar_color": "#c4a7e7", "theme.osd.icon_container": "#c4a7e7", "theme.osd.bar_container": "#232136", "theme.notification.close_button.label": "#232136", "theme.notification.close_button.background": "#eb6f92", "theme.notification.labelicon": "#c4a7e7", "theme.notification.text": "#e0def4", "theme.notification.time": "#56526e", "theme.notification.border": "#2a273f", "theme.notification.label": "#c4a7e7", "theme.notification.actions.text": "#2a273f", "theme.notification.actions.background": "#c4a7e7", "theme.notification.background": "#2a273f", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#2a283e", "theme.bar.menus.check_radio_button.background": "#393452", "theme.bar.menus.check_radio_button.active": "#c4a7e7", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#c4a7e7", "theme.bar.menus.menu.notifications.scrollbar.color": "#c4a7e7", "theme.bar.menus.menu.notifications.pager.label": "#56526e", "theme.bar.menus.menu.notifications.pager.background": "#232136", "theme.bar.buttons.modules.ram.icon": "#f6c177", "theme.bar.buttons.modules.storage.icon_background": "#2a283e", "theme.bar.buttons.modules.storage.icon": "#c4a7e7", "theme.bar.buttons.modules.weather.icon": "#c4a7e7", "theme.bar.buttons.modules.power.icon": "#eb6f92", "theme.bar.menus.menu.power.border.color": "#2a273f", "theme.bar.buttons.modules.power.icon_background": "#2a283e", "theme.bar.buttons.modules.cpu.icon": "#eb6f92", "theme.bar.buttons.modules.kbLayout.icon_background": "#2a283e", "theme.bar.buttons.modules.weather.text": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#2a273f", "theme.bar.buttons.modules.weather.icon_background": "#2a283e", "theme.bar.menus.menu.power.buttons.shutdown.background": "#2a283e", "theme.bar.buttons.modules.kbLayout.icon": "#9ccfd8", "theme.bar.buttons.modules.ram.icon_background": "#2a283e", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.shutdown.text": "#eb6f92", "theme.bar.buttons.modules.updates.icon_background": "#2a283e", "theme.bar.menus.menu.power.background.color": "#232136", "theme.bar.buttons.modules.netstat.icon": "#9ccfd8", "theme.bar.buttons.modules.cpu.icon_background": "#2a283e", "theme.bar.buttons.modules.updates.icon": "#3e8eb0", "theme.bar.buttons.modules.netstat.icon_background": "#2a283e", "theme.bar.buttons.clock.icon_background": "#c4a7e7", "theme.bar.menus.popover.border": "#2a273f", "theme.bar.buttons.volume.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#9ccfd8", "theme.bar.menus.menu.power.buttons.restart.text": "#f6c177", "theme.bar.buttons.modules.updates.background": "#2a283e", "theme.bar.buttons.modules.netstat.background": "#2a283e", "theme.bar.buttons.modules.netstat.text": "#9ccfd8", "theme.bar.buttons.modules.storage.background": "#2a283e", "theme.bar.buttons.modules.storage.text": "#eb6f92", "theme.bar.buttons.modules.cpu.background": "#2a283e", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.menus.menu.power.buttons.logout.icon": "#2a273f", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.restart.icon": "#2a273f", "theme.bar.buttons.battery.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.sleep.text": "#9ccfd8", "theme.bar.buttons.media.icon_background": "#c4a7e7", "theme.bar.menus.menu.power.buttons.logout.background": "#2a283e", "theme.bar.menus.menu.power.buttons.sleep.background": "#2a283e", "theme.bar.buttons.modules.ram.text": "#f6c177", "theme.bar.menus.menu.power.buttons.logout.text": "#9ccfd8", "theme.bar.buttons.modules.kbLayout.background": "#2a283e", "theme.bar.buttons.modules.power.background": "#2a283e", "theme.bar.buttons.modules.weather.background": "#2a283e", "theme.bar.buttons.icon_background": "#2a283e", "theme.bar.buttons.modules.ram.background": "#2a283e", "theme.bar.buttons.windowtitle.icon_background": "#c4a7e7", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.updates.text": "#3e8eb0", "theme.bar.menus.menu.power.buttons.sleep.icon": "#2a273f", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#2a283e", "theme.bar.buttons.modules.cpu.text": "#eb6f92", "theme.bar.buttons.modules.kbLayout.text": "#9ccfd8", "theme.bar.buttons.notifications.icon_background": "#c4a7e7", "theme.bar.buttons.modules.power.border": "#eb6f92", "theme.bar.buttons.modules.weather.border": "#c4a7e7", "theme.bar.buttons.modules.updates.border": "#30738f", "theme.bar.buttons.modules.kbLayout.border": "#9ccfd8", "theme.bar.buttons.modules.netstat.border": "#9ccfd8", "theme.bar.buttons.modules.storage.border": "#eb6f92", "theme.bar.buttons.modules.cpu.border": "#eb6f92", "theme.bar.buttons.modules.ram.border": "#f6c177", "theme.bar.buttons.notifications.border": "#c4a7e7", "theme.bar.buttons.clock.border": "#c4a7e7", "theme.bar.buttons.battery.border": "#f6c177", "theme.bar.buttons.systray.border": "#26233a", "theme.bar.buttons.bluetooth.border": "#9ccfd8", "theme.bar.buttons.network.border": "#c4a7e7", "theme.bar.buttons.volume.border": "#eb6f92", "theme.bar.buttons.media.border": "#c4a7e7", "theme.bar.buttons.windowtitle.border": "#c4a7e7", "theme.bar.buttons.workspaces.border": "#1f1d2e", "theme.bar.buttons.dashboard.border": "#f6c177", "theme.bar.buttons.modules.submap.background": "#2a283e", "theme.bar.buttons.modules.submap.text": "#9ccfd8", "theme.bar.buttons.modules.submap.border": "#9ccfd8", "theme.bar.buttons.modules.submap.icon": "#9ccfd8", "theme.bar.buttons.modules.submap.icon_background": "#2a283e" } ================================================ FILE: .config/ags/themes/rose_pine_moon_split.json ================================================ { "theme.bar.menus.background": "#232136", "theme.bar.background": "#232136", "theme.bar.buttons.media.icon": "#2a283e", "theme.bar.buttons.media.text": "#c4a7e7", "theme.bar.buttons.icon": "#c4a7e7", "theme.bar.buttons.text": "#c4a7e7", "theme.bar.buttons.hover": "#393552", "theme.bar.buttons.background": "#2a283e", "theme.bar.menus.text": "#e0def4", "theme.bar.menus.border.color": "#2a273f", "theme.bar.buttons.media.background": "#2a283e", "theme.bar.menus.menu.volume.text": "#e0def4", "theme.bar.menus.menu.volume.card.color": "#2a283e", "theme.bar.menus.menu.volume.label.color": "#eb6f92", "theme.bar.menus.popover.text": "#c4a7e7", "theme.bar.menus.popover.background": "#2a273f", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#232136", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#e0def4", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#2a273f", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#232136", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#2a283e", "theme.bar.menus.menu.notifications.switch.puck": "#393552", "theme.bar.menus.menu.notifications.switch.disabled": "#2a273f", "theme.bar.menus.menu.notifications.switch.enabled": "#c4a7e7", "theme.bar.menus.menu.notifications.clear": "#eb6f92", "theme.bar.menus.menu.notifications.switch_divider": "#393552", "theme.bar.menus.menu.notifications.border": "#2a273f", "theme.bar.menus.menu.notifications.card": "#2a283e", "theme.bar.menus.menu.notifications.background": "#232136", "theme.bar.menus.menu.notifications.no_notifications_label": "#2a273f", "theme.bar.menus.menu.notifications.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#393552", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#3e8eb0", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#9ccfd8", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#eb6f92", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f6c177", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.input.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.input.background": "#3e8eb0", "theme.bar.menus.menu.dashboard.controls.volume.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.volume.background": "#eb6f92", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f6c177", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#9ccfd8", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#2a273f", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.disabled": "#44415a", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#9ccfd8", "theme.bar.menus.menu.dashboard.shortcuts.text": "#2a273f", "theme.bar.menus.menu.dashboard.shortcuts.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.logout": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.restart": "#f6c177", "theme.bar.menus.menu.dashboard.profile.name": "#c4a7e7", "theme.bar.menus.menu.dashboard.border.color": "#2a273f", "theme.bar.menus.menu.dashboard.background.color": "#232136", "theme.bar.menus.menu.dashboard.card.color": "#2a283e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.icon": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.time": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#9ccfd8", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#3e8fb0", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#f6c177", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#eb6f92", "theme.bar.menus.menu.clock.weather.stats": "#c4a7e7", "theme.bar.menus.menu.clock.weather.status": "#9ccfd8", "theme.bar.menus.menu.clock.weather.temperature": "#e0def4", "theme.bar.menus.menu.clock.weather.icon": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.contextdays": "#44415a", "theme.bar.menus.menu.clock.calendar.days": "#e0def4", "theme.bar.menus.menu.clock.calendar.currentday": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.paginator": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.weekdays": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.yearmonth": "#9ccfd8", "theme.bar.menus.menu.clock.time.timeperiod": "#9ccfd8", "theme.bar.menus.menu.clock.time.time": "#c4a7e7", "theme.bar.menus.menu.clock.text": "#e0def4", "theme.bar.menus.menu.clock.border.color": "#2a273f", "theme.bar.menus.menu.clock.background.color": "#232136", "theme.bar.menus.menu.clock.card.color": "#2a283e", "theme.bar.menus.menu.battery.slider.puck": "#393552", "theme.bar.menus.menu.battery.slider.backgroundhover": "#393552", "theme.bar.menus.menu.battery.slider.background": "#44415a", "theme.bar.menus.menu.battery.slider.primary": "#f6c177", "theme.bar.menus.menu.battery.icons.active": "#f6c177", "theme.bar.menus.menu.battery.icons.passive": "#56526e", "theme.bar.menus.menu.battery.listitems.active": "#f6c177", "theme.bar.menus.menu.battery.listitems.passive": "#e0def4", "theme.bar.menus.menu.battery.text": "#e0def4", "theme.bar.menus.menu.battery.label.color": "#f6c177", "theme.bar.menus.menu.battery.border.color": "#2a273f", "theme.bar.menus.menu.battery.background.color": "#232136", "theme.bar.menus.menu.battery.card.color": "#2a283e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#2a283e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#e0def4", "theme.bar.menus.menu.systray.dropdownmenu.background": "#232136", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.icons.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.icons.passive": "#56526e", "theme.bar.menus.menu.bluetooth.listitems.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.listitems.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.switch.puck": "#393552", "theme.bar.menus.menu.bluetooth.switch.disabled": "#2a273f", "theme.bar.menus.menu.bluetooth.switch.enabled": "#9ccfd8", "theme.bar.menus.menu.bluetooth.switch_divider": "#393552", "theme.bar.menus.menu.bluetooth.status": "#393552", "theme.bar.menus.menu.bluetooth.text": "#e0def4", "theme.bar.menus.menu.bluetooth.label.color": "#9ccfd8", "theme.bar.menus.menu.bluetooth.border.color": "#2a273f", "theme.bar.menus.menu.bluetooth.background.color": "#232136", "theme.bar.menus.menu.bluetooth.card.color": "#2a283e", "theme.bar.menus.menu.network.iconbuttons.active": "#c4a7e7", "theme.bar.menus.menu.network.iconbuttons.passive": "#e0def4", "theme.bar.menus.menu.network.icons.active": "#c4a7e7", "theme.bar.menus.menu.network.icons.passive": "#56526e", "theme.bar.menus.menu.network.listitems.active": "#c4a7e7", "theme.bar.menus.menu.network.listitems.passive": "#e0def4", "theme.bar.menus.menu.network.status.color": "#393552", "theme.bar.menus.menu.network.text": "#e0def4", "theme.bar.menus.menu.network.label.color": "#c4a7e7", "theme.bar.menus.menu.network.border.color": "#2a273f", "theme.bar.menus.menu.network.background.color": "#232136", "theme.bar.menus.menu.network.card.color": "#2a283e", "theme.bar.menus.menu.volume.input_slider.puck": "#44415a", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#393552", "theme.bar.menus.menu.volume.input_slider.background": "#44415a", "theme.bar.menus.menu.volume.input_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.audio_slider.puck": "#44415a", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#393552", "theme.bar.menus.menu.volume.audio_slider.background": "#44415a", "theme.bar.menus.menu.volume.audio_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.icons.active": "#eb6f92", "theme.bar.menus.menu.volume.icons.passive": "#56526e", "theme.bar.menus.menu.volume.iconbutton.active": "#eb6f92", "theme.bar.menus.menu.volume.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.volume.listitems.active": "#eb6f92", "theme.bar.menus.menu.volume.listitems.passive": "#e0def4", "theme.bar.menus.menu.volume.border.color": "#2a273f", "theme.bar.menus.menu.volume.background.color": "#232136", "theme.bar.menus.menu.media.slider.puck": "#393552", "theme.bar.menus.menu.media.slider.backgroundhover": "#393552", "theme.bar.menus.menu.media.slider.background": "#44415a", "theme.bar.menus.menu.media.slider.primary": "#c4a7e7", "theme.bar.menus.menu.media.buttons.text": "#232136", "theme.bar.menus.menu.media.buttons.background": "#c4a7e7", "theme.bar.menus.menu.media.buttons.enabled": "#9ccfd8", "theme.bar.menus.menu.media.buttons.inactive": "#44415a", "theme.bar.menus.menu.media.border.color": "#2a273f", "theme.bar.menus.menu.media.background.color": "#232136", "theme.bar.menus.menu.media.album": "#c4a7e7", "theme.bar.menus.menu.media.artist": "#9ccfd8", "theme.bar.menus.menu.media.song": "#c4a7e7", "theme.bar.menus.tooltip.text": "#e0def4", "theme.bar.menus.tooltip.background": "#232136", "theme.bar.menus.dropdownmenu.divider": "#2a283e", "theme.bar.menus.dropdownmenu.text": "#e0def4", "theme.bar.menus.dropdownmenu.background": "#232136", "theme.bar.menus.slider.puck": "#393552", "theme.bar.menus.slider.backgroundhover": "#393552", "theme.bar.menus.slider.background": "#44415a", "theme.bar.menus.slider.primary": "#c4a7e7", "theme.bar.menus.progressbar.background": "#393552", "theme.bar.menus.progressbar.foreground": "#c4a7e7", "theme.bar.menus.iconbuttons.active": "#c4a7e7", "theme.bar.menus.iconbuttons.passive": "#e0def4", "theme.bar.menus.buttons.text": "#2a273f", "theme.bar.menus.buttons.disabled": "#44415a", "theme.bar.menus.buttons.active": "#c4a7e7", "theme.bar.menus.buttons.default": "#c4a7e7", "theme.bar.menus.switch.puck": "#393552", "theme.bar.menus.switch.disabled": "#2a273f", "theme.bar.menus.switch.enabled": "#c4a7e7", "theme.bar.menus.icons.active": "#c4a7e7", "theme.bar.menus.icons.passive": "#44415a", "theme.bar.menus.listitems.active": "#c4a7e7", "theme.bar.menus.listitems.passive": "#e0def4", "theme.bar.menus.label": "#c4a7e7", "theme.bar.menus.feinttext": "#2a273f", "theme.bar.menus.dimtext": "#44415a", "theme.bar.menus.cards": "#2a283e", "theme.bar.buttons.notifications.total": "#c4a7e7", "theme.bar.buttons.notifications.icon": "#2a283e", "theme.bar.buttons.notifications.background": "#2a283e", "theme.bar.buttons.clock.icon": "#2a283e", "theme.bar.buttons.clock.text": "#c4a7e7", "theme.bar.buttons.clock.background": "#2a283e", "theme.bar.buttons.battery.icon": "#2a283e", "theme.bar.buttons.battery.text": "#f6c177", "theme.bar.buttons.battery.background": "#2a283e", "theme.bar.buttons.systray.background": "#2a283e", "theme.bar.buttons.bluetooth.icon": "#2a283e", "theme.bar.buttons.bluetooth.text": "#9ccfd8", "theme.bar.buttons.bluetooth.background": "#2a283e", "theme.bar.buttons.network.icon": "#2a283e", "theme.bar.buttons.network.text": "#c4a7e7", "theme.bar.buttons.network.background": "#2a283e", "theme.bar.buttons.volume.icon": "#2a283e", "theme.bar.buttons.volume.text": "#eb6f92", "theme.bar.buttons.volume.background": "#2a283e", "theme.bar.buttons.windowtitle.icon": "#2a283e", "theme.bar.buttons.windowtitle.text": "#c4a7e7", "theme.bar.buttons.windowtitle.background": "#2a283e", "theme.bar.buttons.workspaces.active": "#c4a7e7", "theme.bar.buttons.workspaces.occupied": "#eb6f92", "theme.bar.buttons.workspaces.available": "#9ccfd8", "theme.bar.buttons.workspaces.hover": "#c4a7e7", "theme.bar.buttons.workspaces.background": "#2a283e", "theme.bar.buttons.dashboard.icon": "#2a283e", "theme.bar.buttons.dashboard.background": "#f6c177", "theme.osd.label": "#c4a7e7", "theme.osd.icon": "#232136", "theme.osd.bar_overflow_color": "#eb6f92", "theme.osd.bar_empty_color": "#2a273f", "theme.osd.bar_color": "#c4a7e7", "theme.osd.icon_container": "#c4a7e7", "theme.osd.bar_container": "#232136", "theme.notification.close_button.label": "#232136", "theme.notification.close_button.background": "#eb6f92", "theme.notification.labelicon": "#c4a7e7", "theme.notification.text": "#e0def4", "theme.notification.time": "#56526e", "theme.notification.border": "#2a273f", "theme.notification.label": "#c4a7e7", "theme.notification.actions.text": "#2a273f", "theme.notification.actions.background": "#c4a7e7", "theme.notification.background": "#2a273f", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#2a283e", "theme.bar.menus.check_radio_button.background": "#393452", "theme.bar.menus.check_radio_button.active": "#c4a7e7", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#eb6f92", "theme.bar.buttons.network.icon_background": "#c4a7e7", "theme.bar.buttons.bluetooth.icon_background": "#9ccfd8", "theme.bar.buttons.windowtitle.icon_background": "#c4a7e7", "theme.bar.buttons.media.icon_background": "#c4a7e7", "theme.bar.buttons.notifications.icon_background": "#c4a7e7", "theme.bar.buttons.battery.icon_background": "#f6c177", "theme.bar.buttons.clock.icon_background": "#c4a7e7", "theme.bar.menus.menu.notifications.pager.button": "#c4a7e7", "theme.bar.menus.menu.notifications.scrollbar.color": "#c4a7e7", "theme.bar.menus.menu.notifications.pager.label": "#56526e", "theme.bar.menus.menu.notifications.pager.background": "#232136", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.storage.icon_background": "#eb6f92", "theme.bar.menus.popover.border": "#2a273f", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#9ccfd8", "theme.bar.menus.menu.power.buttons.restart.text": "#f6c177", "theme.bar.buttons.modules.updates.background": "#2a283e", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.netstat.background": "#2a283e", "theme.bar.buttons.modules.weather.icon": "#2a283e", "theme.bar.buttons.modules.netstat.text": "#9ccfd8", "theme.bar.buttons.modules.storage.background": "#2a283e", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.buttons.modules.storage.text": "#eb6f92", "theme.bar.buttons.modules.cpu.background": "#2a283e", "theme.bar.menus.menu.power.border.color": "#2a273f", "theme.bar.buttons.modules.power.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.logout.icon": "#2a273f", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.restart.icon": "#2a273f", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.kbLayout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.weather.text": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#2a273f", "theme.bar.menus.menu.power.buttons.sleep.text": "#9ccfd8", "theme.bar.buttons.modules.weather.icon_background": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.background": "#2a283e", "theme.bar.menus.menu.power.buttons.logout.background": "#2a283e", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.ram.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.shutdown.text": "#eb6f92", "theme.bar.menus.menu.power.buttons.sleep.background": "#2a283e", "theme.bar.buttons.modules.ram.text": "#f6c177", "theme.bar.menus.menu.power.buttons.logout.text": "#9ccfd8", "theme.bar.buttons.modules.updates.icon_background": "#3e8eb0", "theme.bar.buttons.modules.kbLayout.background": "#2a283e", "theme.bar.buttons.modules.power.background": "#2a283e", "theme.bar.buttons.modules.weather.background": "#2a283e", "theme.bar.menus.menu.power.background.color": "#232136", "theme.bar.buttons.modules.ram.background": "#2a283e", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.cpu.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.updates.text": "#3e8eb0", "theme.bar.menus.menu.power.buttons.sleep.icon": "#2a273f", "theme.bar.menus.menu.power.buttons.restart.background": "#2a283e", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.cpu.text": "#eb6f92", "theme.bar.buttons.modules.netstat.icon_background": "#9ccfd8", "theme.bar.buttons.modules.kbLayout.text": "#9ccfd8", "theme.bar.buttons.modules.power.border": "#eb6f92", "theme.bar.buttons.modules.weather.border": "#c4a7e7", "theme.bar.buttons.modules.updates.border": "#30738f", "theme.bar.buttons.modules.kbLayout.border": "#9ccfd8", "theme.bar.buttons.modules.netstat.border": "#9ccfd8", "theme.bar.buttons.modules.storage.border": "#eb6f92", "theme.bar.buttons.modules.cpu.border": "#eb6f92", "theme.bar.buttons.modules.ram.border": "#f6c177", "theme.bar.buttons.notifications.border": "#c4a7e7", "theme.bar.buttons.clock.border": "#c4a7e7", "theme.bar.buttons.battery.border": "#f6c177", "theme.bar.buttons.systray.border": "#26233a", "theme.bar.buttons.bluetooth.border": "#9ccfd8", "theme.bar.buttons.network.border": "#c4a7e7", "theme.bar.buttons.volume.border": "#eb6f92", "theme.bar.buttons.media.border": "#c4a7e7", "theme.bar.buttons.windowtitle.border": "#c4a7e7", "theme.bar.buttons.workspaces.border": "#1f1d2e", "theme.bar.buttons.dashboard.border": "#f6c177", "theme.bar.buttons.modules.submap.background": "#2a283e", "theme.bar.buttons.modules.submap.text": "#9ccfd8", "theme.bar.buttons.modules.submap.border": "#9ccfd8", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.icon_background": "#9ccfd8" } ================================================ FILE: .config/ags/themes/rose_pine_split.json ================================================ { "theme.bar.menus.background": "#191724", "theme.bar.background": "#191724", "theme.bar.buttons.media.icon": "#21202e", "theme.bar.buttons.media.text": "#c4a7e7", "theme.bar.buttons.icon": "#c4a7e7", "theme.bar.buttons.text": "#c4a7e7", "theme.bar.buttons.hover": "#26233a", "theme.bar.buttons.background": "#21202e", "theme.bar.menus.text": "#e0def4", "theme.bar.menus.border.color": "#1f1d2e", "theme.bar.buttons.media.background": "#21202e", "theme.bar.menus.menu.volume.text": "#e0def4", "theme.bar.menus.menu.volume.card.color": "#21202e", "theme.bar.menus.menu.volume.label.color": "#eb6f92", "theme.bar.menus.popover.text": "#c4a7e7", "theme.bar.menus.popover.background": "#1f1d2e", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#eb6f92", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#191724", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#e0def4", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#1f1d2e", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#191724", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#21202e", "theme.bar.menus.menu.notifications.switch.puck": "#26233a", "theme.bar.menus.menu.notifications.switch.disabled": "#1f1d2e", "theme.bar.menus.menu.notifications.switch.enabled": "#c4a7e7", "theme.bar.menus.menu.notifications.clear": "#eb6f92", "theme.bar.menus.menu.notifications.switch_divider": "#26233a", "theme.bar.menus.menu.notifications.border": "#1f1d2e", "theme.bar.menus.menu.notifications.card": "#21202e", "theme.bar.menus.menu.notifications.background": "#191724", "theme.bar.menus.menu.notifications.no_notifications_label": "#1f1d2e", "theme.bar.menus.menu.notifications.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#c4a7e7", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#9ccfd8", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#f6c177", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#eb6f92", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#26233a", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#30738f", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#9ccfd8", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#eb6f92", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#f6c177", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.input.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.input.background": "#30738f", "theme.bar.menus.menu.dashboard.controls.volume.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.volume.background": "#eb6f92", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#f6c177", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#9ccfd8", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.controls.disabled": "#403d52", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#9ccfd8", "theme.bar.menus.menu.dashboard.shortcuts.text": "#1f1d2e", "theme.bar.menus.menu.dashboard.shortcuts.background": "#c4a7e7", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.logout": "#9ccfd8", "theme.bar.menus.menu.dashboard.powermenu.restart": "#f6c177", "theme.bar.menus.menu.dashboard.profile.name": "#c4a7e7", "theme.bar.menus.menu.dashboard.border.color": "#1f1d2e", "theme.bar.menus.menu.dashboard.background.color": "#191724", "theme.bar.menus.menu.dashboard.card.color": "#21202e", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.icon": "#c4a7e7", "theme.bar.menus.menu.clock.weather.hourly.time": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#9ccfd8", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#31748f", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#c4a7e7", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#f6c177", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#eb6f92", "theme.bar.menus.menu.clock.weather.stats": "#c4a7e7", "theme.bar.menus.menu.clock.weather.status": "#9ccfd8", "theme.bar.menus.menu.clock.weather.temperature": "#e0def4", "theme.bar.menus.menu.clock.weather.icon": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.contextdays": "#403d52", "theme.bar.menus.menu.clock.calendar.days": "#e0def4", "theme.bar.menus.menu.clock.calendar.currentday": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.paginator": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.weekdays": "#c4a7e7", "theme.bar.menus.menu.clock.calendar.yearmonth": "#9ccfd8", "theme.bar.menus.menu.clock.time.timeperiod": "#9ccfd8", "theme.bar.menus.menu.clock.time.time": "#c4a7e7", "theme.bar.menus.menu.clock.text": "#e0def4", "theme.bar.menus.menu.clock.border.color": "#1f1d2e", "theme.bar.menus.menu.clock.background.color": "#191724", "theme.bar.menus.menu.clock.card.color": "#21202e", "theme.bar.menus.menu.battery.slider.puck": "#26233a", "theme.bar.menus.menu.battery.slider.backgroundhover": "#26233a", "theme.bar.menus.menu.battery.slider.background": "#403d52", "theme.bar.menus.menu.battery.slider.primary": "#f6c177", "theme.bar.menus.menu.battery.icons.active": "#f6c177", "theme.bar.menus.menu.battery.icons.passive": "#524f67", "theme.bar.menus.menu.battery.listitems.active": "#f6c177", "theme.bar.menus.menu.battery.listitems.passive": "#e0def4", "theme.bar.menus.menu.battery.text": "#e0def4", "theme.bar.menus.menu.battery.label.color": "#f6c177", "theme.bar.menus.menu.battery.border.color": "#1f1d2e", "theme.bar.menus.menu.battery.background.color": "#191724", "theme.bar.menus.menu.battery.card.color": "#21202e", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#21202e", "theme.bar.menus.menu.systray.dropdownmenu.text": "#e0def4", "theme.bar.menus.menu.systray.dropdownmenu.background": "#191724", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.icons.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.icons.passive": "#524f67", "theme.bar.menus.menu.bluetooth.listitems.active": "#9ccfd8", "theme.bar.menus.menu.bluetooth.listitems.passive": "#e0def4", "theme.bar.menus.menu.bluetooth.switch.puck": "#26233a", "theme.bar.menus.menu.bluetooth.switch.disabled": "#1f1d2e", "theme.bar.menus.menu.bluetooth.switch.enabled": "#9ccfd8", "theme.bar.menus.menu.bluetooth.switch_divider": "#26233a", "theme.bar.menus.menu.bluetooth.status": "#26233a", "theme.bar.menus.menu.bluetooth.text": "#e0def4", "theme.bar.menus.menu.bluetooth.label.color": "#9ccfd8", "theme.bar.menus.menu.bluetooth.border.color": "#1f1d2e", "theme.bar.menus.menu.bluetooth.background.color": "#191724", "theme.bar.menus.menu.bluetooth.card.color": "#21202e", "theme.bar.menus.menu.network.iconbuttons.active": "#c4a7e7", "theme.bar.menus.menu.network.iconbuttons.passive": "#e0def4", "theme.bar.menus.menu.network.icons.active": "#c4a7e7", "theme.bar.menus.menu.network.icons.passive": "#524f67", "theme.bar.menus.menu.network.listitems.active": "#c4a7e7", "theme.bar.menus.menu.network.listitems.passive": "#e0def4", "theme.bar.menus.menu.network.status.color": "#26233a", "theme.bar.menus.menu.network.text": "#e0def4", "theme.bar.menus.menu.network.label.color": "#c4a7e7", "theme.bar.menus.menu.network.border.color": "#1f1d2e", "theme.bar.menus.menu.network.background.color": "#191724", "theme.bar.menus.menu.network.card.color": "#21202e", "theme.bar.menus.menu.volume.input_slider.puck": "#403d52", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#26233a", "theme.bar.menus.menu.volume.input_slider.background": "#403d52", "theme.bar.menus.menu.volume.input_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.audio_slider.puck": "#403d52", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#26233a", "theme.bar.menus.menu.volume.audio_slider.background": "#403d52", "theme.bar.menus.menu.volume.audio_slider.primary": "#eb6f92", "theme.bar.menus.menu.volume.icons.active": "#eb6f92", "theme.bar.menus.menu.volume.icons.passive": "#524f67", "theme.bar.menus.menu.volume.iconbutton.active": "#eb6f92", "theme.bar.menus.menu.volume.iconbutton.passive": "#e0def4", "theme.bar.menus.menu.volume.listitems.active": "#eb6f92", "theme.bar.menus.menu.volume.listitems.passive": "#e0def4", "theme.bar.menus.menu.volume.border.color": "#1f1d2e", "theme.bar.menus.menu.volume.background.color": "#191724", "theme.bar.menus.menu.media.slider.puck": "#26233a", "theme.bar.menus.menu.media.slider.backgroundhover": "#26233a", "theme.bar.menus.menu.media.slider.background": "#403d52", "theme.bar.menus.menu.media.slider.primary": "#c4a7e7", "theme.bar.menus.menu.media.buttons.text": "#191724", "theme.bar.menus.menu.media.buttons.background": "#c4a7e7", "theme.bar.menus.menu.media.buttons.enabled": "#9ccfd8", "theme.bar.menus.menu.media.buttons.inactive": "#403d52", "theme.bar.menus.menu.media.border.color": "#1f1d2e", "theme.bar.menus.menu.media.background.color": "#191724", "theme.bar.menus.menu.media.album": "#c4a7e7", "theme.bar.menus.menu.media.artist": "#9ccfd8", "theme.bar.menus.menu.media.song": "#c4a7e7", "theme.bar.menus.tooltip.text": "#e0def4", "theme.bar.menus.tooltip.background": "#191724", "theme.bar.menus.dropdownmenu.divider": "#21202e", "theme.bar.menus.dropdownmenu.text": "#e0def4", "theme.bar.menus.dropdownmenu.background": "#191724", "theme.bar.menus.slider.puck": "#26233a", "theme.bar.menus.slider.backgroundhover": "#26233a", "theme.bar.menus.slider.background": "#403d52", "theme.bar.menus.slider.primary": "#c4a7e7", "theme.bar.menus.progressbar.background": "#26233a", "theme.bar.menus.progressbar.foreground": "#c4a7e7", "theme.bar.menus.iconbuttons.active": "#c4a7e7", "theme.bar.menus.iconbuttons.passive": "#e0def4", "theme.bar.menus.buttons.text": "#1f1d2e", "theme.bar.menus.buttons.disabled": "#403d52", "theme.bar.menus.buttons.active": "#c4a7e7", "theme.bar.menus.buttons.default": "#c4a7e7", "theme.bar.menus.switch.puck": "#26233a", "theme.bar.menus.switch.disabled": "#1f1d2e", "theme.bar.menus.switch.enabled": "#c4a7e7", "theme.bar.menus.icons.active": "#c4a7e7", "theme.bar.menus.icons.passive": "#403d52", "theme.bar.menus.listitems.active": "#c4a7e7", "theme.bar.menus.listitems.passive": "#e0def4", "theme.bar.menus.label": "#c4a7e7", "theme.bar.menus.feinttext": "#1f1d2e", "theme.bar.menus.dimtext": "#403d52", "theme.bar.menus.cards": "#21202e", "theme.bar.buttons.notifications.total": "#c4a7e7", "theme.bar.buttons.notifications.icon": "#21202e", "theme.bar.buttons.notifications.background": "#21202e", "theme.bar.buttons.clock.icon": "#21202e", "theme.bar.buttons.clock.text": "#c4a7e7", "theme.bar.buttons.clock.background": "#21202e", "theme.bar.buttons.battery.icon": "#21202e", "theme.bar.buttons.battery.text": "#f6c177", "theme.bar.buttons.battery.background": "#21202e", "theme.bar.buttons.systray.background": "#21202e", "theme.bar.buttons.bluetooth.icon": "#26233a", "theme.bar.buttons.bluetooth.text": "#9ccfd8", "theme.bar.buttons.bluetooth.background": "#21202e", "theme.bar.buttons.network.icon": "#21202e", "theme.bar.buttons.network.text": "#c4a7e7", "theme.bar.buttons.network.background": "#21202e", "theme.bar.buttons.volume.icon": "#21202e", "theme.bar.buttons.volume.text": "#eb6f92", "theme.bar.buttons.volume.background": "#21202e", "theme.bar.buttons.windowtitle.icon": "#21202e", "theme.bar.buttons.windowtitle.text": "#c4a7e7", "theme.bar.buttons.windowtitle.background": "#21202e", "theme.bar.buttons.workspaces.active": "#c4a7e7", "theme.bar.buttons.workspaces.occupied": "#eb6f92", "theme.bar.buttons.workspaces.available": "#9ccfd8", "theme.bar.buttons.workspaces.hover": "#c4a7e7", "theme.bar.buttons.workspaces.background": "#21202e", "theme.bar.buttons.dashboard.icon": "#21202e", "theme.bar.buttons.dashboard.background": "#f6c177", "theme.osd.label": "#c4a7e7", "theme.osd.icon": "#191724", "theme.osd.bar_overflow_color": "#eb6f92", "theme.osd.bar_empty_color": "#1f1d2e", "theme.osd.bar_color": "#c4a7e7", "theme.osd.icon_container": "#c4a7e7", "theme.osd.bar_container": "#191724", "theme.notification.close_button.label": "#191724", "theme.notification.close_button.background": "#eb6f92", "theme.notification.labelicon": "#c4a7e7", "theme.notification.text": "#e0def4", "theme.notification.time": "#403d52", "theme.notification.border": "#1f1d2e", "theme.notification.label": "#c4a7e7", "theme.notification.actions.text": "#1f1d2e", "theme.notification.actions.background": "#c4a7e7", "theme.notification.background": "#1f1d2e", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#21202e", "theme.bar.menus.check_radio_button.background": "#393452", "theme.bar.menus.check_radio_button.active": "#c4a7e7", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#eb6f92", "theme.bar.buttons.network.icon_background": "#c4a7e7", "theme.bar.buttons.bluetooth.icon_background": "#9ccfd8", "theme.bar.buttons.windowtitle.icon_background": "#c4a7e7", "theme.bar.buttons.media.icon_background": "#c4a7e7", "theme.bar.buttons.notifications.icon_background": "#c4a7e7", "theme.bar.buttons.battery.icon_background": "#f6c177", "theme.bar.buttons.clock.icon_background": "#c4a7e7", "theme.bar.menus.menu.notifications.pager.button": "#c4a7e7", "theme.bar.menus.menu.notifications.scrollbar.color": "#c4a7e7", "theme.bar.menus.menu.notifications.pager.label": "#524f67", "theme.bar.menus.menu.notifications.pager.background": "#191724", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.storage.icon_background": "#eb6f92", "theme.bar.menus.popover.border": "#1f1d2e", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#9ccfd8", "theme.bar.menus.menu.power.buttons.restart.text": "#f6c177", "theme.bar.buttons.modules.updates.background": "#21202e", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.netstat.background": "#21202e", "theme.bar.buttons.modules.weather.icon": "#21202e", "theme.bar.buttons.modules.netstat.text": "#9ccfd8", "theme.bar.buttons.modules.storage.background": "#21202e", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.buttons.modules.storage.text": "#eb6f92", "theme.bar.buttons.modules.cpu.background": "#21202e", "theme.bar.menus.menu.power.border.color": "#1f1d2e", "theme.bar.buttons.modules.power.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.logout.icon": "#1f1d2e", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.restart.icon": "#1f1d2e", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.kbLayout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.weather.text": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#1f1d2e", "theme.bar.menus.menu.power.buttons.sleep.text": "#9ccfd8", "theme.bar.buttons.modules.weather.icon_background": "#c4a7e7", "theme.bar.menus.menu.power.buttons.shutdown.background": "#21202e", "theme.bar.menus.menu.power.buttons.logout.background": "#21202e", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.ram.icon_background": "#f6c177", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.shutdown.text": "#eb6f92", "theme.bar.menus.menu.power.buttons.sleep.background": "#21202e", "theme.bar.buttons.modules.ram.text": "#f6c177", "theme.bar.menus.menu.power.buttons.logout.text": "#9ccfd8", "theme.bar.buttons.modules.updates.icon_background": "#30738f", "theme.bar.buttons.modules.kbLayout.background": "#21202e", "theme.bar.buttons.modules.power.background": "#21202e", "theme.bar.buttons.modules.weather.background": "#21202e", "theme.bar.menus.menu.power.background.color": "#191724", "theme.bar.buttons.modules.ram.background": "#21202e", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.cpu.icon_background": "#eb6f92", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#9ccfd8", "theme.bar.buttons.modules.updates.text": "#30738f", "theme.bar.menus.menu.power.buttons.sleep.icon": "#1f1d2e", "theme.bar.menus.menu.power.buttons.restart.background": "#21202e", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.cpu.text": "#eb6f92", "theme.bar.buttons.modules.netstat.icon_background": "#9ccfd8", "theme.bar.buttons.modules.kbLayout.text": "#9ccfd8", "theme.bar.buttons.modules.power.border": "#eb6f92", "theme.bar.buttons.modules.weather.border": "#c4a7e7", "theme.bar.buttons.modules.updates.border": "#30738f", "theme.bar.buttons.modules.kbLayout.border": "#9ccfd8", "theme.bar.buttons.modules.netstat.border": "#9ccfd8", "theme.bar.buttons.modules.storage.border": "#eb6f92", "theme.bar.buttons.modules.cpu.border": "#eb6f92", "theme.bar.buttons.modules.ram.border": "#f6c177", "theme.bar.buttons.notifications.border": "#c4a7e7", "theme.bar.buttons.clock.border": "#c4a7e7", "theme.bar.buttons.battery.border": "#f6c177", "theme.bar.buttons.systray.border": "#26233a", "theme.bar.buttons.bluetooth.border": "#9ccfd8", "theme.bar.buttons.network.border": "#c4a7e7", "theme.bar.buttons.volume.border": "#eb6f92", "theme.bar.buttons.media.border": "#c4a7e7", "theme.bar.buttons.windowtitle.border": "#c4a7e7", "theme.bar.buttons.workspaces.border": "#1f1d2e", "theme.bar.buttons.dashboard.border": "#f6c177", "theme.bar.buttons.modules.submap.background": "#21202e", "theme.bar.buttons.modules.submap.text": "#9ccfd8", "theme.bar.buttons.modules.submap.border": "#9ccfd8", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.icon_background": "#9ccfd8" } ================================================ FILE: .config/ags/themes/tokyo_night.json ================================================ { "theme.bar.menus.background": "#1a1b26", "theme.bar.background": "#1a1b26", "theme.bar.buttons.media.icon": "#bb9af7", "theme.bar.buttons.media.text": "#bb9af7", "theme.bar.buttons.icon": "#bb9af7", "theme.bar.buttons.text": "#bb9af7", "theme.bar.buttons.hover": "#414868", "theme.bar.buttons.background": "#272a3d", "theme.bar.menus.text": "#c0caf5", "theme.bar.menus.border.color": "#414868", "theme.bar.buttons.media.background": "#272a3d", "theme.bar.menus.menu.volume.text": "#c0caf5", "theme.bar.menus.menu.volume.card.color": "#24283b", "theme.bar.menus.menu.volume.label.color": "#f7768e", "theme.bar.menus.popover.text": "#bb9af7", "theme.bar.menus.popover.background": "#1a1b26", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#f7768e", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#f7768e", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#9ece6a", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#1a1b26", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#c0caf5", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#bb9af7", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#414868", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#1a1b26", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#24283b", "theme.bar.menus.menu.notifications.switch.puck": "#565f89", "theme.bar.menus.menu.notifications.switch.disabled": "#565f89", "theme.bar.menus.menu.notifications.switch.enabled": "#bb9af7", "theme.bar.menus.menu.notifications.clear": "#f7768e", "theme.bar.menus.menu.notifications.switch_divider": "#414868", "theme.bar.menus.menu.notifications.border": "#414868", "theme.bar.menus.menu.notifications.card": "#24283b", "theme.bar.menus.menu.notifications.background": "#1a1b26", "theme.bar.menus.menu.notifications.no_notifications_label": "#414868", "theme.bar.menus.menu.notifications.label": "#bb9af7", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#9ece6a", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#9ece6a", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#9ece6a", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#e0af68", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#e0af68", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#e0af68", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#414868", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#bb9af7", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#bb9af7", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#73daca", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#f7768e", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#e0af68", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f7768e", "theme.bar.menus.menu.dashboard.controls.input.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.input.background": "#f7768e", "theme.bar.menus.menu.dashboard.controls.volume.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.volume.background": "#f7768e", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#e0af68", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#7dcfff", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#bb9af7", "theme.bar.menus.menu.dashboard.controls.disabled": "#414868", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#9ece6a", "theme.bar.menus.menu.dashboard.shortcuts.text": "#1a1b26", "theme.bar.menus.menu.dashboard.shortcuts.background": "#bb9af7", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#7dcfff", "theme.bar.menus.menu.dashboard.powermenu.logout": "#9ece6a", "theme.bar.menus.menu.dashboard.powermenu.restart": "#e0af68", "theme.bar.menus.menu.dashboard.profile.name": "#f7768e", "theme.bar.menus.menu.dashboard.border.color": "#414868", "theme.bar.menus.menu.dashboard.background.color": "#1a1b26", "theme.bar.menus.menu.dashboard.card.color": "#24283b", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f7768e", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f7768e", "theme.bar.menus.menu.clock.weather.hourly.time": "#f7768e", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#7dcfff", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#7aa2f7", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#bb9af7", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#e0af68", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#f7768e", "theme.bar.menus.menu.clock.weather.stats": "#f7768e", "theme.bar.menus.menu.clock.weather.status": "#73daca", "theme.bar.menus.menu.clock.weather.temperature": "#c0caf5", "theme.bar.menus.menu.clock.weather.icon": "#f7768e", "theme.bar.menus.menu.clock.calendar.contextdays": "#414868", "theme.bar.menus.menu.clock.calendar.days": "#c0caf5", "theme.bar.menus.menu.clock.calendar.currentday": "#f7768e", "theme.bar.menus.menu.clock.calendar.paginator": "#f7768e", "theme.bar.menus.menu.clock.calendar.weekdays": "#f7768e", "theme.bar.menus.menu.clock.calendar.yearmonth": "#73daca", "theme.bar.menus.menu.clock.time.timeperiod": "#73daca", "theme.bar.menus.menu.clock.time.time": "#f7768e", "theme.bar.menus.menu.clock.text": "#c0caf5", "theme.bar.menus.menu.clock.border.color": "#414868", "theme.bar.menus.menu.clock.background.color": "#1a1b26", "theme.bar.menus.menu.clock.card.color": "#24283b", "theme.bar.menus.menu.battery.slider.puck": "#565f89", "theme.bar.menus.menu.battery.slider.backgroundhover": "#414868", "theme.bar.menus.menu.battery.slider.background": "#565f89", "theme.bar.menus.menu.battery.slider.primary": "#e0af68", "theme.bar.menus.menu.battery.icons.active": "#e0af68", "theme.bar.menus.menu.battery.icons.passive": "#565f89", "theme.bar.menus.menu.battery.listitems.active": "#e0af68", "theme.bar.menus.menu.battery.listitems.passive": "#c0caf5", "theme.bar.menus.menu.battery.text": "#c0caf5", "theme.bar.menus.menu.battery.label.color": "#e0af68", "theme.bar.menus.menu.battery.border.color": "#414868", "theme.bar.menus.menu.battery.background.color": "#1a1b26", "theme.bar.menus.menu.battery.card.color": "#24283b", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#24283b", "theme.bar.menus.menu.systray.dropdownmenu.text": "#c0caf5", "theme.bar.menus.menu.systray.dropdownmenu.background": "#1a1b26", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#7dcfff", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#c0caf5", "theme.bar.menus.menu.bluetooth.icons.active": "#7dcfff", "theme.bar.menus.menu.bluetooth.icons.passive": "#565f89", "theme.bar.menus.menu.bluetooth.listitems.active": "#7dcfff", "theme.bar.menus.menu.bluetooth.listitems.passive": "#c0caf5", "theme.bar.menus.menu.bluetooth.switch.puck": "#565f89", "theme.bar.menus.menu.bluetooth.switch.disabled": "#565f89", "theme.bar.menus.menu.bluetooth.switch.enabled": "#7dcfff", "theme.bar.menus.menu.bluetooth.switch_divider": "#414868", "theme.bar.menus.menu.bluetooth.status": "#565f89", "theme.bar.menus.menu.bluetooth.text": "#c0caf5", "theme.bar.menus.menu.bluetooth.label.color": "#7dcfff", "theme.bar.menus.menu.bluetooth.border.color": "#414868", "theme.bar.menus.menu.bluetooth.background.color": "#1a1b26", "theme.bar.menus.menu.bluetooth.card.color": "#24283b", "theme.bar.menus.menu.network.iconbuttons.active": "#bb9af7", "theme.bar.menus.menu.network.iconbuttons.passive": "#c0caf5", "theme.bar.menus.menu.network.icons.active": "#bb9af7", "theme.bar.menus.menu.network.icons.passive": "#565f89", "theme.bar.menus.menu.network.listitems.active": "#bb9af7", "theme.bar.menus.menu.network.listitems.passive": "#c0caf5", "theme.bar.menus.menu.network.status.color": "#565f89", "theme.bar.menus.menu.network.text": "#c0caf5", "theme.bar.menus.menu.network.label.color": "#bb9af7", "theme.bar.menus.menu.network.border.color": "#414868", "theme.bar.menus.menu.network.background.color": "#1a1b26", "theme.bar.menus.menu.network.card.color": "#24283b", "theme.bar.menus.menu.volume.input_slider.puck": "#414868", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#414868", "theme.bar.menus.menu.volume.input_slider.background": "#565f89", "theme.bar.menus.menu.volume.input_slider.primary": "#f7768e", "theme.bar.menus.menu.volume.audio_slider.puck": "#414868", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#414868", "theme.bar.menus.menu.volume.audio_slider.background": "#565f89", "theme.bar.menus.menu.volume.audio_slider.primary": "#f7768e", "theme.bar.menus.menu.volume.icons.active": "#f7768e", "theme.bar.menus.menu.volume.icons.passive": "#565f89", "theme.bar.menus.menu.volume.iconbutton.active": "#f7768e", "theme.bar.menus.menu.volume.iconbutton.passive": "#c0caf5", "theme.bar.menus.menu.volume.listitems.active": "#f7768e", "theme.bar.menus.menu.volume.listitems.passive": "#c0caf5", "theme.bar.menus.menu.volume.border.color": "#414868", "theme.bar.menus.menu.volume.background.color": "#1a1b26", "theme.bar.menus.menu.media.slider.puck": "#565f89", "theme.bar.menus.menu.media.slider.backgroundhover": "#414868", "theme.bar.menus.menu.media.slider.background": "#565f89", "theme.bar.menus.menu.media.slider.primary": "#f7768e", "theme.bar.menus.menu.media.buttons.text": "#1a1b26", "theme.bar.menus.menu.media.buttons.background": "#bb9af7", "theme.bar.menus.menu.media.buttons.enabled": "#73daca", "theme.bar.menus.menu.media.buttons.inactive": "#414868", "theme.bar.menus.menu.media.border.color": "#414868", "theme.bar.menus.menu.media.background.color": "#1a1b26", "theme.bar.menus.menu.media.album": "#f7768e", "theme.bar.menus.menu.media.artist": "#73daca", "theme.bar.menus.menu.media.song": "#bb9af7", "theme.bar.menus.tooltip.text": "#c0caf5", "theme.bar.menus.tooltip.background": "#1a1b26", "theme.bar.menus.dropdownmenu.divider": "#24283b", "theme.bar.menus.dropdownmenu.text": "#c0caf5", "theme.bar.menus.dropdownmenu.background": "#1a1b26", "theme.bar.menus.slider.puck": "#565f89", "theme.bar.menus.slider.backgroundhover": "#414868", "theme.bar.menus.slider.background": "#565f89", "theme.bar.menus.slider.primary": "#bb9af7", "theme.bar.menus.progressbar.background": "#414868", "theme.bar.menus.progressbar.foreground": "#bb9af7", "theme.bar.menus.iconbuttons.active": "#bb9af7", "theme.bar.menus.iconbuttons.passive": "#c0caf5", "theme.bar.menus.buttons.text": "#1a1b26", "theme.bar.menus.buttons.disabled": "#565f89", "theme.bar.menus.buttons.active": "#f7768e", "theme.bar.menus.buttons.default": "#bb9af7", "theme.bar.menus.switch.puck": "#565f89", "theme.bar.menus.switch.disabled": "#565f89", "theme.bar.menus.switch.enabled": "#bb9af7", "theme.bar.menus.icons.active": "#bb9af7", "theme.bar.menus.icons.passive": "#414868", "theme.bar.menus.listitems.active": "#bb9af7", "theme.bar.menus.listitems.passive": "#c0caf5", "theme.bar.menus.label": "#bb9af7", "theme.bar.menus.feinttext": "#414868", "theme.bar.menus.dimtext": "#414868", "theme.bar.menus.cards": "#24283b", "theme.bar.buttons.notifications.total": "#bb9af7", "theme.bar.buttons.notifications.icon": "#bb9af7", "theme.bar.buttons.notifications.background": "#272a3d", "theme.bar.buttons.clock.icon": "#f7768e", "theme.bar.buttons.clock.text": "#f7768e", "theme.bar.buttons.clock.background": "#272a3d", "theme.bar.buttons.battery.icon": "#e0af68", "theme.bar.buttons.battery.text": "#e0af68", "theme.bar.buttons.battery.background": "#272a3d", "theme.bar.buttons.systray.background": "#272a3d", "theme.bar.buttons.bluetooth.icon": "#7dcfff", "theme.bar.buttons.bluetooth.text": "#7dcfff", "theme.bar.buttons.bluetooth.background": "#272a3d", "theme.bar.buttons.network.icon": "#bb9af7", "theme.bar.buttons.network.text": "#bb9af7", "theme.bar.buttons.network.background": "#272a3d", "theme.bar.buttons.volume.icon": "#f7768e", "theme.bar.buttons.volume.text": "#f7768e", "theme.bar.buttons.volume.background": "#272a3d", "theme.bar.buttons.windowtitle.icon": "#f7768e", "theme.bar.buttons.windowtitle.text": "#f7768e", "theme.bar.buttons.windowtitle.background": "#272a3d", "theme.bar.buttons.workspaces.active": "#f7768e", "theme.bar.buttons.workspaces.occupied": "#f7768e", "theme.bar.buttons.workspaces.available": "#7dcfff", "theme.bar.buttons.workspaces.hover": "#414868", "theme.bar.buttons.workspaces.background": "#272a3d", "theme.bar.buttons.dashboard.icon": "#e0af68", "theme.bar.buttons.dashboard.background": "#272a3d", "theme.osd.label": "#bb9af7", "theme.osd.icon": "#1a1b26", "theme.osd.bar_overflow_color": "#f7768e", "theme.osd.bar_empty_color": "#414868", "theme.osd.bar_color": "#bb9af7", "theme.osd.icon_container": "#bb9af7", "theme.osd.bar_container": "#1a1b26", "theme.notification.close_button.label": "#1a1b26", "theme.notification.close_button.background": "#f7768e", "theme.notification.labelicon": "#bb9af7", "theme.notification.text": "#c0caf5", "theme.notification.time": "#9aa5ce", "theme.notification.border": "#565f89", "theme.notification.label": "#bb9af7", "theme.notification.actions.text": "#24283b", "theme.notification.actions.background": "#bb9af7", "theme.notification.background": "#1a1b26", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#24283b", "theme.bar.menus.check_radio_button.background": "#3b4261", "theme.bar.menus.check_radio_button.active": "#bb9af7", "theme.bar.buttons.style": "default", "theme.bar.menus.menu.notifications.pager.button": "#bb9af7", "theme.bar.menus.menu.notifications.scrollbar.color": "#bb9af7", "theme.bar.menus.menu.notifications.pager.label": "#565f89", "theme.bar.menus.menu.notifications.pager.background": "#1a1b26", "theme.bar.buttons.clock.icon_background": "#f7768e", "theme.bar.buttons.modules.ram.icon": "#e0af68", "theme.bar.buttons.modules.storage.icon_background": "#f7768e", "theme.bar.menus.popover.border": "#1a1b26", "theme.bar.buttons.volume.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#7dcfff", "theme.bar.menus.menu.power.buttons.restart.text": "#e0af68", "theme.bar.buttons.modules.updates.background": "#272a3d", "theme.bar.buttons.modules.storage.icon": "#f7768e", "theme.bar.buttons.modules.netstat.background": "#272a3d", "theme.bar.buttons.modules.weather.icon": "#bb9af7", "theme.bar.buttons.modules.netstat.text": "#9ece6a", "theme.bar.buttons.modules.storage.background": "#272a3d", "theme.bar.buttons.modules.power.icon": "#f7768e", "theme.bar.buttons.modules.storage.text": "#f7768e", "theme.bar.buttons.modules.cpu.background": "#272a3d", "theme.bar.menus.menu.power.border.color": "#414868", "theme.bar.buttons.network.icon_background": "#caa6f7", "theme.bar.buttons.modules.power.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.logout.icon": "#1a1b26", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#e0af68", "theme.bar.menus.menu.power.buttons.restart.icon": "#1a1b26", "theme.bar.buttons.modules.cpu.icon": "#f7768e", "theme.bar.buttons.battery.icon_background": "#e0af68", "theme.bar.buttons.modules.kbLayout.icon_background": "#7dcfff", "theme.bar.buttons.modules.weather.text": "#bb9af7", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#1a1b26", "theme.bar.menus.menu.power.buttons.sleep.text": "#7dcfff", "theme.bar.buttons.modules.weather.icon_background": "#bb9af7", "theme.bar.menus.menu.power.buttons.shutdown.background": "#24283b", "theme.bar.buttons.media.icon_background": "#bb9af7", "theme.bar.menus.menu.power.buttons.logout.background": "#24283b", "theme.bar.buttons.modules.kbLayout.icon": "#7dcfff", "theme.bar.buttons.modules.ram.icon_background": "#e0af68", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.shutdown.text": "#f7768e", "theme.bar.menus.menu.power.buttons.sleep.background": "#24283b", "theme.bar.buttons.modules.ram.text": "#e0af68", "theme.bar.menus.menu.power.buttons.logout.text": "#9ece6a", "theme.bar.buttons.modules.updates.icon_background": "#bb9af7", "theme.bar.buttons.modules.kbLayout.background": "#272a3d", "theme.bar.buttons.modules.power.background": "#272a3d", "theme.bar.buttons.modules.weather.background": "#272a3d", "theme.bar.buttons.icon_background": "#272a3d", "theme.bar.menus.menu.power.background.color": "#1a1b26", "theme.bar.buttons.modules.ram.background": "#272a3d", "theme.bar.buttons.modules.netstat.icon": "#9ece6a", "theme.bar.buttons.windowtitle.icon_background": "#f7768e", "theme.bar.buttons.modules.cpu.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#9ece6a", "theme.bar.buttons.modules.updates.text": "#bb9af7", "theme.bar.menus.menu.power.buttons.sleep.icon": "#1a1b26", "theme.bar.buttons.bluetooth.icon_background": "#89dbeb", "theme.bar.menus.menu.power.buttons.restart.background": "#24283b", "theme.bar.buttons.modules.updates.icon": "#bb9af7", "theme.bar.buttons.modules.cpu.text": "#f7768e", "theme.bar.buttons.modules.netstat.icon_background": "#9ece6a", "theme.bar.buttons.modules.kbLayout.text": "#7dcfff", "theme.bar.buttons.notifications.icon_background": "#bb9af7", "theme.bar.buttons.modules.power.border": "#f7768e", "theme.bar.buttons.modules.weather.border": "#bb9af7", "theme.bar.buttons.modules.updates.border": "#bb9af7", "theme.bar.buttons.modules.kbLayout.border": "#7dcfff", "theme.bar.buttons.modules.netstat.border": "#9ece6a", "theme.bar.buttons.modules.storage.border": "#f7768e", "theme.bar.buttons.modules.cpu.border": "#f7768e", "theme.bar.buttons.modules.ram.border": "#e0af68", "theme.bar.buttons.notifications.border": "#bb9af7", "theme.bar.buttons.clock.border": "#f7768e", "theme.bar.buttons.battery.border": "#e0af68", "theme.bar.buttons.systray.border": "#414868", "theme.bar.buttons.bluetooth.border": "#7dcfff", "theme.bar.buttons.network.border": "#bb9af7", "theme.bar.buttons.volume.border": "#f7768e", "theme.bar.buttons.media.border": "#bb9af7", "theme.bar.buttons.windowtitle.border": "#f7768e", "theme.bar.buttons.workspaces.border": "#f7768e", "theme.bar.buttons.dashboard.border": "#e0af68", "theme.bar.buttons.modules.submap.background": "#272a3d", "theme.bar.buttons.modules.submap.text": "#73daca", "theme.bar.buttons.modules.submap.border": "#73daca", "theme.bar.buttons.modules.submap.icon": "#73daca", "theme.bar.buttons.modules.submap.icon_background": "#272a3d" } ================================================ FILE: .config/ags/themes/tokyo_night_split.json ================================================ { "theme.bar.menus.background": "#1a1b26", "theme.bar.background": "#1a1b26", "theme.bar.buttons.media.icon": "#272a3d", "theme.bar.buttons.media.text": "#bb9af7", "theme.bar.buttons.icon": "#bb9af7", "theme.bar.buttons.text": "#bb9af7", "theme.bar.buttons.hover": "#414868", "theme.bar.buttons.background": "#272a3d", "theme.bar.menus.text": "#c0caf5", "theme.bar.menus.border.color": "#414868", "theme.bar.buttons.media.background": "#272a3d", "theme.bar.menus.menu.volume.text": "#c0caf5", "theme.bar.menus.menu.volume.card.color": "#24283b", "theme.bar.menus.menu.volume.label.color": "#f7768e", "theme.bar.menus.popover.text": "#bb9af7", "theme.bar.menus.popover.background": "#1a1b26", "theme.bar.menus.menu.dashboard.powermenu.shutdown": "#f7768e", "theme.bar.menus.menu.dashboard.powermenu.confirmation.deny": "#f7768e", "theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm": "#9ece6a", "theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text": "#1a1b26", "theme.bar.menus.menu.dashboard.powermenu.confirmation.body": "#c0caf5", "theme.bar.menus.menu.dashboard.powermenu.confirmation.label": "#bb9af7", "theme.bar.menus.menu.dashboard.powermenu.confirmation.border": "#414868", "theme.bar.menus.menu.dashboard.powermenu.confirmation.background": "#1a1b26", "theme.bar.menus.menu.dashboard.powermenu.confirmation.card": "#24283b", "theme.bar.menus.menu.notifications.switch.puck": "#565f89", "theme.bar.menus.menu.notifications.switch.disabled": "#565f89", "theme.bar.menus.menu.notifications.switch.enabled": "#bb9af7", "theme.bar.menus.menu.notifications.clear": "#f7768e", "theme.bar.menus.menu.notifications.switch_divider": "#414868", "theme.bar.menus.menu.notifications.border": "#414868", "theme.bar.menus.menu.notifications.card": "#24283b", "theme.bar.menus.menu.notifications.background": "#1a1b26", "theme.bar.menus.menu.notifications.no_notifications_label": "#414868", "theme.bar.menus.menu.notifications.label": "#bb9af7", "theme.bar.menus.menu.dashboard.monitors.disk.label": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.disk.bar": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.disk.icon": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.gpu.label": "#9ece6a", "theme.bar.menus.menu.dashboard.monitors.gpu.bar": "#9ece6a", "theme.bar.menus.menu.dashboard.monitors.gpu.icon": "#9ece6a", "theme.bar.menus.menu.dashboard.monitors.ram.label": "#e0af68", "theme.bar.menus.menu.dashboard.monitors.ram.bar": "#e0af68", "theme.bar.menus.menu.dashboard.monitors.ram.icon": "#e0af68", "theme.bar.menus.menu.dashboard.monitors.cpu.label": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.cpu.bar": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.cpu.icon": "#f7768e", "theme.bar.menus.menu.dashboard.monitors.bar_background": "#414868", "theme.bar.menus.menu.dashboard.directories.right.bottom.color": "#bb9af7", "theme.bar.menus.menu.dashboard.directories.right.middle.color": "#bb9af7", "theme.bar.menus.menu.dashboard.directories.right.top.color": "#73daca", "theme.bar.menus.menu.dashboard.directories.left.bottom.color": "#f7768e", "theme.bar.menus.menu.dashboard.directories.left.middle.color": "#e0af68", "theme.bar.menus.menu.dashboard.directories.left.top.color": "#f7768e", "theme.bar.menus.menu.dashboard.controls.input.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.input.background": "#f7768e", "theme.bar.menus.menu.dashboard.controls.volume.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.volume.background": "#f7768e", "theme.bar.menus.menu.dashboard.controls.notifications.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.notifications.background": "#e0af68", "theme.bar.menus.menu.dashboard.controls.bluetooth.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.bluetooth.background": "#7dcfff", "theme.bar.menus.menu.dashboard.controls.wifi.text": "#1a1b26", "theme.bar.menus.menu.dashboard.controls.wifi.background": "#bb9af7", "theme.bar.menus.menu.dashboard.controls.disabled": "#414868", "theme.bar.menus.menu.dashboard.shortcuts.recording": "#9ece6a", "theme.bar.menus.menu.dashboard.shortcuts.text": "#1a1b26", "theme.bar.menus.menu.dashboard.shortcuts.background": "#bb9af7", "theme.bar.menus.menu.dashboard.powermenu.sleep": "#7dcfff", "theme.bar.menus.menu.dashboard.powermenu.logout": "#9ece6a", "theme.bar.menus.menu.dashboard.powermenu.restart": "#e0af68", "theme.bar.menus.menu.dashboard.profile.name": "#f7768e", "theme.bar.menus.menu.dashboard.border.color": "#414868", "theme.bar.menus.menu.dashboard.background.color": "#1a1b26", "theme.bar.menus.menu.dashboard.card.color": "#24283b", "theme.bar.menus.menu.clock.weather.hourly.temperature": "#f7768e", "theme.bar.menus.menu.clock.weather.hourly.icon": "#f7768e", "theme.bar.menus.menu.clock.weather.hourly.time": "#f7768e", "theme.bar.menus.menu.clock.weather.thermometer.extremelycold": "#7dcfff", "theme.bar.menus.menu.clock.weather.thermometer.cold": "#7aa2f7", "theme.bar.menus.menu.clock.weather.thermometer.moderate": "#bb9af7", "theme.bar.menus.menu.clock.weather.thermometer.hot": "#e0af68", "theme.bar.menus.menu.clock.weather.thermometer.extremelyhot": "#f7768e", "theme.bar.menus.menu.clock.weather.stats": "#f7768e", "theme.bar.menus.menu.clock.weather.status": "#73daca", "theme.bar.menus.menu.clock.weather.temperature": "#c0caf5", "theme.bar.menus.menu.clock.weather.icon": "#f7768e", "theme.bar.menus.menu.clock.calendar.contextdays": "#414868", "theme.bar.menus.menu.clock.calendar.days": "#c0caf5", "theme.bar.menus.menu.clock.calendar.currentday": "#f7768e", "theme.bar.menus.menu.clock.calendar.paginator": "#f7768e", "theme.bar.menus.menu.clock.calendar.weekdays": "#f7768e", "theme.bar.menus.menu.clock.calendar.yearmonth": "#73daca", "theme.bar.menus.menu.clock.time.timeperiod": "#73daca", "theme.bar.menus.menu.clock.time.time": "#f7768e", "theme.bar.menus.menu.clock.text": "#c0caf5", "theme.bar.menus.menu.clock.border.color": "#414868", "theme.bar.menus.menu.clock.background.color": "#1a1b26", "theme.bar.menus.menu.clock.card.color": "#24283b", "theme.bar.menus.menu.battery.slider.puck": "#565f89", "theme.bar.menus.menu.battery.slider.backgroundhover": "#414868", "theme.bar.menus.menu.battery.slider.background": "#565f89", "theme.bar.menus.menu.battery.slider.primary": "#e0af68", "theme.bar.menus.menu.battery.icons.active": "#e0af68", "theme.bar.menus.menu.battery.icons.passive": "#565f89", "theme.bar.menus.menu.battery.listitems.active": "#e0af68", "theme.bar.menus.menu.battery.listitems.passive": "#c0caf5", "theme.bar.menus.menu.battery.text": "#c0caf5", "theme.bar.menus.menu.battery.label.color": "#e0af68", "theme.bar.menus.menu.battery.border.color": "#414868", "theme.bar.menus.menu.battery.background.color": "#1a1b26", "theme.bar.menus.menu.battery.card.color": "#24283b", "theme.bar.menus.menu.systray.dropdownmenu.divider": "#24283b", "theme.bar.menus.menu.systray.dropdownmenu.text": "#c0caf5", "theme.bar.menus.menu.systray.dropdownmenu.background": "#1a1b26", "theme.bar.menus.menu.bluetooth.iconbutton.active": "#7dcfff", "theme.bar.menus.menu.bluetooth.iconbutton.passive": "#c0caf5", "theme.bar.menus.menu.bluetooth.icons.active": "#7dcfff", "theme.bar.menus.menu.bluetooth.icons.passive": "#565f89", "theme.bar.menus.menu.bluetooth.listitems.active": "#7dcfff", "theme.bar.menus.menu.bluetooth.listitems.passive": "#c0caf5", "theme.bar.menus.menu.bluetooth.switch.puck": "#565f89", "theme.bar.menus.menu.bluetooth.switch.disabled": "#565f89", "theme.bar.menus.menu.bluetooth.switch.enabled": "#7dcfff", "theme.bar.menus.menu.bluetooth.switch_divider": "#414868", "theme.bar.menus.menu.bluetooth.status": "#565f89", "theme.bar.menus.menu.bluetooth.text": "#c0caf5", "theme.bar.menus.menu.bluetooth.label.color": "#7dcfff", "theme.bar.menus.menu.bluetooth.border.color": "#414868", "theme.bar.menus.menu.bluetooth.background.color": "#1a1b26", "theme.bar.menus.menu.bluetooth.card.color": "#24283b", "theme.bar.menus.menu.network.iconbuttons.active": "#bb9af7", "theme.bar.menus.menu.network.iconbuttons.passive": "#c0caf5", "theme.bar.menus.menu.network.icons.active": "#bb9af7", "theme.bar.menus.menu.network.icons.passive": "#565f89", "theme.bar.menus.menu.network.listitems.active": "#bb9af7", "theme.bar.menus.menu.network.listitems.passive": "#c0caf5", "theme.bar.menus.menu.network.status.color": "#565f89", "theme.bar.menus.menu.network.text": "#c0caf5", "theme.bar.menus.menu.network.label.color": "#bb9af7", "theme.bar.menus.menu.network.border.color": "#414868", "theme.bar.menus.menu.network.background.color": "#1a1b26", "theme.bar.menus.menu.network.card.color": "#24283b", "theme.bar.menus.menu.volume.input_slider.puck": "#414868", "theme.bar.menus.menu.volume.input_slider.backgroundhover": "#414868", "theme.bar.menus.menu.volume.input_slider.background": "#565f89", "theme.bar.menus.menu.volume.input_slider.primary": "#f7768e", "theme.bar.menus.menu.volume.audio_slider.puck": "#414868", "theme.bar.menus.menu.volume.audio_slider.backgroundhover": "#414868", "theme.bar.menus.menu.volume.audio_slider.background": "#565f89", "theme.bar.menus.menu.volume.audio_slider.primary": "#f7768e", "theme.bar.menus.menu.volume.icons.active": "#f7768e", "theme.bar.menus.menu.volume.icons.passive": "#565f89", "theme.bar.menus.menu.volume.iconbutton.active": "#f7768e", "theme.bar.menus.menu.volume.iconbutton.passive": "#c0caf5", "theme.bar.menus.menu.volume.listitems.active": "#f7768e", "theme.bar.menus.menu.volume.listitems.passive": "#c0caf5", "theme.bar.menus.menu.volume.border.color": "#414868", "theme.bar.menus.menu.volume.background.color": "#1a1b26", "theme.bar.menus.menu.media.slider.puck": "#565f89", "theme.bar.menus.menu.media.slider.backgroundhover": "#414868", "theme.bar.menus.menu.media.slider.background": "#565f89", "theme.bar.menus.menu.media.slider.primary": "#f7768e", "theme.bar.menus.menu.media.buttons.text": "#1a1b26", "theme.bar.menus.menu.media.buttons.background": "#bb9af7", "theme.bar.menus.menu.media.buttons.enabled": "#73daca", "theme.bar.menus.menu.media.buttons.inactive": "#414868", "theme.bar.menus.menu.media.border.color": "#414868", "theme.bar.menus.menu.media.background.color": "#1a1b26", "theme.bar.menus.menu.media.album": "#f7768e", "theme.bar.menus.menu.media.artist": "#73daca", "theme.bar.menus.menu.media.song": "#bb9af7", "theme.bar.menus.tooltip.text": "#c0caf5", "theme.bar.menus.tooltip.background": "#1a1b26", "theme.bar.menus.dropdownmenu.divider": "#24283b", "theme.bar.menus.dropdownmenu.text": "#c0caf5", "theme.bar.menus.dropdownmenu.background": "#1a1b26", "theme.bar.menus.slider.puck": "#565f89", "theme.bar.menus.slider.backgroundhover": "#414868", "theme.bar.menus.slider.background": "#565f89", "theme.bar.menus.slider.primary": "#bb9af7", "theme.bar.menus.progressbar.background": "#414868", "theme.bar.menus.progressbar.foreground": "#bb9af7", "theme.bar.menus.iconbuttons.active": "#bb9af7", "theme.bar.menus.iconbuttons.passive": "#c0caf5", "theme.bar.menus.buttons.text": "#1a1b26", "theme.bar.menus.buttons.disabled": "#565f89", "theme.bar.menus.buttons.active": "#f7768e", "theme.bar.menus.buttons.default": "#bb9af7", "theme.bar.menus.switch.puck": "#565f89", "theme.bar.menus.switch.disabled": "#565f89", "theme.bar.menus.switch.enabled": "#bb9af7", "theme.bar.menus.icons.active": "#bb9af7", "theme.bar.menus.icons.passive": "#414868", "theme.bar.menus.listitems.active": "#bb9af7", "theme.bar.menus.listitems.passive": "#c0caf5", "theme.bar.menus.label": "#bb9af7", "theme.bar.menus.feinttext": "#414868", "theme.bar.menus.dimtext": "#414868", "theme.bar.menus.cards": "#24283b", "theme.bar.buttons.notifications.total": "#bb9af7", "theme.bar.buttons.notifications.icon": "#272a3d", "theme.bar.buttons.notifications.background": "#272a3d", "theme.bar.buttons.clock.icon": "#272a3d", "theme.bar.buttons.clock.text": "#f7768e", "theme.bar.buttons.clock.background": "#272a3d", "theme.bar.buttons.battery.icon": "#272a3d", "theme.bar.buttons.battery.text": "#e0af68", "theme.bar.buttons.battery.background": "#272a3d", "theme.bar.buttons.systray.background": "#272a3d", "theme.bar.buttons.bluetooth.icon": "#272a3d", "theme.bar.buttons.bluetooth.text": "#7dcfff", "theme.bar.buttons.bluetooth.background": "#272a3d", "theme.bar.buttons.network.icon": "#272a3d", "theme.bar.buttons.network.text": "#bb9af7", "theme.bar.buttons.network.background": "#272a3d", "theme.bar.buttons.volume.icon": "#272a3d", "theme.bar.buttons.volume.text": "#f7768e", "theme.bar.buttons.volume.background": "#272a3d", "theme.bar.buttons.windowtitle.icon": "#272a3d", "theme.bar.buttons.windowtitle.text": "#f7768e", "theme.bar.buttons.windowtitle.background": "#272a3d", "theme.bar.buttons.workspaces.active": "#f7768e", "theme.bar.buttons.workspaces.occupied": "#f7768e", "theme.bar.buttons.workspaces.available": "#7dcfff", "theme.bar.buttons.workspaces.hover": "#f7768e", "theme.bar.buttons.workspaces.background": "#272a3d", "theme.bar.buttons.dashboard.icon": "#272a3d", "theme.bar.buttons.dashboard.background": "#e0af68", "theme.osd.label": "#bb9af7", "theme.osd.icon": "#1a1b26", "theme.osd.bar_overflow_color": "#f7768e", "theme.osd.bar_empty_color": "#414868", "theme.osd.bar_color": "#bb9af7", "theme.osd.icon_container": "#bb9af7", "theme.osd.bar_container": "#1a1b26", "theme.notification.close_button.label": "#1a1b26", "theme.notification.close_button.background": "#f7768e", "theme.notification.labelicon": "#bb9af7", "theme.notification.text": "#c0caf5", "theme.notification.time": "#9aa5ce", "theme.notification.border": "#565f89", "theme.notification.label": "#bb9af7", "theme.notification.actions.text": "#24283b", "theme.notification.actions.background": "#bb9af7", "theme.notification.background": "#1a1b26", "theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#181825", "theme.bar.buttons.workspaces.numbered_active_underline_color": "#c678dd", "theme.bar.menus.menu.media.card.color": "#24283b", "theme.bar.menus.check_radio_button.background": "#3b4261", "theme.bar.menus.check_radio_button.active": "#bb9af7", "theme.bar.buttons.style": "split", "theme.bar.buttons.icon_background": "#242438", "theme.bar.buttons.volume.icon_background": "#f7768e", "theme.bar.buttons.network.icon_background": "#bb9af7", "theme.bar.buttons.bluetooth.icon_background": "#7dcfff", "theme.bar.buttons.windowtitle.icon_background": "#f7768e", "theme.bar.buttons.media.icon_background": "#bb9af7", "theme.bar.buttons.notifications.icon_background": "#bb9af7", "theme.bar.buttons.battery.icon_background": "#e0af68", "theme.bar.buttons.clock.icon_background": "#f7768e", "theme.bar.menus.menu.notifications.pager.button": "#bb9af7", "theme.bar.menus.menu.notifications.scrollbar.color": "#bb9af7", "theme.bar.menus.menu.notifications.pager.label": "#565f89", "theme.bar.menus.menu.notifications.pager.background": "#1a1b26", "theme.bar.buttons.modules.ram.icon": "#181825", "theme.bar.buttons.modules.storage.icon_background": "#f7768e", "theme.bar.menus.popover.border": "#1a1b26", "theme.bar.menus.menu.power.buttons.sleep.icon_background": "#7dcfff", "theme.bar.menus.menu.power.buttons.restart.text": "#e0af68", "theme.bar.buttons.modules.updates.background": "#272a3d", "theme.bar.buttons.modules.storage.icon": "#181825", "theme.bar.buttons.modules.netstat.background": "#272a3d", "theme.bar.buttons.modules.weather.icon": "#272a3d", "theme.bar.buttons.modules.netstat.text": "#9ece6a", "theme.bar.buttons.modules.storage.background": "#272a3d", "theme.bar.buttons.modules.power.icon": "#181825", "theme.bar.buttons.modules.storage.text": "#f7768e", "theme.bar.buttons.modules.cpu.background": "#272a3d", "theme.bar.menus.menu.power.border.color": "#414868", "theme.bar.buttons.modules.power.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.logout.icon": "#1a1b26", "theme.bar.menus.menu.power.buttons.restart.icon_background": "#e0af68", "theme.bar.menus.menu.power.buttons.restart.icon": "#1a1b26", "theme.bar.buttons.modules.cpu.icon": "#181825", "theme.bar.buttons.modules.kbLayout.icon_background": "#7dcfff", "theme.bar.buttons.modules.weather.text": "#bb9af7", "theme.bar.menus.menu.power.buttons.shutdown.icon": "#1a1b26", "theme.bar.menus.menu.power.buttons.sleep.text": "#7dcfff", "theme.bar.buttons.modules.weather.icon_background": "#bb9af7", "theme.bar.menus.menu.power.buttons.shutdown.background": "#24283b", "theme.bar.menus.menu.power.buttons.logout.background": "#24283b", "theme.bar.buttons.modules.kbLayout.icon": "#181825", "theme.bar.buttons.modules.ram.icon_background": "#e0af68", "theme.bar.menus.menu.power.buttons.shutdown.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.shutdown.text": "#f7768e", "theme.bar.menus.menu.power.buttons.sleep.background": "#24283b", "theme.bar.buttons.modules.ram.text": "#e0af68", "theme.bar.menus.menu.power.buttons.logout.text": "#9ece6a", "theme.bar.buttons.modules.updates.icon_background": "#bb9af7", "theme.bar.buttons.modules.kbLayout.background": "#272a3d", "theme.bar.buttons.modules.power.background": "#272a3d", "theme.bar.buttons.modules.weather.background": "#272a3d", "theme.bar.menus.menu.power.background.color": "#1a1b26", "theme.bar.buttons.modules.ram.background": "#272a3d", "theme.bar.buttons.modules.netstat.icon": "#181825", "theme.bar.buttons.modules.cpu.icon_background": "#f7768e", "theme.bar.menus.menu.power.buttons.logout.icon_background": "#9ece6a", "theme.bar.buttons.modules.updates.text": "#bb9af7", "theme.bar.menus.menu.power.buttons.sleep.icon": "#1a1b26", "theme.bar.menus.menu.power.buttons.restart.background": "#24283b", "theme.bar.buttons.modules.updates.icon": "#181825", "theme.bar.buttons.modules.cpu.text": "#f7768e", "theme.bar.buttons.modules.netstat.icon_background": "#9ece6a", "theme.bar.buttons.modules.kbLayout.text": "#7dcfff", "theme.bar.buttons.modules.power.border": "#f7768e", "theme.bar.buttons.modules.weather.border": "#bb9af7", "theme.bar.buttons.modules.updates.border": "#bb9af7", "theme.bar.buttons.modules.kbLayout.border": "#7dcfff", "theme.bar.buttons.modules.netstat.border": "#9ece6a", "theme.bar.buttons.modules.storage.border": "#f7768e", "theme.bar.buttons.modules.cpu.border": "#f7768e", "theme.bar.buttons.modules.ram.border": "#e0af68", "theme.bar.buttons.notifications.border": "#bb9af7", "theme.bar.buttons.clock.border": "#f7768e", "theme.bar.buttons.battery.border": "#e0af68", "theme.bar.buttons.systray.border": "#414868", "theme.bar.buttons.bluetooth.border": "#7dcfff", "theme.bar.buttons.network.border": "#bb9af7", "theme.bar.buttons.volume.border": "#f7768e", "theme.bar.buttons.media.border": "#bb9af7", "theme.bar.buttons.windowtitle.border": "#f7768e", "theme.bar.buttons.workspaces.border": "#f7768e", "theme.bar.buttons.dashboard.border": "#e0af68", "theme.bar.buttons.modules.submap.background": "#272a3d", "theme.bar.buttons.modules.submap.text": "#73daca", "theme.bar.buttons.modules.submap.border": "#73daca", "theme.bar.buttons.modules.submap.icon": "#181825", "theme.bar.buttons.modules.submap.icon_background": "#73daca" } ================================================ FILE: .config/ags/tsconfig.json ================================================ { "compilerOptions": { "noEmit": true, "allowImportingTsExtensions": true, "target": "ES2022", "module": "ES2022", "lib": ["ES2022"], "allowJs": true, "checkJs": false, "strict": true, "noImplicitAny": true, "strictNullChecks": true, "alwaysStrict": true, "noImplicitThis": true, "baseUrl": ".", "typeRoots": ["types", "lib/types/globals"], "skipLibCheck": true, "types": [] }, "exclude": ["types/@girs/**/*.js"] } ================================================ FILE: .config/ags/widget/RegularWindow.ts ================================================ import Gtk from 'gi://Gtk?version=3.0'; export default Widget.subclass(Gtk.Window); ================================================ FILE: .config/ags/widget/settings/SettingsDialog.ts ================================================ import RegularWindow from 'widget/RegularWindow'; import icons from 'lib/icons'; import options from 'options'; import { ThemesMenu } from './pages/theme/index'; import { SettingsMenu } from './pages/config/index'; import './side_effects'; import { GBox, GCenterBox } from 'lib/types/widget'; import Gtk from 'types/@girs/gtk-3.0/gtk-3.0'; type Page = 'Configuration' | 'Theming'; const CurrentPage = Variable('Configuration'); const pagerMap: Page[] = ['Configuration', 'Theming']; const Header = (): GCenterBox => Widget.CenterBox({ class_name: 'header', start_widget: Widget.Button({ class_name: 'reset', on_clicked: options.reset, hpack: 'start', vpack: 'start', child: Widget.Icon(icons.ui.refresh), tooltip_text: 'Reset', }), center_widget: Widget.Box({}), end_widget: Widget.Button({ class_name: 'close', hpack: 'end', vpack: 'start', child: Widget.Icon(icons.ui.close), on_clicked: () => App.closeWindow('settings-dialog'), }), }); const PageContainer = (): GBox => { return Widget.Box({ hpack: 'fill', hexpand: true, vertical: true, children: CurrentPage.bind('value').as((v) => { return [ Widget.Box({ class_name: 'option-pages-container', hpack: 'center', hexpand: true, children: pagerMap.map((page) => { return Widget.Button({ xalign: 0, hpack: 'center', class_name: `pager-button ${v === page ? 'active' : ''} category`, label: page, on_primary_click: () => (CurrentPage.value = page), }); }), }), Widget.Stack({ vexpand: false, class_name: 'themes-menu-stack', children: { Configuration: SettingsMenu(), Theming: ThemesMenu(), }, shown: CurrentPage.bind('value'), }), ]; }), }); }; export default (): Gtk.Window => RegularWindow({ name: 'settings-dialog', class_name: 'settings-dialog', title: 'Settings', setup(win) { win.on('delete-event', () => { win.hide(); return true; }); win.set_default_size(200, 300); }, child: Widget.Box({ class_name: 'settings-dialog-box', vertical: true, children: [Header(), PageContainer()], }), }); ================================================ FILE: .config/ags/widget/settings/pages/config/bar/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import Gtk from 'types/@girs/gtk-3.0/gtk-3.0'; export const BarSettings = (): Scrollable => { return Widget.Scrollable({ vscroll: 'always', hscroll: 'automatic', class_name: 'menu-theme-page paged-container', child: Widget.Box({ vertical: true, children: [ /* ****************************** * LAYOUTS * ****************************** */ Header('Layouts'), Option( { opt: options.bar.layouts, title: 'Bar Layouts for Monitors', subtitle: 'Wiki Link: https://hyprpanel.com/configuration/panel.html#layouts', type: 'object', subtitleLink: 'https://hyprpanel.com/configuration/panel.html#layouts', }, 'bar-layout-input', ), Option({ opt: options.theme.bar.floating, title: 'Floating Bar', type: 'boolean', }), Option({ opt: options.theme.bar.location, title: 'Location', type: 'enum', enums: ['top', 'bottom'], }), Option({ opt: options.theme.bar.buttons.enableBorders, title: 'Enable Button Borders', subtitle: 'Enables button borders for all buttons in the bar.', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.borderSize, title: 'Button Border Size', subtitle: 'Button border for the individual modules must be enabled first', type: 'string', }), /* ****************************** * SPACING * ****************************** */ Header('Spacing'), Option({ opt: options.theme.bar.outer_spacing, title: 'Outer Spacing', subtitle: 'Spacing on the outer left and right edges of the bar.', type: 'string', }), Option({ opt: options.theme.bar.buttons.y_margins, title: 'Vertical Margins', subtitle: 'Spacing above/below the buttons in the bar.', type: 'string', }), Option({ opt: options.theme.bar.buttons.spacing, title: 'Button Spacing', subtitle: 'Spacing between the buttons in the bar.', type: 'string', }), Option({ opt: options.theme.bar.buttons.padding_x, title: 'Button Horizontal Padding', type: 'string', }), Option({ opt: options.theme.bar.buttons.padding_y, title: 'Button Vertical Padding', type: 'string', }), Option({ opt: options.theme.bar.buttons.radius, title: 'Button Radius', type: 'string', }), Option({ opt: options.theme.bar.layer, title: 'Layer', type: 'enum', subtitle: 'Layer determines the Z index of your bar.', enums: ['top', 'bottom', 'overlay', 'background'], }), Option({ opt: options.theme.bar.dropdownGap, title: 'Dropdown Gap', subtitle: 'The gap between the dropdown and the bar', type: 'string', }), Option({ opt: options.theme.bar.margin_top, title: 'Margin Top', subtitle: 'Only applies if floating is enabled', type: 'string', }), Option({ opt: options.theme.bar.margin_bottom, title: 'Margin Bottom', subtitle: 'Only applies if floating is enabled', type: 'string', }), Option({ opt: options.theme.bar.margin_sides, title: 'Margin Sides', subtitle: 'Only applies if floating is enabled', type: 'string', }), Option({ opt: options.theme.bar.border_radius, title: 'Border Radius', subtitle: 'Only applies if floating is enabled', type: 'string', }), /* ****************************** * Actions * ****************************** */ Header('Actions'), Option({ opt: options.bar.scrollSpeed, title: 'Scrolling Speed', subtitle: 'The speed at which the commands assigned to the scroll event will trigger', type: 'number', }), /* ****************************** * DASHBOARD * ****************************** */ Header('Dashboard'), Option({ opt: options.bar.launcher.icon, title: 'Dashboard Menu Icon', type: 'string', }), Option({ opt: options.theme.bar.buttons.dashboard.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.launcher.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.launcher.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.launcher.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.launcher.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * WORKSPACES * ****************************** */ Header('Workspaces'), Option({ opt: options.theme.bar.buttons.workspaces.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.workspaces.showAllActive, title: 'Mark Active Workspace On All Monitors', subtitle: 'Marks the currently active workspace on each monitor.', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.workspaces.fontSize, title: 'Indicator Size', subtitle: 'Only applicable to numbered workspaces and mapped icons\n' + 'Adjust with caution as it may cause the bar to expand', type: 'string', }), Option({ opt: options.bar.workspaces.show_icons, title: 'Show Workspace Icons', type: 'boolean', }), Option({ opt: options.bar.workspaces.icons.available, title: 'Workspace Available', type: 'string', }), Option({ opt: options.bar.workspaces.icons.active, title: 'Workspace Active', type: 'string', }), Option({ opt: options.bar.workspaces.icons.occupied, title: 'Workspace Occupied', type: 'string', }), Option({ opt: options.bar.workspaces.show_numbered, title: 'Show Workspace Numbers', type: 'boolean', }), Option({ opt: options.bar.workspaces.numbered_active_indicator, title: 'Numbered Workspace Identifier', subtitle: 'Only applicable if Workspace Numbers are enabled', type: 'enum', enums: ['underline', 'highlight', 'color'], }), Option({ opt: options.theme.bar.buttons.workspaces.smartHighlight, title: 'Smart Highlight', subtitle: 'Automatically determines the highlight color of the workspace icon.\n' + 'Only compatible with mapped icons.', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.workspaces.numbered_active_highlight_border, title: 'Highlight Radius', subtitle: 'Only applicable if Workspace Numbers are enabled', type: 'string', }), Option({ opt: options.theme.bar.buttons.workspaces.numbered_active_highlight_padding, title: 'Highlight Padding', subtitle: 'Only applicable if Workspace Numbers are enabled', type: 'string', }), Option({ opt: options.bar.workspaces.showWsIcons, title: 'Map Workspaces to Icons', type: 'boolean', }), Option({ opt: options.bar.workspaces.workspaceIconMap, title: 'Workspace Icon Mappings', type: 'object', }), Option({ opt: options.bar.workspaces.spacing, title: 'Spacing', subtitle: 'Spacing between workspace icons', type: 'float', }), Option({ opt: options.bar.workspaces.workspaces, title: 'Total Workspaces', subtitle: 'The least amount of workspaces to always show.', type: 'number', }), Option({ opt: options.bar.workspaces.monitorSpecific, title: 'Monitor Specific', subtitle: 'Only workspaces applicable to the monitor will be displayed.\n' + "Works in conjunction with 'Total Workspaces'.", type: 'boolean', }), Option({ opt: options.bar.workspaces.hideUnoccupied, title: 'Hide Unoccupied', subtitle: 'Only show workspaces that are occupied or active', type: 'boolean', }), Option({ opt: options.bar.workspaces.workspaceMask, title: 'Mask Workspace Numbers On Monitors', subtitle: 'Only applicable if Workspace Numbers and Monitor Specific are enabled.\n' + "Forces each Monitor's Workspace labels to start from 1.", type: 'boolean', }), Option({ opt: options.bar.workspaces.reverse_scroll, title: 'Invert Scroll', subtitle: 'Scrolling up will go to the previous workspace rather than the next.', type: 'boolean', }), Option({ opt: options.bar.workspaces.scroll_speed, title: 'Scrolling Speed', type: 'number', }), Option({ opt: options.bar.workspaces.ignored, title: 'Ignored Workspaces', subtitle: 'A regex that defines workspaces to ignore', type: 'string', }), /* ****************************** * WINDOW TITLES * ****************************** */ Header('Window Titles'), Option({ opt: options.theme.bar.buttons.windowtitle.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.windowtitle.custom_title, title: 'Use Custom Title', type: 'boolean', }), Option({ opt: options.bar.windowtitle.title_map, title: 'Window Title Mappings', subtitle: 'Only applicable if Show Custom Title is enabled\nWiki Link: https://hyprpanel.com/configuration/panel.html#window-title-mappings', type: 'object', subtitleLink: 'https://hyprpanel.com/configuration/panel.html#window-title-mappings', }), Option({ opt: options.bar.windowtitle.class_name, title: 'Use Class Name', subtitle: "Only applicable if Show Custom Title is disabled\nDisplays the window's class name instead of its title.", type: 'boolean', }), Option({ opt: options.bar.windowtitle.label, title: 'Show Window Title Label', type: 'boolean', }), Option({ opt: options.bar.windowtitle.icon, title: 'Show Icon', type: 'boolean', }), Option({ opt: options.bar.windowtitle.truncation, title: 'Truncate Window Title', subtitle: 'Will truncate the window title to the specified size below.', type: 'boolean', }), Option({ opt: options.bar.windowtitle.truncation_size, title: 'Truncation Size', type: 'number', min: 10, }), Option({ opt: options.theme.bar.buttons.windowtitle.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.windowtitle.leftClick, title: 'Left Click', type: 'string', }), Option({ opt: options.bar.windowtitle.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.windowtitle.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.windowtitle.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.windowtitle.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * VOLUME * ****************************** */ Header('Volume'), Option({ opt: options.theme.bar.buttons.volume.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.volume.label, title: 'Show Volume Percentage', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.volume.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.volume.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.volume.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.volume.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.volume.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * NETWORK * ****************************** */ Header('Network'), Option({ opt: options.theme.bar.buttons.network.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.network.label, title: 'Show Network Name', type: 'boolean', }), Option({ opt: options.bar.network.truncation, title: 'Truncate Network Name', subtitle: 'Will truncate the network name to the specified size below.', type: 'boolean', }), Option({ opt: options.bar.network.truncation_size, title: 'Truncation Size', type: 'number', }), Option({ opt: options.theme.bar.buttons.network.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.network.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.network.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.network.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.network.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * BLUETOOTH * ****************************** */ Header('Bluetooth'), Option({ opt: options.theme.bar.buttons.bluetooth.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.bluetooth.label, title: 'Show Bluetooth Label', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.bluetooth.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.bluetooth.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.bluetooth.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.bluetooth.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.bluetooth.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * BATTERY * ****************************** */ Header('Battery'), Option({ opt: options.theme.bar.buttons.battery.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.battery.label, title: 'Show Battery Percentage', type: 'boolean', }), Option({ opt: options.bar.battery.hideLabelWhenFull, title: 'Hide Battery Percentage When Full', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.battery.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.battery.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.battery.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.battery.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.battery.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * SYSTEM TRAY * ****************************** */ Header('System Tray'), Option({ opt: options.theme.bar.buttons.systray.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.systray.ignore, title: 'Ignore List', subtitle: 'An array of applications to prevent from showing in the system tray.\n' + 'Wiki: https://hyprpanel.com/configuration/panel.html#system-tray', subtitleLink: 'https://hyprpanel.com/configuration/panel.html#system-tray', type: 'object', }), /* ****************************** * CLOCK * ****************************** */ Header('Clock'), Option({ opt: options.theme.bar.buttons.clock.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.clock.format, title: 'Clock Format', type: 'string', }), Option({ opt: options.bar.clock.icon, title: 'Icon', type: 'string', }), Option({ opt: options.bar.clock.showIcon, title: 'Show Icon', type: 'boolean', }), Option({ opt: options.bar.clock.showTime, title: 'Show Time', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.clock.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.clock.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.clock.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.clock.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.clock.scrollDown, title: 'Scroll Down', type: 'string', }), /* ****************************** * MEDIA * ****************************** */ Header('Media'), Option({ opt: options.theme.bar.buttons.media.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.media.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.media.show_artist, title: 'Show Track Artist', type: 'boolean', }), Option({ opt: options.bar.media.show_label, title: 'Toggle Media Label', type: 'boolean', }), Option({ opt: options.bar.media.truncation, title: 'Truncate Media Label', subtitle: 'Only applicable if Toggle Media Label is enabled', type: 'boolean', }), Option({ opt: options.bar.media.truncation_size, title: 'Truncation Size', subtitle: 'Only applicable if Toggle Media Label is enabled', type: 'number', min: 10, }), Option({ opt: options.bar.media.show_active_only, title: 'Auto Hide', subtitle: 'Button will automatically hide if no media is detected.', type: 'boolean', }), Option({ opt: options.bar.media.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.media.middleClick, title: 'Middle Click', type: 'string', }), /* ****************************** * NOTIFICATIONS * ****************************** */ Header('Notifications'), Option({ opt: options.theme.bar.buttons.notifications.enableBorder, title: 'Button Border', type: 'boolean', }), Option({ opt: options.bar.notifications.show_total, title: 'Show Total # of notifications', type: 'boolean', }), Option({ opt: options.bar.notifications.hideCountWhenZero, title: 'Auto Hide Label', subtitle: 'Hide Total # of notifications when zero', type: 'boolean', }), Option({ opt: options.theme.bar.buttons.notifications.spacing, title: 'Inner Spacing', subtitle: 'Spacing between the icon and the label inside the buttons.', type: 'string', }), Option({ opt: options.bar.notifications.rightClick, title: 'Right Click', type: 'string', }), Option({ opt: options.bar.notifications.middleClick, title: 'Middle Click', type: 'string', }), Option({ opt: options.bar.notifications.scrollUp, title: 'Scroll Up', type: 'string', }), Option({ opt: options.bar.notifications.scrollDown, title: 'Scroll Down', type: 'string', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/general/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const BarGeneral = (): Scrollable => { return Widget.Scrollable({ class_name: 'bar-theme-page paged-container', vscroll: 'automatic', child: Widget.Box({ vertical: true, children: [ Header('General Settings'), Option({ opt: options.theme.font.name, title: 'Font', type: 'font' }), Option({ opt: options.theme.font.size, title: 'Font Size', type: 'string' }), Option({ opt: options.theme.font.weight, title: 'Font Weight', subtitle: '100, 200, 300, etc.', type: 'number', increment: 100, min: 100, max: 900, }), Option({ opt: options.dummy, title: 'Config', subtitle: 'WARNING: Importing a configuration will replace your current configuration settings.', type: 'config_import', exportData: { filePath: OPTIONS, themeOnly: false, }, }), Option({ opt: options.terminal, title: 'Terminal', subtitle: "Tools such as 'btop' will open in this terminal", type: 'string', }), Option({ opt: options.tear, title: 'Tearing Compatible', subtitle: 'Makes HyprPanel compatible with Hyprland tearing.\n' + "Enabling this will change all overlays (Notifications, OSDs, Bar) to the 'top' layer instead the 'overlay' layer.", type: 'boolean', }), Option({ opt: options.menus.transition, title: 'Menu Transition', type: 'enum', enums: ['none', 'crossfade'], }), Option({ opt: options.menus.transitionTime, title: 'Menu Transition Duration', type: 'number', min: 100, max: 10000, increment: 100, }), Header('Scaling'), Option({ opt: options.scalingPriority, title: 'Scaling Priority', type: 'enum', enums: ['both', 'gdk', 'hyprland'], }), Option({ opt: options.theme.bar.scaling, title: 'Bar', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.notification.scaling, title: 'Notifications', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.osd.scaling, title: 'OSD', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.dashboard.scaling, title: 'Dashboard Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.dashboard.confirmation_scaling, title: 'Confirmation Dialog', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.media.scaling, title: 'Media Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.volume.scaling, title: 'Volume Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.network.scaling, title: 'Network Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.bluetooth.scaling, title: 'Bluetooth Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.battery.scaling, title: 'Battery Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.clock.scaling, title: 'Clock Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.notifications.scaling, title: 'Notifications Menu', type: 'number', min: 1, max: 100, increment: 5, }), Option({ opt: options.theme.bar.menus.menu.power.scaling, title: 'Power Menu', type: 'number', min: 1, max: 100, increment: 5, }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/index.ts ================================================ import { BarGeneral } from './general/index'; import { BarSettings } from './bar/index'; import { ClockMenuSettings } from './menus/clock'; import { DashboardMenuSettings } from './menus/dashboard'; import { NotificationSettings } from './notifications/index'; import { OSDSettings } from './osd/index'; import { CustomModuleSettings } from 'customModules/config'; import { PowerMenuSettings } from './menus/power'; import { GBox } from 'lib/types/widget'; type Page = | 'General' | 'Bar' | 'Clock Menu' | 'Dashboard Menu' | 'Power Menu' | 'Notifications' | 'OSD' | 'Custom Modules'; const CurrentPage = Variable('General'); const pagerMap: Page[] = [ 'General', 'Bar', 'Notifications', 'OSD', 'Power Menu', 'Clock Menu', 'Dashboard Menu', 'Custom Modules', ]; export const SettingsMenu = (): GBox => { return Widget.Box({ vertical: true, children: CurrentPage.bind('value').as((v) => { return [ Widget.Box({ class_name: 'option-pages-container', hpack: 'center', hexpand: true, children: pagerMap.map((page) => { return Widget.Button({ hpack: 'center', class_name: `pager-button ${v === page ? 'active' : ''}`, label: page, on_primary_click: () => (CurrentPage.value = page), }); }), }), Widget.Stack({ vexpand: true, class_name: 'themes-menu-stack', children: { General: BarGeneral(), Bar: BarSettings(), Notifications: NotificationSettings(), OSD: OSDSettings(), 'Clock Menu': ClockMenuSettings(), 'Dashboard Menu': DashboardMenuSettings(), 'Custom Modules': CustomModuleSettings(), 'Power Menu': PowerMenuSettings(), }, shown: CurrentPage.bind('value'), }), ]; }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/menus/clock.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const ClockMenuSettings = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', child: Widget.Box({ class_name: 'bar-theme-page paged-container', vertical: true, children: [ Header('Time'), Option({ opt: options.menus.clock.time.military, title: 'Use 24hr time', type: 'boolean' }), Option({ opt: options.menus.clock.time.hideSeconds, title: 'Hide seconds', type: 'boolean' }), Header('Weather'), Option({ opt: options.menus.clock.weather.enabled, title: 'Enabled', type: 'boolean' }), Option({ opt: options.menus.clock.weather.location, title: 'Location', subtitle: 'Zip Code, Postal Code, City, etc.', type: 'string', }), Option({ opt: options.menus.clock.weather.key, title: 'Weather API Key', subtitle: 'May require AGS restart. https://weatherapi.com/', type: 'string', }), Option({ opt: options.menus.clock.weather.unit, title: 'Units', type: 'enum', enums: ['imperial', 'metric'], }), Option({ opt: options.menus.clock.weather.interval, title: 'Weather Fetching Interval (ms)', subtitle: 'May require AGS restart.', type: 'number', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/menus/dashboard.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const DashboardMenuSettings = (): Scrollable => { return Widget.Scrollable({ class_name: 'bar-theme-page paged-container', vscroll: 'always', hscroll: 'automatic', vexpand: true, overlayScrolling: true, child: Widget.Box({ vertical: true, children: [ Header('Power Menu'), Option({ opt: options.menus.dashboard.powermenu.avatar.image, title: 'Profile Image', type: 'img', subtitle: "By default, uses '~/.face.icon'", }), Option({ opt: options.menus.dashboard.powermenu.avatar.name, title: 'Profile Name', subtitle: "Use 'system' to automatically set system name", type: 'string', }), Option({ opt: options.theme.bar.menus.menu.dashboard.profile.size, title: 'Profile Image Size', type: 'string', }), Option({ opt: options.theme.bar.menus.menu.dashboard.profile.radius, title: 'Profile Image Radius', type: 'string', }), Option({ opt: options.menus.dashboard.powermenu.confirmation, title: 'Show Confirmation Dialogue', type: 'boolean', }), Option({ opt: options.menus.dashboard.powermenu.shutdown, title: 'Shutdown Command', type: 'string' }), Option({ opt: options.menus.dashboard.powermenu.reboot, title: 'Reboot Command', type: 'string' }), Option({ opt: options.menus.dashboard.powermenu.logout, title: 'Logout Command', type: 'string' }), Option({ opt: options.menus.dashboard.powermenu.sleep, title: 'Sleep Command', type: 'string' }), Header('Controls'), Option({ opt: options.menus.dashboard.controls.enabled, title: 'Enabled', type: 'boolean' }), Header('Resource Usage Metrics'), Option({ opt: options.menus.dashboard.stats.enabled, title: 'Enabled', type: 'boolean' }), Option({ opt: options.menus.dashboard.stats.enable_gpu, title: 'Track GPU', subtitle: "NOTE: This is currently only available for NVidia GPUs and requires 'python-gpustat'.", type: 'boolean', }), Option({ opt: options.menus.dashboard.stats.interval, title: 'Update Interval', subtitle: 'The frequency at which to poll system metrics.', type: 'number', min: 100, increment: 500, }), Header('Shortcuts'), Option({ opt: options.menus.dashboard.shortcuts.enabled, title: 'Enabled', type: 'boolean' }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut1.icon, title: 'Left - Shortcut 1 (Icon)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut1.command, title: 'Left - Shortcut 1 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut1.tooltip, title: 'Left - Shortcut 1 (Tooltip)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut2.icon, title: 'Left - Shortcut 2 (Icon)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut2.command, title: 'Left - Shortcut 2 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut2.tooltip, title: 'Left - Shortcut 2 (Tooltip)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut3.icon, title: 'Left - Shortcut 3 (Icon)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut3.command, title: 'Left - Shortcut 3 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut3.tooltip, title: 'Left - Shortcut 3 (Tooltip)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut4.icon, title: 'Left - Shortcut 4 (Icon)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut4.command, title: 'Left - Shortcut 4 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.left.shortcut4.tooltip, title: 'Left - Shortcut 4 (Tooltip)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.right.shortcut1.icon, title: 'Right - Shortcut 1 (Icon)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.right.shortcut1.command, title: 'Right - Shortcut 1 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.right.shortcut1.tooltip, title: 'Right - Shortcut 1 (Tooltip)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.right.shortcut3.icon, title: 'Right - Shortcut 3 (Icon)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.right.shortcut3.command, title: 'Right - Shortcut 3 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.shortcuts.right.shortcut3.tooltip, title: 'Right - Shortcut 3 (Tooltip)', type: 'string', }), Header('Directories'), Option({ opt: options.menus.dashboard.directories.enabled, title: 'Enabled', type: 'boolean' }), Option({ opt: options.menus.dashboard.directories.left.directory1.label, title: 'Left - Directory 1 (Label)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.left.directory1.command, title: 'Left - Directory 1 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.left.directory2.label, title: 'Left - Directory 2 (Label)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.left.directory2.command, title: 'Left - Directory 2 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.left.directory3.label, title: 'Left - Directory 3 (Label)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.left.directory3.command, title: 'Left - Directory 3 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.right.directory1.label, title: 'Right - Directory 1 (Label)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.right.directory1.command, title: 'Right - Directory 1 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.right.directory2.label, title: 'Right - Directory 2 (Label)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.right.directory2.command, title: 'Right - Directory 2 (Command)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.right.directory3.label, title: 'Right - Directory 3 (Label)', type: 'string', }), Option({ opt: options.menus.dashboard.directories.right.directory3.command, title: 'Right - Directory 3 (Command)', type: 'string', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/menus/power.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import { Attribute, Child } from 'lib/types/widget'; import Scrollable from 'types/widgets/scrollable'; export const PowerMenuSettings = (): Scrollable => { return Widget.Scrollable({ class_name: 'bar-theme-page paged-container', vscroll: 'always', hscroll: 'automatic', vexpand: true, overlayScrolling: true, child: Widget.Box({ vertical: true, children: [ Header('Power Menu'), Option({ opt: options.menus.power.showLabel, title: 'Show Label', type: 'boolean' }), Option({ opt: options.menus.power.confirmation, title: 'Confirmation Dialog', type: 'boolean' }), Option({ opt: options.menus.power.shutdown, title: 'Shutdown Command', type: 'string' }), Option({ opt: options.menus.power.reboot, title: 'Reboot Command', type: 'string' }), Option({ opt: options.menus.power.logout, title: 'Logout Command', type: 'string' }), Option({ opt: options.menus.power.sleep, title: 'Sleep Command', type: 'string' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/notifications/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const NotificationSettings = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', child: Widget.Box({ class_name: 'bar-theme-page paged-container', vertical: true, children: [ Header('Notification Settings'), Option({ opt: options.notifications.ignore, title: 'Ignored Applications', subtitle: 'Applications to ignore.\n' + 'Wiki: https://hyprpanel.com/configuration/notifications.html#ignored-applications', subtitleLink: 'https://hyprpanel.com/configuration/notifications.html#ignored-applications', type: 'object', }), Option({ opt: options.notifications.position, title: 'Notification Location', type: 'enum', enums: ['top left', 'top', 'top right', 'right', 'bottom right', 'bottom', 'bottom left', 'left'], }), Option({ opt: options.theme.notification.border_radius, title: 'Border Radius', type: 'string', }), Option({ opt: options.notifications.monitor, title: 'Monitor', subtitle: 'The ID of the monitor on which to display the notification', type: 'number', }), Option({ opt: options.notifications.active_monitor, title: 'Follow Cursor', subtitle: 'The notification will follow the monitor of your cursor', type: 'boolean', }), Option({ opt: options.notifications.clearDelay, title: 'Clear Delay', subtitle: 'The delay in milliseconds before a notification is cleared' + '\nWARNING: Setting this value too low may crash AGS depending on your system.', type: 'number', increment: 20, }), Option({ opt: options.notifications.timeout, title: 'Notification Timeout', subtitle: 'How long notification popups will last (in milliseconds).', type: 'number', }), Option({ opt: options.notifications.cache_actions, title: 'Preserve Actions', subtitle: 'This will persist the action buttons of a notification after rebooting.', type: 'boolean', }), Header('Notification Menu Settings'), Option({ opt: options.theme.bar.menus.menu.notifications.height, title: 'Notification Menu Height', type: 'string', }), Option({ opt: options.notifications.displayedTotal, title: 'Displayed Total', subtitle: 'How many notifications to show in the menu at once.\n' + 'Newer notifications will display towards the top.', type: 'number', min: 1, }), Option({ opt: options.theme.bar.menus.menu.notifications.pager.show, title: 'Show Pager', subtitle: 'Shows the pagination footer at the bottom of the menu.', type: 'boolean', }), Option({ opt: options.theme.bar.menus.menu.notifications.scrollbar.width, title: 'Scrollbar Width', type: 'string', }), Option({ opt: options.theme.bar.menus.menu.notifications.scrollbar.radius, title: 'Scrollbar Radius', type: 'string', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/config/osd/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const OSDSettings = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', child: Widget.Box({ class_name: 'bar-theme-page paged-container', vertical: true, children: [ Header('On Screen Display'), Option({ opt: options.theme.osd.enable, title: 'Enabled', type: 'boolean' }), Option({ opt: options.theme.osd.duration, title: 'Duration', type: 'number', min: 100, max: 10000, increment: 500, }), Option({ opt: options.theme.osd.orientation, title: 'Orientation', type: 'enum', enums: ['horizontal', 'vertical'], }), Option({ opt: options.theme.osd.location, title: 'Position', subtitle: 'Position of the OSD on the screen', type: 'enum', enums: ['top left', 'top', 'top right', 'right', 'bottom right', 'bottom', 'bottom left', 'left'], }), Option({ opt: options.theme.osd.monitor, title: 'Monitor', subtitle: 'The ID of the monitor on which to display the OSD', type: 'number', }), Option({ opt: options.theme.osd.active_monitor, title: 'Follow Cursor', subtitle: 'The OSD will follow the monitor of your cursor', type: 'boolean', }), Option({ opt: options.theme.osd.radius, title: 'Radius', subtitle: 'Radius of the on-screen-display that indicates volume/brightness change', type: 'string', }), Option({ opt: options.theme.osd.margins, title: 'Margins', subtitle: 'Margins in the following format: top right bottom left', type: 'string', }), Option({ opt: options.theme.osd.muted_zero, title: 'Mute Volume as Zero', subtitle: 'Display volume as 0 when muting, instead of previous device volume', type: 'boolean', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/bar/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const BarTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'always', hscroll: 'automatic', class_name: 'bar-theme-page paged-container', child: Widget.Box({ vertical: true, children: [ Header('General'), Option({ opt: options.theme.bar.transparent, title: 'Transparent', type: 'boolean' }), Option({ opt: options.theme.bar.background, title: 'Background Color', type: 'color' }), Option({ opt: options.theme.bar.buttons.style, title: 'Button Style', type: 'enum', enums: ['default', 'split', 'wave', 'wave2'], }), Option({ opt: options.theme.bar.opacity, title: 'Background Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.bar.buttons.opacity, title: 'Button Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.bar.buttons.background_opacity, title: 'Button Background Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.bar.buttons.background_hover_opacity, title: 'Button Background Hover Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.bar.buttons.monochrome, title: 'Use Global Colors', type: 'boolean', disabledBinding: options.theme.matugen, }), Option({ opt: options.theme.bar.buttons.background, title: 'Button Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.hover, title: 'Button Hover', type: 'color' }), Option({ opt: options.theme.bar.buttons.text, title: 'Button Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.icon, title: 'Button Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Header('Dashboard Button'), Option({ opt: options.theme.bar.buttons.dashboard.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.dashboard.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.dashboard.border, title: 'Border', type: 'color' }), Header('Workspaces'), Option({ opt: options.theme.bar.buttons.workspaces.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.workspaces.hover, title: 'Workspace Hover Color', type: 'color', }), Option({ opt: options.theme.bar.buttons.workspaces.available, title: 'Workspace Available Color', type: 'color', }), Option({ opt: options.theme.bar.buttons.workspaces.occupied, title: 'Workspace Occupied Color', type: 'color', }), Option({ opt: options.theme.bar.buttons.workspaces.active, title: 'Workspace Active Color', type: 'color', }), Option({ opt: options.theme.bar.buttons.workspaces.numbered_active_highlighted_text_color, title: 'Highlighted Workspace Text Color', type: 'color', }), Option({ opt: options.theme.bar.buttons.workspaces.numbered_active_underline_color, title: 'Workspace Underline Color', type: 'color', }), Option({ opt: options.theme.bar.buttons.workspaces.border, title: 'Border', type: 'color' }), Header('Window Title'), Option({ opt: options.theme.bar.buttons.windowtitle.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.windowtitle.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.windowtitle.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.windowtitle.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.windowtitle.border, title: 'Border', type: 'color' }), Header('Media'), Option({ opt: options.theme.bar.buttons.media.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.media.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.media.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.media.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.media.border, title: 'Border', type: 'color' }), Header('Volume'), Option({ opt: options.theme.bar.buttons.volume.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.volume.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.volume.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.volume.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.volume.border, title: 'Border', type: 'color' }), Header('Network'), Option({ opt: options.theme.bar.buttons.network.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.network.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.network.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.network.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.network.border, title: 'Border', type: 'color' }), Header('Bluetooth'), Option({ opt: options.theme.bar.buttons.bluetooth.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.bluetooth.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.bluetooth.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.bluetooth.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.bluetooth.border, title: 'Border', type: 'color' }), Header('System Tray'), Option({ opt: options.theme.bar.buttons.systray.background, title: 'Background', type: 'color' }), Header('Battery'), Option({ opt: options.theme.bar.buttons.battery.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.battery.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.battery.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.battery.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.battery.border, title: 'Border', type: 'color' }), Header('Clock'), Option({ opt: options.theme.bar.buttons.clock.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.clock.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.buttons.clock.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.clock.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.clock.border, title: 'Border', type: 'color' }), Header('Notifications'), Option({ opt: options.theme.bar.buttons.notifications.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.buttons.notifications.total, title: 'Notification Count', type: 'color', }), Option({ opt: options.theme.bar.buttons.notifications.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.bar.buttons.notifications.icon_background, title: 'Button Icon Background', subtitle: "Applies a background color to the icon section of the button.\nRequires 'split' button styling.", type: 'color', }), Option({ opt: options.theme.bar.buttons.notifications.border, title: 'Border', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/index.ts ================================================ import { BarTheme } from './bar/index'; import { NotificationsTheme } from './notifications/index'; import { BatteryMenuTheme } from './menus/battery'; import { BluetoothMenuTheme } from './menus/bluetooth'; import { ClockMenuTheme } from './menus/clock'; import { DashboardMenuTheme } from './menus/dashboard'; import { MenuTheme } from './menus/index'; import { MediaMenuTheme } from './menus/media'; import { NetworkMenuTheme } from './menus/network'; import { NotificationsMenuTheme } from './menus/notifications'; import { SystrayMenuTheme } from './menus/systray'; import { VolumeMenuTheme } from './menus/volume'; import { OsdTheme } from './osd/index'; import { Matugen } from './menus/matugen'; import { CustomModuleTheme } from 'customModules/theme'; import { PowerMenuTheme } from './menus/power'; import { GBox } from 'lib/types/widget'; type Page = | 'General Settings' | 'Matugen Settings' | 'Bar' | 'Notifications' | 'OSD' | 'Battery Menu' | 'Bluetooth Menu' | 'Clock Menu' | 'Dashboard Menu' | 'Media Menu' | 'Network Menu' | 'Notifications Menu' | 'System Tray' | 'Volume Menu' | 'Power Menu' | 'Custom Modules'; const CurrentPage = Variable('General Settings'); const pagerMap: Page[] = [ 'General Settings', 'Matugen Settings', 'Bar', 'Notifications', 'OSD', 'Battery Menu', 'Bluetooth Menu', 'Clock Menu', 'Dashboard Menu', 'Media Menu', 'Network Menu', 'Notifications Menu', 'System Tray', 'Volume Menu', 'Power Menu', 'Custom Modules', ]; export const ThemesMenu = (): GBox => { return Widget.Box({ vertical: true, children: CurrentPage.bind('value').as((v) => { return [ Widget.Box({ class_name: 'option-pages-container', hpack: 'center', hexpand: true, vertical: true, children: [0, 1, 2].map((section) => { return Widget.Box({ children: pagerMap.map((page, index) => { if (index >= section * 6 && index < section * 6 + 6) { return Widget.Button({ hpack: 'center', xalign: 0, class_name: `pager-button ${v === page ? 'active' : ''}`, label: page, on_primary_click: () => (CurrentPage.value = page), }); } return Widget.Box(); }), }); }), }), Widget.Stack({ vexpand: true, class_name: 'themes-menu-stack', children: { 'General Settings': MenuTheme(), 'Matugen Settings': Matugen(), Bar: BarTheme(), Notifications: NotificationsTheme(), OSD: OsdTheme(), 'Battery Menu': BatteryMenuTheme(), 'Bluetooth Menu': BluetoothMenuTheme(), 'Clock Menu': ClockMenuTheme(), 'Dashboard Menu': DashboardMenuTheme(), 'Media Menu': MediaMenuTheme(), 'Network Menu': NetworkMenuTheme(), 'Notifications Menu': NotificationsMenuTheme(), 'System Tray': SystrayMenuTheme(), 'Volume Menu': VolumeMenuTheme(), 'Power Menu': PowerMenuTheme(), 'Custom Modules': CustomModuleTheme(), }, shown: CurrentPage.bind('value'), }), ]; }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/battery.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const BatteryMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page battery paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Battery Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.battery.text, title: 'Text', type: 'color' }), Header('Card'), Option({ opt: options.theme.bar.menus.menu.battery.card.color, title: 'Card', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.battery.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.battery.border.color, title: 'Border', type: 'color' }), Header('Label'), Option({ opt: options.theme.bar.menus.menu.battery.label.color, title: 'Label', type: 'color' }), Header('List Items'), Option({ opt: options.theme.bar.menus.menu.battery.listitems.active, title: 'Active/Hover', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.battery.listitems.passive, title: 'Passive', type: 'color', }), Header('Icons'), Option({ opt: options.theme.bar.menus.menu.battery.icons.active, title: 'Active', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.battery.icons.passive, title: 'Passive', type: 'color' }), Header('Slider'), Option({ opt: options.theme.bar.menus.menu.battery.slider.primary, title: 'Primary', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.battery.slider.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.battery.slider.backgroundhover, title: 'Background (Hover)', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.battery.slider.puck, title: 'Puck', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/bluetooth.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const BluetoothMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page bluetooth paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Bluetooth Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.bluetooth.text, title: 'Text', type: 'color' }), Header('Card'), Option({ opt: options.theme.bar.menus.menu.bluetooth.card.color, title: 'Card', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.bluetooth.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.bluetooth.border.color, title: 'Border', type: 'color' }), Header('Label'), Option({ opt: options.theme.bar.menus.menu.bluetooth.label.color, title: 'Label', type: 'color' }), Header('Status'), Option({ opt: options.theme.bar.menus.menu.bluetooth.status, title: 'Connection Status', type: 'color', }), Header('List Items'), Option({ opt: options.theme.bar.menus.menu.bluetooth.listitems.active, title: 'Active/Hover', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.bluetooth.listitems.passive, title: 'Passive', type: 'color', }), Header('Icons'), Option({ opt: options.theme.bar.menus.menu.bluetooth.icons.active, title: 'Active', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.bluetooth.icons.passive, title: 'Passive', type: 'color' }), Header('Icon Buttons'), Option({ opt: options.theme.bar.menus.menu.bluetooth.iconbutton.active, title: 'Active', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.bluetooth.iconbutton.passive, title: 'Passive', type: 'color', }), Header('Switch'), Option({ opt: options.theme.bar.menus.menu.bluetooth.switch.enabled, title: 'Enabled', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.bluetooth.switch.disabled, title: 'Disabled', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.bluetooth.switch.puck, title: 'Puck', type: 'color' }), Header('Switch Divider'), Option({ opt: options.theme.bar.menus.menu.bluetooth.switch_divider, title: 'Switch Divider', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/clock.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const ClockMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page clock paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Clock Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.clock.text, title: 'Text', type: 'color' }), Header('Card'), Option({ opt: options.theme.bar.menus.menu.clock.card.color, title: 'Card', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.clock.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.clock.border.color, title: 'Border', type: 'color' }), Header('Time'), Option({ opt: options.theme.bar.menus.menu.clock.time.time, title: 'Time', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.clock.time.timeperiod, title: 'Period', subtitle: 'AM/PM', type: 'color', }), Header('Calendar'), Option({ opt: options.theme.bar.menus.menu.clock.calendar.yearmonth, title: 'Year/Month', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.calendar.weekdays, title: 'Weekdays', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.clock.calendar.paginator, title: 'Navigation Arrows (Hover)', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.calendar.currentday, title: 'Current Day', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.calendar.days, title: 'Days', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.clock.calendar.contextdays, title: 'Trailing/Leading Days', type: 'color', }), Header('Weather'), Option({ opt: options.theme.bar.menus.menu.clock.weather.icon, title: 'Current Weather Icon', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.temperature, title: 'Current Temperature', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.status, title: 'Current Status', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.stats, title: 'Current Stats', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.thermometer.extremelyhot, title: 'Thermometer - Extremely Hot', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.thermometer.hot, title: 'Thermometer - Hot', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.thermometer.moderate, title: 'Thermometer - Moderate', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.thermometer.cold, title: 'Thermometer - Cold', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.thermometer.extremelycold, title: 'Thermometer - Extremely Cold', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.hourly.time, title: 'Hourly Weather Time', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.hourly.icon, title: 'Hourly Weather Icon', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.clock.weather.hourly.temperature, title: 'Hourly Weather Temperature', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/dashboard.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const DashboardMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'always', hscroll: 'automatic', class_name: 'menu-theme-page dashboard paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Card'), Option({ opt: options.theme.bar.menus.menu.dashboard.card.color, title: 'Card', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.dashboard.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.dashboard.border.color, title: 'Border', type: 'color' }), Header('Profile'), Option({ opt: options.theme.bar.menus.menu.dashboard.profile.name, title: 'Profile Name', type: 'color', }), Header('Power Menu'), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.shutdown, title: 'Shutdown', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.restart, title: 'Restart', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.logout, title: 'Log Out', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.sleep, title: 'Sleep', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.card, title: 'Confirmation Dialog Card', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.background, title: 'Confirmation Dialog Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.border, title: 'Confirmation Dialog Border', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.label, title: 'Confirmation Dialog Label', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.body, title: 'Confirmation Dialog Description', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.confirm, title: 'Confirmation Dialog Confirm Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.deny, title: 'Confirmation Dialog Cancel Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.powermenu.confirmation.button_text, title: 'Confirmation Dialog Button Text', type: 'color', }), Header('Shortcuts'), Option({ opt: options.theme.bar.menus.menu.dashboard.shortcuts.background, title: 'Primary', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.shortcuts.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.dashboard.shortcuts.recording, title: 'Recording', subtitle: 'Color of the Record button when recording is in progress', type: 'color', }), Header('Controls'), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.disabled, title: 'Module Off', subtitle: 'Button color when element is disabled', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.wifi.background, title: 'Wifi Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.wifi.text, title: 'Wifi Button Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.bluetooth.background, title: 'Bluetooth Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.bluetooth.text, title: 'Bluetooth Button Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.notifications.background, title: 'Notifications Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.notifications.text, title: 'Notifications Button Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.volume.background, title: 'Volume Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.volume.text, title: 'Volume Button Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.input.background, title: 'Input Button', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.controls.input.text, title: 'Input Button Text', type: 'color', }), Header('Directories'), Option({ opt: options.theme.bar.menus.menu.dashboard.directories.left.top.color, title: 'Directory: Left - Top', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.directories.left.middle.color, title: 'Directory: Left - Middle', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.directories.left.bottom.color, title: 'Directory: Left - Bottom', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.directories.right.top.color, title: 'Directory: Right - Top', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.directories.right.middle.color, title: 'Directory: Right - Middle', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.directories.right.bottom.color, title: 'Directory: Right - Bottom', type: 'color', }), Header('System Stats'), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.bar_background, title: 'Bar Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.cpu.icon, title: 'CPU Icon', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.cpu.bar, title: 'CPU Bar', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.cpu.label, title: 'CPU Label', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.ram.icon, title: 'RAM Icon', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.ram.bar, title: 'RAM Bar', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.ram.label, title: 'RAM Label', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.gpu.icon, title: 'GPU Icon', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.gpu.bar, title: 'GPU Bar', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.gpu.label, title: 'GPU Label', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.disk.icon, title: 'Disk Icon', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.disk.bar, title: 'Disk Bar', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.dashboard.monitors.disk.label, title: 'Disk Label', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const MenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('General'), Option({ opt: options.dummy, title: 'Theme', subtitle: 'WARNING: Importing a theme will replace your current theme color settings.', type: 'config_import', exportData: { filePath: OPTIONS, themeOnly: true, }, }), Option({ opt: options.theme.bar.menus.monochrome, title: 'Use Global Colors', type: 'boolean', disabledBinding: options.theme.matugen, }), Option({ opt: options.wallpaper.pywal, title: 'Generate Pywal Colors', subtitle: 'Whether to also generate pywal colors with chosen wallpaper', type: 'boolean', }), Option({ opt: options.wallpaper.enable, title: 'Apply Wallpapers', subtitle: 'Whether to apply the wallpaper or to only use it for Matugen color generation.', type: 'boolean', }), Option({ opt: options.wallpaper.image, title: 'Wallpaper', subtitle: options.wallpaper.image.bind('value'), type: 'wallpaper', }), Option({ opt: options.theme.bar.menus.background, title: 'Background Color', type: 'color' }), Option({ opt: options.theme.bar.menus.opacity, title: 'Menu Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.bar.menus.cards, title: 'Cards', type: 'color' }), Option({ opt: options.theme.bar.menus.card_radius, title: 'Card Radius', type: 'string' }), Option({ opt: options.theme.bar.menus.text, title: 'Primary Text', type: 'color' }), Option({ opt: options.theme.bar.menus.dimtext, title: 'Dim Text', type: 'color' }), Option({ opt: options.theme.bar.menus.feinttext, title: 'Feint Text', type: 'color' }), Option({ opt: options.theme.bar.menus.label, title: 'Label Color', type: 'color' }), Header('Border'), Option({ opt: options.theme.bar.menus.border.size, title: 'Border Width', type: 'string' }), Option({ opt: options.theme.bar.menus.border.radius, title: 'Border Radius', type: 'string' }), Option({ opt: options.theme.bar.menus.border.color, title: 'Border Color', type: 'color' }), Header('Popover'), Option({ opt: options.theme.bar.menus.popover.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.menus.popover.background, title: 'Background', type: 'color' }), Header('List Items'), Option({ opt: options.theme.bar.menus.listitems.active, title: 'Active', subtitle: 'Items of a list (network name, bluetooth device name, playback device, etc.) when active or hovered.', type: 'color', }), Option({ opt: options.theme.bar.menus.listitems.passive, title: 'Passive', type: 'color' }), Header('Icons'), Option({ opt: options.theme.bar.menus.icons.active, title: 'Active', type: 'color' }), Option({ opt: options.theme.bar.menus.icons.passive, title: 'Passive', type: 'color' }), Header('Switch'), Option({ opt: options.theme.bar.menus.switch.enabled, title: 'Enabled', type: 'color' }), Option({ opt: options.theme.bar.menus.switch.disabled, title: 'Disabled', type: 'color' }), Option({ opt: options.theme.bar.menus.switch.radius, title: 'Switch Radius', type: 'string' }), Option({ opt: options.theme.bar.menus.switch.slider_radius, title: 'Switch Puck Radius', type: 'string', }), Option({ opt: options.theme.bar.menus.switch.puck, title: 'Puck', type: 'color' }), Header('Check/Radio Buttons'), Option({ opt: options.theme.bar.menus.check_radio_button.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.check_radio_button.active, title: 'Active', type: 'color' }), Header('Buttons'), Option({ opt: options.theme.bar.menus.buttons.default, title: 'Primary', type: 'color' }), Option({ opt: options.theme.bar.menus.buttons.active, title: 'Active', type: 'color' }), Option({ opt: options.theme.bar.menus.buttons.disabled, title: 'Disabled', type: 'color' }), Option({ opt: options.theme.bar.menus.buttons.text, title: 'Text', type: 'color' }), Header('Icon Buttons'), Option({ opt: options.theme.bar.menus.iconbuttons.passive, title: 'Primary', type: 'color' }), Option({ opt: options.theme.bar.menus.iconbuttons.active, title: 'Active/Hovered', type: 'color' }), Header('Progress Bar'), Option({ opt: options.theme.bar.menus.progressbar.foreground, title: 'Primary', type: 'color' }), Option({ opt: options.theme.bar.menus.progressbar.background, title: 'Background', type: 'color' }), Header('Slider'), Option({ opt: options.theme.bar.menus.slider.primary, title: 'Primary', type: 'color' }), Option({ opt: options.theme.bar.menus.slider.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.menus.slider.backgroundhover, title: 'Background (Hover)', type: 'color', }), Option({ opt: options.theme.bar.menus.slider.slider_radius, title: 'Slider Puck Radius', type: 'string', }), Option({ opt: options.theme.bar.menus.slider.progress_radius, title: 'Slider/Progress Bar Radius', type: 'string', }), Option({ opt: options.theme.bar.menus.slider.puck, title: 'Puck', type: 'color' }), Header('Dropdown Menu'), Option({ opt: options.theme.bar.menus.dropdownmenu.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.menus.dropdownmenu.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.menus.dropdownmenu.divider, title: 'Divider', type: 'color' }), Header('Tooltips'), Option({ opt: options.theme.bar.menus.tooltip.background, title: 'Background', type: 'color' }), Option({ opt: options.theme.bar.menus.tooltip.text, title: 'Text', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/matugen.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const Matugen = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Matugen Settings'), Option({ opt: options.theme.matugen, title: 'Enable Matugen', subtitle: 'WARNING: THIS WILL REPLACE YOUR CURRENT COLOR SCHEME!!!', type: 'boolean', dependencies: ['matugen', 'swww'], }), Option({ opt: options.theme.matugen_settings.mode, title: 'Matugen Theme', type: 'enum', enums: ['light', 'dark'], }), Option({ opt: options.theme.matugen_settings.scheme_type, title: 'Matugen Scheme', type: 'enum', enums: [ 'content', 'expressive', 'fidelity', 'fruit-salad', 'monochrome', 'neutral', 'rainbow', 'tonal-spot', ], }), Option({ opt: options.theme.matugen_settings.variation, title: 'Matugen Variation', type: 'enum', enums: [ 'standard_1', 'standard_2', 'standard_3', 'monochrome_1', 'monochrome_2', 'monochrome_3', 'vivid_1', 'vivid_2', 'vivid_3', ], }), Option({ opt: options.theme.matugen_settings.contrast, title: 'Contrast', subtitle: 'Range: -1 to 1 (Default: 0)', type: 'float', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/media.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const MediaMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page media paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Media Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.media.song, title: 'Song', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.media.artist, title: 'Artist', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.media.album, title: 'Album', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.media.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.media.border.color, title: 'Border', type: 'color' }), Header('Card/Album Art'), Option({ opt: options.theme.bar.menus.menu.media.card.color, title: 'Color', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.media.card.tint, title: 'Tint', type: 'number', increment: 5, min: 0, max: 100, }), Header('Buttons'), Option({ opt: options.theme.bar.menus.menu.media.buttons.inactive, title: 'Unavailable', subtitle: "Disabled button when media control isn't available.", type: 'color', }), Option({ opt: options.theme.bar.menus.menu.media.buttons.enabled, title: 'Enabled', subtitle: 'Ex: Button color when shuffle/loop is enabled.', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.media.buttons.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.media.buttons.text, title: 'Text', type: 'color' }), Header('Slider'), Option({ opt: options.theme.bar.menus.menu.media.slider.primary, title: 'Primary Color', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.media.slider.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.media.slider.backgroundhover, title: 'Background (Hover)', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.media.slider.puck, title: 'Puck', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/network.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const NetworkMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page network paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Network Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.network.text, title: 'Text', type: 'color' }), Header('Card'), Option({ opt: options.theme.bar.menus.menu.network.card.color, title: 'Card', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.network.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.network.border.color, title: 'Border', type: 'color' }), Header('Label'), Option({ opt: options.theme.bar.menus.menu.network.label.color, title: 'Label', type: 'color' }), Header('Status'), Option({ opt: options.theme.bar.menus.menu.network.status.color, title: 'Connection Status', type: 'color', }), Header('Switch'), Option({ opt: options.theme.bar.menus.menu.network.switch.enabled, title: 'Enabled', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.network.switch.disabled, title: 'Disabled', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.network.switch.puck, title: 'Puck', type: 'color' }), Header('List Items'), Option({ opt: options.theme.bar.menus.menu.network.listitems.active, title: 'Active/Hover', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.network.listitems.passive, title: 'Passive', type: 'color', }), Header('Icons'), Option({ opt: options.theme.bar.menus.menu.network.icons.active, title: 'Active', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.network.icons.passive, title: 'Passive', type: 'color' }), Header('Icon Buttons'), Option({ opt: options.theme.bar.menus.menu.network.iconbuttons.active, title: 'Active', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.network.iconbuttons.passive, title: 'Passive', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/notifications.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const NotificationsMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page notifications paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Notifications Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.notifications.label, title: 'Menu Label', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.notifications.card, title: 'Card', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.notifications.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.no_notifications_label, title: 'Empty Notifications Backdrop', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.border, title: 'Border', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.notifications.switch_divider, title: 'Switch Divider', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.clear, title: 'Clear Notifications Button', type: 'color', }), Header('Switch'), Option({ opt: options.theme.bar.menus.menu.notifications.switch.enabled, title: 'Enabled', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.switch.disabled, title: 'Disabled', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.switch.puck, title: 'Puck', type: 'color' }), Header('Scrollbar'), Option({ opt: options.theme.bar.menus.menu.notifications.scrollbar.color, title: 'Scrollbar Color', type: 'color', }), Header('Pagination'), Option({ opt: options.theme.bar.menus.menu.notifications.pager.background, title: 'Pager Footer Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.pager.button, title: 'Pager Button Color', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.notifications.pager.label, title: 'Pager Label Color', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/power.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const PowerMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page power paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Background'), Option({ opt: options.theme.bar.menus.menu.power.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.power.border.color, title: 'Border', type: 'color' }), Header('Shutdown Button'), Option({ opt: options.theme.bar.menus.menu.power.buttons.shutdown.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.shutdown.icon_background, title: 'Icon Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.shutdown.text, title: 'Label Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.shutdown.icon, title: 'Icon', type: 'color' }), Header('Reboot Button'), Option({ opt: options.theme.bar.menus.menu.power.buttons.restart.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.restart.icon_background, title: 'Icon Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.restart.text, title: 'Label Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.restart.icon, title: 'Icon', type: 'color' }), Header('Logout Button'), Option({ opt: options.theme.bar.menus.menu.power.buttons.logout.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.logout.icon_background, title: 'Icon Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.logout.text, title: 'Label Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.logout.icon, title: 'Icon', type: 'color' }), Header('Sleep Button'), Option({ opt: options.theme.bar.menus.menu.power.buttons.sleep.background, title: 'Label Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.sleep.icon_background, title: 'Icon Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.sleep.text, title: 'Label Text', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.power.buttons.sleep.icon, title: 'Icon', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/systray.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const SystrayMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page systray paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Dropdown Menu'), Option({ opt: options.theme.bar.menus.menu.systray.dropdownmenu.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.systray.dropdownmenu.text, title: 'Text', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.systray.dropdownmenu.divider, title: 'Section Divider', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/menus/volume.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const VolumeMenuTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'menu-theme-page volume paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Volume Menu Theme Settings'), Option({ opt: options.theme.bar.menus.menu.volume.text, title: 'Text', type: 'color' }), Header('Card'), Option({ opt: options.theme.bar.menus.menu.volume.card.color, title: 'Card', type: 'color' }), Header('Background'), Option({ opt: options.theme.bar.menus.menu.volume.background.color, title: 'Background', type: 'color', }), Header('Border'), Option({ opt: options.theme.bar.menus.menu.volume.border.color, title: 'Border', type: 'color' }), Header('Label'), Option({ opt: options.theme.bar.menus.menu.volume.label.color, title: 'Label', type: 'color' }), Header('List Items'), Option({ opt: options.theme.bar.menus.menu.volume.listitems.active, title: 'Active/Hover', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.listitems.passive, title: 'Passive', type: 'color' }), Header('Icon Button'), Option({ opt: options.theme.bar.menus.menu.volume.iconbutton.active, title: 'Active/Hover', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.iconbutton.passive, title: 'Passive', type: 'color', }), Header('Icons'), Option({ opt: options.theme.bar.menus.menu.volume.icons.active, title: 'Active', type: 'color' }), Option({ opt: options.theme.bar.menus.menu.volume.icons.passive, title: 'Passive', type: 'color' }), Header('Audio Slider'), Option({ opt: options.theme.bar.menus.menu.volume.audio_slider.primary, title: 'Primary', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.audio_slider.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.audio_slider.backgroundhover, title: 'Background (Hover)', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.audio_slider.puck, title: 'Puck', type: 'color' }), Header('Input Slider'), Option({ opt: options.theme.bar.menus.menu.volume.input_slider.primary, title: 'Primary', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.input_slider.background, title: 'Background', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.input_slider.backgroundhover, title: 'Background (Hover)', type: 'color', }), Option({ opt: options.theme.bar.menus.menu.volume.input_slider.puck, title: 'Puck', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/notifications/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const NotificationsTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'notifications-theme-page paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('Notifications Theme Settings'), Option({ opt: options.theme.notification.background, title: 'Notification Background', type: 'color' }), Option({ opt: options.theme.notification.opacity, title: 'Notification Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.notification.actions.background, title: 'Action Button Background', subtitle: 'Buttons that perform actions within a notification', type: 'color', }), Option({ opt: options.theme.notification.actions.text, title: 'Action Button Text Color', type: 'color', }), Option({ opt: options.theme.notification.label, title: 'Label', type: 'color' }), Option({ opt: options.theme.notification.border, title: 'Border', type: 'color' }), Option({ opt: options.theme.notification.time, title: 'Time Stamp', type: 'color' }), Option({ opt: options.theme.notification.text, title: 'Body Text', type: 'color' }), Option({ opt: options.theme.notification.labelicon, title: 'Label Icon', subtitle: "Icon that accompanies the label. Doesn't apply if icon is an app icon.", type: 'color', }), Option({ opt: options.theme.notification.close_button.background, title: 'Dismiss Button', type: 'color', }), Option({ opt: options.theme.notification.close_button.label, title: 'Dismiss Button Text', type: 'color', }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/pages/theme/osd/index.ts ================================================ import { Option } from 'widget/settings/shared/Option'; import { Header } from 'widget/settings/shared/Header'; import options from 'options'; import Scrollable from 'types/widgets/scrollable'; import { Attribute, Child } from 'lib/types/widget'; export const OsdTheme = (): Scrollable => { return Widget.Scrollable({ vscroll: 'automatic', hscroll: 'automatic', class_name: 'osd-theme-page paged-container', vexpand: true, child: Widget.Box({ vertical: true, children: [ Header('On Screen Display Settings'), Option({ opt: options.theme.osd.opacity, title: 'OSD Opacity', type: 'number', increment: 5, min: 0, max: 100, }), Option({ opt: options.theme.osd.bar_color, title: 'Bar', type: 'color' }), Option({ opt: options.theme.osd.bar_overflow_color, title: 'Bar Overflow', subtitle: 'Overflow color is for when the volume goes over a 100', type: 'color', }), Option({ opt: options.theme.osd.bar_empty_color, title: 'Bar Background', type: 'color' }), Option({ opt: options.theme.osd.bar_container, title: 'Bar Container', type: 'color' }), Option({ opt: options.theme.osd.icon, title: 'Icon', type: 'color' }), Option({ opt: options.theme.osd.icon_container, title: 'Icon Container', type: 'color' }), Option({ opt: options.theme.osd.label, title: 'Value Text', type: 'color' }), ], }), }); }; ================================================ FILE: .config/ags/widget/settings/shared/FileChooser.ts ================================================ import Gtk from 'gi://Gtk?version=3.0'; import Gio from 'gi://Gio'; import { bash, Notify } from 'lib/utils'; import icons from 'lib/icons'; import { Config } from 'lib/types/filechooser'; import { hexColorPattern } from 'globals/useTheme'; import { isHexColor } from 'globals/variables'; const whiteListedThemeProp = ['theme.bar.buttons.style']; export const loadJsonFile = (filePath: string): Config | null => { const file = Gio.File.new_for_path(filePath as string); const [success, content] = file.load_contents(null); if (!success) { console.error(`Failed to import: ${filePath}`); return null; } const jsonString = new TextDecoder('utf-8').decode(content); return JSON.parse(jsonString); }; export const saveConfigToFile = (config: object, filePath: string): void => { const file = Gio.File.new_for_path(filePath); const outputStream = file.replace(null, false, Gio.FileCreateFlags.NONE, null); const dataOutputStream = new Gio.DataOutputStream({ base_stream: outputStream }); const jsonString = JSON.stringify(config, null, 2); dataOutputStream.put_string(jsonString, null); dataOutputStream.close(null); }; export const filterConfigForThemeOnly = (config: Config): Config => { const filteredConfig: Config = {}; for (const key in config) { const value = config[key]; if (typeof value === 'string' && hexColorPattern.test(value)) { filteredConfig[key] = config[key]; } else if (whiteListedThemeProp.includes(key)) { filteredConfig[key] = config[key]; } } return filteredConfig; }; export const filterConfigForNonTheme = (config: Config): Config => { const filteredConfig: Config = {}; for (const key in config) { if (whiteListedThemeProp.includes(key)) { continue; } const value = config[key]; if (!(typeof value === 'string' && hexColorPattern.test(value))) { filteredConfig[key] = config[key]; } } return filteredConfig; }; export const saveFileDialog = (filePath: string, themeOnly: boolean): void => { const original_file_path = filePath; const file = Gio.File.new_for_path(original_file_path); const [success, content] = file.load_contents(null); if (!success) { console.error(`Could not find 'config.json' at ${TMP}`); return; } const jsonString = new TextDecoder('utf-8').decode(content); const jsonObject = JSON.parse(jsonString); // Function to filter hex color pairs const filterHexColorPairs = (jsonObject: Config): Config => { const filteredObject: Config = {}; for (const key in jsonObject) { const value = jsonObject[key]; if (typeof value === 'string' && isHexColor(value)) { filteredObject[key] = jsonObject[key]; } else if (whiteListedThemeProp.includes(key)) { filteredObject[key] = jsonObject[key]; } } return filteredObject; }; // Function to filter out hex color pairs (keep only non-hex color value) const filterOutHexColorPairs = (jsonObject: Config): Config => { const filteredObject: Config = {}; for (const key in jsonObject) { // do not add key-value pair if its in whiteListedThemeProp if (whiteListedThemeProp.includes(key)) { continue; } const value = jsonObject[key]; if (!(typeof value === 'string' && isHexColor(value))) { filteredObject[key] = jsonObject[key]; } } return filteredObject; }; // Filter the JSON object based on the themeOnly flag const filteredJsonObject = themeOnly ? filterHexColorPairs(jsonObject) : filterOutHexColorPairs(jsonObject); const filteredContent = JSON.stringify(filteredJsonObject, null, 2); const dialog = new Gtk.FileChooserDialog({ title: 'Save File As', action: Gtk.FileChooserAction.SAVE, }); dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL); dialog.add_button(Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT); dialog.set_current_name(themeOnly ? 'hyprpanel_theme.json' : 'hyprpanel_config.json'); const response = dialog.run(); if (response === Gtk.ResponseType.ACCEPT) { const file_path = dialog.get_filename(); console.info(`Original file path: ${file_path}`); const getIncrementedFilePath = (filePath: string): string => { let increment = 1; const baseName = filePath.replace(/(\.\w+)$/, ''); const match = filePath.match(/(\.\w+)$/); const extension = match ? match[0] : ''; let newFilePath = filePath; let file = Gio.File.new_for_path(newFilePath); while (file.query_exists(null)) { newFilePath = `${baseName}_${increment}${extension}`; file = Gio.File.new_for_path(newFilePath); increment++; } return newFilePath; }; const finalFilePath = getIncrementedFilePath(file_path as string); console.info(`File will be saved at: ${finalFilePath}`); try { const save_file = Gio.File.new_for_path(finalFilePath); const outputStream = save_file.replace(null, false, Gio.FileCreateFlags.NONE, null); const dataOutputStream = new Gio.DataOutputStream({ base_stream: outputStream, }); dataOutputStream.put_string(filteredContent, null); dataOutputStream.close(null); Notify({ summary: 'File Saved Successfully', body: `At ${finalFilePath}.`, iconName: icons.ui.info, timeout: 5000, }); } catch (e) { if (e instanceof Error) { console.error('Failed to write to file:', e.message); } } } dialog.destroy(); }; export const importFiles = (themeOnly: boolean = false): void => { const dialog = new Gtk.FileChooserDialog({ title: `Import ${themeOnly ? 'Theme' : 'Config'}`, action: Gtk.FileChooserAction.OPEN, }); dialog.set_current_folder(`${App.configDir}/themes`); dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL); dialog.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT); const response = dialog.run(); if (response === Gtk.ResponseType.CANCEL) { dialog.destroy(); return; } if (response === Gtk.ResponseType.ACCEPT) { const filePath: string | null = dialog.get_filename(); if (filePath === null) { Notify({ summary: 'Failed to import', body: 'No file selected.', iconName: icons.ui.warning, timeout: 5000, }); return; } const importedConfig = loadJsonFile(filePath); if (!importedConfig) { dialog.destroy(); return; } Notify({ summary: `Importing ${themeOnly ? 'Theme' : 'Config'}`, body: `Importing: ${filePath}`, iconName: icons.ui.info, timeout: 7000, }); const tmpConfigFile = Gio.File.new_for_path(`${TMP}/config.json`); const optionsConfigFile = Gio.File.new_for_path(OPTIONS); const [tmpSuccess, tmpContent] = tmpConfigFile.load_contents(null); const [optionsSuccess, optionsContent] = optionsConfigFile.load_contents(null); if (!tmpSuccess || !optionsSuccess) { console.error('Failed to read existing configuration files.'); dialog.destroy(); return; } let tmpConfig = JSON.parse(new TextDecoder('utf-8').decode(tmpContent)); let optionsConfig = JSON.parse(new TextDecoder('utf-8').decode(optionsContent)); if (themeOnly) { const filteredConfig = filterConfigForThemeOnly(importedConfig); tmpConfig = { ...tmpConfig, ...filteredConfig }; optionsConfig = { ...optionsConfig, ...filteredConfig }; } else { const filteredConfig = filterConfigForNonTheme(importedConfig); tmpConfig = { ...tmpConfig, ...filteredConfig }; optionsConfig = { ...optionsConfig, ...filteredConfig }; } saveConfigToFile(tmpConfig, `${TMP}/config.json`); saveConfigToFile(optionsConfig, OPTIONS); } dialog.destroy(); bash('pkill ags && ags'); }; ================================================ FILE: .config/ags/widget/settings/shared/Header.ts ================================================ import { GBox } from 'lib/types/widget'; export const Header = (headerName: string): GBox => { return Widget.Box({ class_name: 'options-header', children: [ Widget.Label({ class_name: 'label-name', label: headerName, }), Widget.Separator({ vpack: 'center', hexpand: true, class_name: 'menu-separator', }), ], }); }; ================================================ FILE: .config/ags/widget/settings/shared/Inputter.ts ================================================ import { RowProps } from 'lib/types/options'; import { Variable } from 'types/variable'; import { BoxWidget } from 'lib/types/widget'; import { numberInputter } from './components/number'; import { objectInputter } from './components/object'; import { stringInputter } from './components/string'; import { booleanInputter } from './components/boolean'; import { imageInputter } from './components/image'; import { importInputter } from './components/import'; import { wallpaperInputter } from './components/wallpaper'; import { colorInputter } from './components/color'; import { enumInputter } from './components/enum'; import { fontInputter } from './components/font'; export const Inputter = ( { opt, type = typeof opt.value as RowProps['type'], enums, disabledBinding, dependencies, exportData, min = 0, max = 1000000, increment = 1, }: RowProps, className: string, isUnsaved: Variable, ): BoxWidget => { return Widget.Box({ vpack: 'center', class_name: /export|import/.test(type || '') ? '' : 'inputter-container', setup: (self) => { switch (type) { case 'number': return numberInputter(self, opt, min, max, increment, isUnsaved); case 'float': case 'object': return objectInputter(self, opt, isUnsaved, className); case 'string': return stringInputter(self, opt, isUnsaved); case 'enum': return enumInputter(self, opt, enums!); case 'boolean': return booleanInputter(self, opt, disabledBinding, dependencies); case 'img': return imageInputter(self, opt); case 'config_import': return importInputter(self, exportData); case 'wallpaper': return wallpaperInputter(self, opt); case 'font': return fontInputter(self, opt); case 'color': return colorInputter(self, opt); default: return (self.child = Widget.Label({ label: `No setter with type ${type}`, })); } }, }); }; ================================================ FILE: .config/ags/widget/settings/shared/Label.ts ================================================ import { GBox, GButton, GLabel } from 'lib/types/widget'; export const Label = (name: string, sub = '', subtitleLink = ''): GBox => { const subTitle = (): GButton | GLabel => { if (subtitleLink.length) { return Widget.Button({ hpack: 'start', vpack: 'center', class_name: 'options-sublabel-link', label: sub, on_primary_click: () => Utils.execAsync(`bash -c 'xdg-open ${subtitleLink}'`), }); } return Widget.Label({ hpack: 'start', vpack: 'center', class_name: 'options-sublabel', label: sub, }); }; return Widget.Box({ vertical: true, hpack: 'start', children: [ Widget.Label({ hpack: 'start', vpack: 'center', class_name: 'options-label', label: name, }), subTitle(), ], }); }; ================================================ FILE: .config/ags/widget/settings/shared/Option.ts ================================================ import { Label } from './Label'; import { Inputter } from './Inputter'; import icons from 'lib/icons'; import { RowProps } from 'lib/types/options'; import { GBox } from 'lib/types/widget'; export const Option = ( props: RowProps, className: string = '', ): GBox => { const isUnsaved = Variable(false); return Widget.Box({ class_name: 'option-item', hexpand: true, children: [ Widget.Box({ hpack: 'start', vpack: 'center', hexpand: true, child: Label(props.title, props.subtitle || '', props.subtitleLink), }), Inputter(props, className, isUnsaved), Widget.Button({ vpack: 'center', class_name: 'reset-options', child: Widget.Icon(icons.ui.refresh), on_clicked: () => props.opt.reset(), sensitive: props.opt.bind().as((v) => v !== props.opt.initial), }), ], }); }; ================================================ FILE: .config/ags/widget/settings/shared/components/boolean.ts ================================================ import { Opt } from 'lib/option'; import { Attribute, BoxWidget } from 'lib/types/widget'; import { Variable } from 'types/variable'; import { dependencies as checkDependencies } from 'lib/utils'; export const booleanInputter = ( self: BoxWidget, opt: Opt, disabledBinding: Variable | undefined, dependencies: string[] | undefined, ): Attribute => { return (self.child = Widget.Switch({ sensitive: disabledBinding !== undefined ? disabledBinding.bind('value').as((disabled) => !disabled) : true, }) .on('notify::active', (self) => { if (disabledBinding !== undefined && disabledBinding.value) { return; } if (self.active && dependencies !== undefined && !dependencies.every((d) => checkDependencies(d))) { self.active = false; return; } opt.value = self.active as T; }) .hook(opt, (self) => { self.active = opt.value as boolean; })); }; ================================================ FILE: .config/ags/widget/settings/shared/components/color.ts ================================================ import Gdk from 'gi://Gdk'; import { Opt } from 'lib/option'; import { Attribute, BoxWidget } from 'lib/types/widget'; export const colorInputter = (self: BoxWidget, opt: Opt): Attribute => { return (self.child = Widget.ColorButton() .hook(opt, (self) => { const rgba = new Gdk.RGBA(); rgba.parse(opt.value as string); self.rgba = rgba; }) .on('color-set', ({ rgba: { red, green, blue } }) => { const hex = (n: number): string => { const c = Math.floor(255 * n).toString(16); return c.length === 1 ? `0${c}` : c; }; opt.value = `#${hex(red)}${hex(green)}${hex(blue)}` as T; })); }; ================================================ FILE: .config/ags/widget/settings/shared/components/enum.ts ================================================ import { Opt } from 'lib/option'; import { BoxWidget } from 'lib/types/widget'; import icons from 'lib/icons'; import { Box } from 'types/@girs/gtk-3.0/gtk-3.0.cjs'; export const enumInputter = ( self: BoxWidget, opt: Opt, values: T[], ): Box => { const lbl = Widget.Label({ label: opt.bind().as((v) => `${v}`) }); const step = (dir: 1 | -1): void => { const i = values.findIndex((i) => i === lbl.label); opt.setValue( dir > 0 ? i + dir > values.length - 1 ? values[0] : values[i + dir] : i + dir < 0 ? values[values.length - 1] : values[i + dir], ); }; const next = Widget.Button({ child: Widget.Icon(icons.ui.arrow.right), on_clicked: () => step(+1), }); const prev = Widget.Button({ child: Widget.Icon(icons.ui.arrow.left), on_clicked: () => step(-1), }); return (self.child = Widget.Box({ class_name: 'enum-setter', children: [lbl, prev, next], })); }; ================================================ FILE: .config/ags/widget/settings/shared/components/font.ts ================================================ import { Opt } from 'lib/option'; import { Attribute, BoxWidget, Child } from 'lib/types/widget'; import FontButton from 'types/widgets/fontbutton'; export const fontInputter = (self: BoxWidget, opt: Opt): FontButton => { return (self.child = Widget.FontButton({ show_size: false, use_size: false, setup: (self) => self .hook(opt, () => (self.font = opt.value as string)) .on('font-set', ({ font }) => (opt.value = font!.split(' ').slice(0, -1).join(' ') as T)), })); }; ================================================ FILE: .config/ags/widget/settings/shared/components/image.ts ================================================ import { Opt } from 'lib/option'; import { Attribute, BoxWidget, Child } from 'lib/types/widget'; import FileChooserButton from 'types/widgets/filechooserbutton'; export const imageInputter = (self: BoxWidget, opt: Opt): Attribute => { self.child = createFileChooserButton(opt); return self.child; }; const createFileChooserButton = (opt: Opt): FileChooserButton => { return Widget.FileChooserButton({ class_name: 'image-chooser', on_file_set: handleFileSet(opt), }); }; const handleFileSet = (opt: Opt) => ({ uri }: { uri: string | null }): void => { if (!uri) { console.warn('No URI selected'); return; } try { const decodedPath = decodeURIComponent(uri.replace('file://', '')); opt.value = decodedPath as T; } catch (error) { console.error('Failed to decode URI:', error); } }; ================================================ FILE: .config/ags/widget/settings/shared/components/import.ts ================================================ import { ThemeExportData } from 'lib/types/options'; import { Attribute, BoxWidget } from 'lib/types/widget'; import { importFiles, saveFileDialog } from '../FileChooser'; export const importInputter = (self: BoxWidget, exportData?: ThemeExportData): Attribute => { return (self.child = Widget.Box({ children: [ Widget.Button({ class_name: 'options-import', label: 'import', on_clicked: () => { importFiles(exportData?.themeOnly as boolean); }, }), Widget.Button({ class_name: 'options-export', label: 'export', on_clicked: () => { saveFileDialog(exportData?.filePath as string, exportData?.themeOnly as boolean); }, }), ], })); }; ================================================ FILE: .config/ags/widget/settings/shared/components/number.ts ================================================ import icons from 'lib/icons'; import { Opt } from 'lib/option'; import { Attribute, BoxWidget } from 'lib/types/widget'; import { Variable } from 'types/variable'; export const numberInputter = ( self: BoxWidget, opt: Opt, min: number, max: number, increment = 1, isUnsaved: Variable, ): Attribute => { return (self.children = [ Widget.Box({ class_name: 'unsaved-icon-container', child: isUnsaved.bind('value').as((unsvd) => { if (unsvd) { return Widget.Icon({ class_name: 'unsaved-icon', icon: icons.ui.warning, tooltipText: "Press 'Enter' to apply your changes.", }); } return Widget.Box(); }), }), Widget.SpinButton({ setup(self) { self.set_range(min, max); self.set_increments(1 * increment, 5 * increment); self.on('value-changed', () => { opt.value = self.value as T; }); self.hook(opt, () => { self.value = opt.value as number; isUnsaved.value = Number(self.text) !== (opt.value as number); }); self.connect('key-release-event', () => { isUnsaved.value = Number(self.text) !== (opt.value as number); }); }, }), ]); }; ================================================ FILE: .config/ags/widget/settings/shared/components/object.ts ================================================ import icons from 'lib/icons'; import { Opt } from 'lib/option'; import { Attribute, BoxWidget } from 'lib/types/widget'; import { Variable } from 'types/variable'; export const objectInputter = ( self: BoxWidget, opt: Opt, isUnsaved: Variable, className: string, ): Attribute => { return (self.children = [ Widget.Box({ class_name: 'unsaved-icon-container', child: isUnsaved.bind('value').as((unsvd) => { if (unsvd) { return Widget.Icon({ class_name: 'unsaved-icon', icon: icons.ui.warning, tooltipText: "Press 'Enter' to apply your changes.", }); } return Widget.Box(); }), }), Widget.Entry({ class_name: className, on_change: (self) => (isUnsaved.value = self.text !== JSON.stringify(opt.value)), on_accept: (self) => (opt.value = JSON.parse(self.text || '')), setup: (self) => self.hook(opt, () => { self.text = JSON.stringify(opt.value); isUnsaved.value = self.text !== JSON.stringify(opt.value); }), }), ]); }; ================================================ FILE: .config/ags/widget/settings/shared/components/string.ts ================================================ import icons from 'lib/icons'; import { Opt } from 'lib/option'; import { Attribute, BoxWidget } from 'lib/types/widget'; import { Variable } from 'types/variable'; export const stringInputter = (self: BoxWidget, opt: Opt, isUnsaved: Variable): Attribute => { return (self.children = [ Widget.Box({ class_name: 'unsaved-icon-container', child: isUnsaved.bind('value').as((unsvd) => { if (unsvd) { return Widget.Icon({ class_name: 'unsaved-icon', icon: icons.ui.warning, tooltipText: "Press 'Enter' to apply your changes.", }); } return Widget.Box(); }), }), Widget.Entry({ class_name: isUnsaved.bind('value').as((unsaved) => (unsaved ? 'unsaved' : '')), on_change: (self) => (isUnsaved.value = self.text !== opt.value), on_accept: (self) => { opt.value = self.text as T; }, setup: (self) => self.hook(opt, () => { isUnsaved.value = self.text !== opt.value; self.text = opt.value as string; }), }), ]); }; ================================================ FILE: .config/ags/widget/settings/shared/components/wallpaper.ts ================================================ import { Opt } from 'lib/option'; import { Attribute, BoxWidget } from 'lib/types/widget'; import Wallpaper from 'services/Wallpaper'; export const wallpaperInputter = ( self: BoxWidget, opt: Opt, ): Attribute | void => { if (typeof opt.value === 'string') { return (self.child = Widget.FileChooserButton({ on_file_set: ({ uri }) => { const newValue: string = uri!.replace('file://', ''); opt.value = newValue as T; if (options.wallpaper.enable.value) { Wallpaper.set(newValue); } }, })); } }; ================================================ FILE: .config/ags/widget/settings/side_effects/index.ts ================================================ import options from 'options'; const { show_numbered, show_icons, showWsIcons } = options.bar.workspaces; const { monochrome: monoBar } = options.theme.bar.buttons; const { monochrome: monoMenu } = options.theme.bar.menus; const { matugen } = options.theme; show_numbered.connect('changed', ({ value }) => { if (value === true) { show_icons.value = false; showWsIcons.value = false; } }); show_icons.connect('changed', ({ value }) => { if (value === true) { show_numbered.value = false; showWsIcons.value = false; } }); showWsIcons.connect('changed', ({ value }) => { if (value === true) { show_numbered.value = false; show_icons.value = false; } }); matugen.connect('changed', ({ value }) => { if (value === true) { monoBar.value = false; monoMenu.value = false; } }); ================================================ FILE: .config/fuzzel/fuzzel.ini ================================================ font=Gabarito terminal=foot -e prompt=" " layer=overlay width=50 [colors] background=3F3345ff text=D9E0EEff selection=B092D6ff selection-text=D9E0EEff border=B092D6dd input=D9E0EEff placeholder=D9E0EEff selection-match=8CAAEEff prompt=D9E0EEff prompt-text=D9E0EEff [border] radius=17 width=1 [dmenu] exit-immediately-if-empty=yes ================================================ FILE: .config/hypr/hypridle.conf ================================================ $lock_cmd = pidof hyprlock || hyprlock $suspend_cmd = pidof steam || systemctl suspend || loginctl suspend # fuck nvidia general { lock_cmd = $lock_cmd before_sleep_cmd = loginctl lock-session after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. } listener { timeout = 180 # 3min. on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. on-resume = brightnessctl -r # monitor backlight restore. } listener { timeout = 300 # 5mins on-timeout = loginctl lock-session on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired. } listener { timeout = 420 # 7mins on-timeout = hyprctl dispatch dpms off on-resume = hyprctl dispatch dpms on } listener { timeout = 540 # 9mins on-timeout = $suspend_cmd } ================================================ FILE: .config/hypr/hyprland/colors.conf ================================================ # exec = export SLURP_ARGS='-d -c {{ $onSecondaryContainer }}BB -b {{ $secondaryContainer }}44 -s 00000000' general { col.active_border = rgba({{ $onSurface }}39) col.inactive_border = rgba({{ $outline }}30) } misc { background_color = rgba({{ $surface }}FF) } plugin { hyprbars { # Honestly idk if it works like css, but well, why not bar_text_font = Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif bar_height = 30 bar_padding = 10 bar_button_padding = 5 bar_precedence_over_border = true bar_part_of_window = true bar_color = rgba({{ $background }}FF) col.text = rgba({{ $onBackground }}FF) # example buttons (R -> L) # hyprbars-button = color, size, on-click hyprbars-button = rgb({{ $onBackground }}), 13, 󰖭, hyprctl dispatch killactive hyprbars-button = rgb({{ $onBackground }}), 13, 󰖯, hyprctl dispatch fullscreen 1 hyprbars-button = rgb({{ $onBackground }}), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special } } windowrulev2 = bordercolor rgba({{ $primary }}AA) rgba({{ $primary }}77),pinned:1 ================================================ FILE: .config/hypr/hyprland/env.conf ================================================ # ######### Input method ########## # See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland # env = QT_IM_MODULE, fcitx # env = XMODIFIERS, @im=fcitx env = HYPRCURSOR_SIZE,32 env = HYPRCURSOR_THEME,Bibata-Modern-Classic # env = GTK_IM_MODULE, wayland # Crashes electron apps in xwayland # env = GTK_IM_MODULE, fcitx # My Gtk apps no longer require this to work with fcitx5 hmm # env = SDL_IM_MODULE, fcitx # env = GLFW_IM_MODULE, ibus # env = INPUT_METHOD, fcitx # ############ Themes ############# env = QT_QPA_PLATFORM, wayland # env = QT_QPA_PLATFORMTHEME, gtk2 # env = QT_STYLE_OVERRIDE,adwaita # env = WLR_NO_HARDWARE_CURSORS, 1 # env variables for nvidia env = LIBVA_DRIVER_NAME,nvidia env = XDG_SESSION_TYPE,wayland env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia cursor { no_hardware_cursors = false sync_gsettings_theme = true } # VA-API hardware video acceleration env = NVD_BACKEND,direct # ######## Screen tearing ######### # env = WLR_DRM_NO_ATOMIC, 1 # ############ Others ############# ================================================ FILE: .config/hypr/hyprland/execs.conf ================================================ # Bar, wallpaper # exec-once = swww-daemon --format xrgb # exec = swaync # exec = swayosd-server exec-once = wal -R # exec-once = /usr/lib/geoclue-2.0/demos/agent & gammastep & gammastep-indicator # exec-once = /usr/lib/geoclue-2.0/demos/agent & # exec-once = ags & exec-once = hyprpanel # exec-once = cd ~/.config/fabric/bar/ && python main.py # Input method # exec-once = fcitx5 # Core components (authentication, lock screen, notification daemon) exec-once = gnome-keyring-daemon --start --components=secrets exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1 exec-once = hypridle exec-once = dbus-update-activation-environment --all exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk exec-once = hyprpm reload exec-once = cpufreqctl turbo set off # Clipboard: history # exec-once = wl-paste --watch cliphist store & exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store # Cursor exec-once = hyprctl setcursor Bibata-Modern-Classic 32 # exec-once = gsettings set org.gnome.desktop.interface cursor-theme Bibata-Modern-Classic # exec-once = gsettings set org.gnome.desktop.interface cursor-size 24 # Rog Control Center exec-once = sleep 3 && rog-control-center # Audio # exec-once = sleep 3 && jamesdsp -t # Bluetooth # exec-once = sleep 3 && blueman-applet & ================================================ FILE: .config/hypr/hyprland/general.conf ================================================ # MONITOR CONFIG # monitor=,preferred,auto,1 monitor = eDP-1, 1920x1080@144, 0x0, 1 monitor=,preferred, auto, 1, mirror, eDP-1 # Custom reserved area # HDMI port: mirror display. To see device name, use `hyprctl monitors` # monitor=HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1 device { name = elan1205:00-04f3:30e9-touchpad sensitivity = 0 } input { # Keyboard: Add a layout and uncomment kb_options for Win+Space switching shortcut kb_layout = us, ara kb_options = grp:win_space_toggle numlock_by_default = true repeat_delay = 250 repeat_rate = 35 touchpad { natural_scroll = false disable_while_typing = false clickfinger_behavior = true scroll_factor = 2.1 # sensitivity = 0.1 } special_fallthrough = true follow_mouse = 1 force_no_accel = false sensitivity = -0.6 } binds { # focus_window_on_workspace_c# For Auto-run stuff see execs.confhange = true scroll_event_delay = 0 } # gestures { gesture = 3, horizontal, workspace gesture = 3, down, mod: ALT, close gesture = 3, up, mod: SUPER, scale: 1.5, fullscreen # # workspace_swipe = true # workspace_swipe_distance = 700 # workspace_swipe_fingers = 3 # workspace_swipe_cancel_ratio = 0.2 # workspace_swipe_min_speed_to_force = 5 # workspace_swipe_direction_lock = false # workspace_swipe_direction_lock_threshold = 10 # workspace_swipe_create_new = true # } general { # Gaps and border gaps_in = 10 gaps_out = 16 gaps_workspaces = 50 border_size = 3 # Fallback colors #4A4A4C # b675e699, e6b1e3FF col.active_border = rgba(B9A0DDff) col.inactive_border = rgba(B588D9FF) resize_on_border = true no_focus_fallback = true layout = dwindle #focus_to_other_workspaces = true # ahhhh i still haven't properly implemented this allow_tearing = true # This just allows the `immediate` window rule to work extend_border_grab_area = 5 hover_icon_on_border = false # no_border_on_floating = false } dwindle { preserve_split = true # no_gaps_when_only = 1 smart_split = false smart_resizing = true } decoration { rounding = 12 blur { enabled = true xray = false special = true new_optimizations = true size = 8 passes = 6 noise = 0.01 contrast = 0.9 brightness = 0.89 vibrancy = 0.19 vibrancy_darkness = 0.0 popups = true popups_ignorealpha = 1 ignore_opacity = true } # Shader # screen_shader = ~/.config/hypr/shaders/nothing.frag # screen_shader = ~/.config/hypr/shaders/vibrance.frag # Dim dim_inactive = true dim_strength = 0.159 dim_special = 0 active_opacity = 0.9 # shadow { enabled = true render_power = 8 range = 40 color = rgba(00000066) color_inactive = rgba(00000055) } } animations { enabled = true # Animation curves # first_launch_animation = true bezier = linear, 0, 0, 1, 1 bezier = md3_standard, 0.2, 0, 0, 1 bezier = md3_decel, 0.05, 0.7, 0.1, 1 bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.1 bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.38, 0.04, 1, 0.07 bezier = easeInOutCirc, 0.85, 0, 0.15, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = windowsIn, 1, 3, md3_decel, popin 60% animation = windowsOut, 1, 3, md3_accel, popin 60% animation = border, 1, 10, default animation = fade, 1, 3, md3_decel # animation = layers, 1, 2, md3_decel, slide animation = layersIn, 1, 3, menu_decel, slide animation = layersOut, 1, 1.6, menu_accel animation = fadeLayersIn, 1, 2, menu_decel animation = fadeLayersOut, 1, 4.5, menu_accel animation = workspaces, 1, 7, menu_decel, slide # animation = workspaces, 1, 2.5, softAcDecel, slide # animation = workspaces, 1, 7, menu_decel, slidefade 15% # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% animation = specialWorkspace, 1, 3, md3_decel, slidevert } misc { vfr = 1 vrr = 1 # layers_hog_mouse_focus = true focus_on_activate = false animate_manual_resizes = false animate_mouse_windowdragging = false enable_swallow = false swallow_regex = (foot|kitty|allacritty|Alacritty) disable_hyprland_logo = true force_default_wallpaper = 0 # new_window_takes_over_fullscreen = 2 allow_session_lock_restore = true initial_workspace_tracking = false } # Overview plugin { hyprexpo { columns = 3 gap_size = 5 bg_col = rgb(000000) workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1 enable_gesture = false # laptop touchpad, 4 fingers # gesture_distance = 300 # how far is the "max" # gesture_positive = false } } ================================================ FILE: .config/hypr/hyprland/keybinds.conf ================================================ # Lines ending with `# [hidden]` won't be shown on cheatsheet # Lines starting with #! are section headings bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] bindl = Super ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden] bindl = ,XF86AudioMute, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% # [hidden] bindl = Super+Shift,M, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% # [hidden] bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ # [hidden] bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # [hidden] bindle=, XF86Launch3, exec, rog-control-center # Uncomment these if you can't get AGS to work bindle =, XF86MonBrightnessUp, exec, brightnessctl s +5% bindle =, XF86MonBrightnessDown, exec, brightnessctl s 5%- #Refresh rate switcher bind = super, O, exec, ~/Documents/refresh_rate_serivce/refresh_rate_adjuster.sh #! ##! Essentials for beginners # bindr = Super, super, exec, launcher_t6 # Open app launcher bind = Super, r, exec, kitty -c ~/.config/kitty/kitty-hyprland.conf # Launch foot (terminal) bind = Super, g, exec, ghostty bind = Ctrl+Super, T, exec, ~/.config/ags/scripts/color_generation/switchwall.sh # Change wallpaper ##! Actions # Screenshot, Record, OCR, Color picker, Clipboard history bind = Super, V, exec, pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # Clipboard history >> clipboard bind = Super, Period, exec, pkill fuzzel || ~/.local/bin/fuzzel-emoji # Pick emoji >> clipboard bind = Ctrl+Shift+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell # [hidden] bind = Super+Shift, S, exec, ~/.config/ags/scripts/grimblast.sh --freeze --cursor --notify copysave screen # Screen snip # bind = Shift+Alt, S, exec, grim -g "$(slurp)" - | swappy -f - # Screen snip >> edit bind = Shift+Alt, S, exec, ~/.config/ags/scripts/grimblast.sh --notify copysave area # Screen snip >> edit # OCR bind = Super+Shift, T,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng+jpn+ara "tmp.png" - | wl-copy && rm "tmp.png" # Screen snip to text >> clipboard bind = Ctrl+Super+Shift,S,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # [hidden] # Color picker bind = Super+Shift, C, exec, hyprpicker -a # Pick color (Hex) >> clipboard # Fullscreen screenshot bindl=,Print,exec,grim - | wl-copy # Screenshot >> clipboard bindl= Ctrl,Print, exec, mkdir -p ~/Pictures/Screenshots && ~/.config/ags/scripts/grimblast.sh copysave screen ~/Pictures/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file # Recording stuff bind = Super+Alt, R, exec, ~/.config/ags/scripts/record-script.sh # Record region (no sound) bind = Ctrl+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen # [hidden] Record screen (no sound) bind = Super+Shift+Alt, R, exec, ~/.config/ags/scripts/record-script.sh --fullscreen-sound # Record screen (with sound) ##! Session bind = Ctrl+Super, L, exec, ags run-js 'lock.lock()' # [hidden] bind = Super, L, exec, loginctl lock-session # Lock bind = Super+Shift, L, exec, loginctl lock-session # [hidden] bindl = Super+Shift, L, exec, sleep 0.1 && systemctl suspend || loginctl suspend # Suspend system bindl = Ctrl+Super+Shift, L, exec, sleep 0.1 && systemctl hibernate # Suspend system bind = Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off #! ##! Window management # Focusing #/# bind = Super, ←/↑/→/↓,, # Move focus in direction bind = Super, Left, movefocus, l # [hidden] bind = Super, Right, movefocus, r # [hidden] bind = Super, Up, movefocus, u # [hidden] bind = Super, Down, movefocus, d # [hidden] bind = Super, BracketLeft, movefocus, l # [hidden] bind = Super, BracketRight, movefocus, r # [hidden] bindm = Super, mouse:272, movewindow bindm = Super, mouse:273, resizewindow bind = Super, Q, killactive, bind = Super+Shift+Alt, Q, exec, hyprctl kill # Pick and kill a window ##! Window arrangement #/# bind = Super+Shift, ←/↑/→/↓,, # Window: move in direction bind = Super+Shift, Left, movewindow, l # [hidden] bind = Super+Shift, Right, movewindow, r # [hidden] bind = Super+Shift, Up, movewindow, u # [hidden] bind = Super+Shift, Down, movewindow, d # [hidden] # Window split ratio #/# binde = Super, +/-,, # Window: split ratio +/- 0.1 binde = Super, Minus, splitratio, -0.1 # [hidden] binde = Super, Equal, splitratio, +0.1 # [hidden] binde = Super, Semicolon, splitratio, -0.1 # [hidden] binde = Super, Apostrophe, splitratio, +0.1 # [hidden] # Positioning mode bind = Super+Alt, P, togglefloating, bind = Super+Alt, F, fullscreenstate, 0 3 # Toggle fake fullscreen bind = Super, F, fullscreen, 0 bind = Super, D, fullscreen, 1 #! ##! Workspace navigation # Switching #/# bind = Super, Hash,, # Focus workspace # (1, 2, 3, 4, ...) # Switch workspaces with mainMod + [0-9] $mainMod = SUPER bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # bind = Super, 1, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 1 # [hidden] # bind = Super, 2, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 2 # [hidden] # bind = Super, 3, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 3 # [hidden] # bind = Super, 4, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 4 # [hidden] # bind = Super, 5, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 5 # [hidden] # bind = Super, 6, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 6 # [hidden] # bind = Super, 7, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 7 # [hidden] # bind = Super, 8, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 8 # [hidden] # bind = Super, 9, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 9 # [hidden] # bind = Super, 0, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh workspace 10 # [hidden] #/# bind = Ctrl+Super, ←/→,, # Workspace: focus left/right bind = Ctrl+Super, Right, workspace, +1 # [hidden] bind = Ctrl+Super, Left, workspace, -1 # [hidden] #/# bind = Super, Scroll ↑/↓,, # Workspace: focus left/right bind = Super, mouse_up, workspace, +1 # [hidden] bind = Super, mouse_down, workspace, -1 # [hidden] bind = Ctrl+Super, mouse_up, workspace, +1 # [hidden] bind = Ctrl+Super, mouse_down, workspace, -1 # [hidden] #/# bind = Super, Page_↑/↓,, # Workspace: focus left/right bind = Super, Page_Down, workspace, +1 # [hidden] bind = Super, Page_Up, workspace, -1 # [hidden] bind = Ctrl+Super, Page_Down, workspace, +1 # [hidden] bind = Ctrl+Super, Page_Up, workspace, -1 # [hidden] ## Special bind = Super, P, togglespecialworkspace, # bind = Super, mouse:275, togglespecialworkspace, ##! Workspace management # Move window to workspace Super + Alt + [0-9] #/# bind = Super+Alt, Hash,, # Window: move to workspace # (1, 2, 3, 4, ...) bind = Super+Alt, 1, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 1 # [hidden] bind = Super+Alt, 2, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 2 # [hidden] bind = Super+Alt, 3, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 3 # [hidden] bind = Super+Alt, 4, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 4 # [hidden] bind = Super+Alt, 5, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 5 # [hidden] bind = Super+Alt, 6, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 6 # [hidden] bind = Super+Alt, 7, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 7 # [hidden] bind = Super+Alt, 8, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 8 # [hidden] bind = Super+Alt, 9, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 9 # [hidden] bind = Super+Alt, 0, exec, ~/.config/ags/scripts/hyprland/workspace_action.sh movetoworkspacesilent 10 # [hidden] bind = Ctrl+Super+Shift, Up, movetoworkspacesilent, special # [hidden] bind = Ctrl+Super+Shift, Right, movetoworkspace, +1 # [hidden] bind = Ctrl+Super+Shift, Left, movetoworkspace, -1 # [hidden] bind = Ctrl+Super, BracketLeft, workspace, -1 # [hidden] bind = Ctrl+Super, BracketRight, workspace, +1 # [hidden] bind = Ctrl+Super, Up, workspace, -5 # [hidden] bind = Ctrl+Super, Down, workspace, +5 # [hidden] #/# bind = Super+Shift, Scroll ↑/↓,, # Window: move to workspace left/right bind = Super+Shift, mouse_down, movetoworkspace, -1 # [hidden] bind = Super+Shift, mouse_up, movetoworkspace, +1 # [hidden] bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden] bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden] #/# bind = Super+Shift, Page_↑/↓,, # Window: move to workspace left/right bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden] bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden] bind = Super+Shift, Page_Down, movetoworkspace, +1 # [hidden] bind = Super+Shift, Page_Up, movetoworkspace, -1 # [hidden] bind = Super+Alt, S, movetoworkspacesilent, special bind = Super+Shift, P, pin bind = Ctrl+Super, S, togglespecialworkspace, # [hidden] bind = Alt, Tab, cyclenext # [hidden] sus keybind bind = Alt, Tab, bringactivetotop, # [hidden] bring it to the top #! ##! Widgets bindr = Ctrl+Super, R, exec, hyprpanel r; hyprpanel # Restart widgets bindr = Ctrl+Super+Alt, R, exec, hyprctl reload; killall ags ydotool; ags & # [hidden] # bind = Ctrl+Alt, Slash, exec, ags run-js 'cycleMode();' # Cycle bar mode (normal, focus) bind = Ctrl+Alt, Slash, exec, hyprpanel t bar-0 # Cycle bar mode (normal, focus) # bindir = Super, Super_L, exec, pkill rofi || $HOME/.config/rofi/scripts/launcher_t6 # Toggle overview/launcher bind = Super, Tab, exec, pkill rofi || $HOME/.config/rofi/scripts/launcher_t4 # [hidden] bind = Super, Slash, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "cheatsheet""$i"; done # Show cheatsheet # bind = Super, B, exec, ags -t # Toggle left sidebar bind = Super, A, exec, hyprpanel t dashboardmenu # [hidden] #bind = Super, O, exec, ags -t 'sideleft' # [hidden] bind = Super, S, exec, hyprpanel t energymenu # Toggle right sidebar bind = Super, M, exec, hyprpanel t mediamenu bind = Super, N, exec, hyprpanel t notificationsmenu # bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' # View color scheme and options # bind = Super, K, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "osk""$i"; done # Toggle on-screen keyboard # bind = Ctrl+Alt, Delete, exec, pkill rofi || $HOME/.config/rofi/scripts/powermenu_t4 # Toggle power menu bind = ctrl+Alt, Delete, exec, hyprpanel t powermenu bind = Ctrl+Super, G, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "crosshair""$i"; done # Toggle crosshair # bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);' # [hidden] # bindle=, XF86MonBrightnessDown, exec, ags run-js 'brightness.screen_value -= 0.05; indicator.popup(1);' # [hidden] # bindl = , XF86AudioMute, exec, ags run-js 'indicator.popup(1);' # [hidden] # bindl = Super+Shift,M, exec, ags run-js 'indicator.popup(1);' # [hidden] # Testing # bind = SuperAlt, f12, exec, notify-send "Hyprland version: $(hyprctl version | head -2 | tail -1 | cut -f2 -d ' ')" "owo" -a 'Hyprland keybind' # bind = Super+Alt, f12, exec, notify-send "Millis since epoch" "$(date +%s%N | cut -b1-13)" -a 'Hyprland keybind' bind = Super+Alt, f12, exec, notify-send 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action" -t 5000 # [hidden] bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden] ##! Media bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # Next track bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden] bind = Super+Shift+Alt, mouse:275, exec, playerctl previous # [hidden] bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden] bindl= Super+Shift, B, exec, playerctl previous # Previous track # bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media bindl= ,XF86AudioPlay, exec, playerctl play-pause # [hidden] bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden] #! ##! Apps bind = Super, T, exec, foot # Launch foot (terminal) bind = Super, Z, exec, zeditor # Launch Zed (editor) bind = Super, C, exec, code --password-store=gnome --enable-features=UseOzonePlatform --ozone-platform=wayland # Launch VSCode (editor) bind = Super, E, exec, nemo # Launch Nautilus (file manager) # bind = Super+Alt, E, exec, thunar # [hidden] bind = Super, W, exec, zen-browser # [hidden] Let's not give people (more) reason to shit on my rice bind = Ctrl+Super, W, exec, firefox # Launch Firefox (browser) bind = Super, X, exec, gnome-text-editor --new-window # Launch GNOME Text Editor bind = Super+Shift, W, exec, onlyoffice-desktopeditors # Launch WPS Office bind = Super, I, exec, XDG_CURRENT_DESKTOP="gnome" gnome-control-center # Launch GNOME Settings # bind = Super, I, exec, XDG_CURRENT_DESKTOP="KDE" systemsettings# Launch GNOME Settings bind = Ctrl+Super, V, exec, pavucontrol # Launch pavucontrol (volume mixer) bind = Ctrl+Super+Shift, V, exec, easyeffects # Launch EasyEffects (equalizer & other audio effects) bind = Ctrl+Shift, Escape, exec, gnome-system-monitor # Launch GNOME System monitor bind = Ctrl+Super, Slash, exec, pkill anyrun || anyrun # Toggle fallback launcher: anyrun bind = Super+Alt, Slash, exec, pkill anyrun || fuzzel # Toggle fallback launcher: fuzzel # Cursed stuff ## Make window not amogus large bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden] ================================================ FILE: .config/hypr/hyprland/rules.conf ================================================ # ######## Window rules ######## # windowrule = noblur,.* # ######## Window rules ######## # Applies transparency to EVERY WINDOW windowrule = match:class .*, opacity 0.92 override 0.85 override # General App Rules windowrule = match:class dev\.warp\.Warp, tile on windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on windowrule = match:title ^(Free Download Manager)(.*)$, float on windowrule = match:title ^(Windscribe)(.*)$, float on windowrule = match:title ^(wdisplays)(.*)$, float on windowrule = match:title ^(Telegram)(.*)$, float on windowrule = match:title ^(LocalSend)(.*)$, float on # Dialogs (Open File, Save As, etc.) windowrule = match:title ^(Open File)(.*)$, center on windowrule = match:title ^(Select a File)(.*)$, center on windowrule = match:title ^(Choose wallpaper)(.*)$, center on windowrule = match:title ^(Open Folder)(.*)$, center on windowrule = match:title ^(Save As)(.*)$, center on windowrule = match:title ^(Library)(.*)$, center on windowrule = match:title ^(File Upload)(.*)$, center on # Picture-in-Picture windowrule = match:title ^(Picture(-| )in(-| )[Pp]icture)$ windowrule = match:title ^(Picture(-| )in(-| )[Pp]icture)$, move 73% 72% windowrule = match:title ^(Picture(-| )in(-| )[Pp]icture)$, size 25% 25% windowrule = match:title ^(Picture(-| )in(-| )[Pp]icture)$, float on windowrule = match:title ^(Picture(-| )in(-| )[Pp]icture)$, pin on # Dialogs windowrule=match:title ^(Open File)(.*)$, float on windowrule=match:title ^(Select a File)(.*)$, float on windowrule=match:title ^(Choose wallpaper)(.*)$, float on windowrule=match:title ^(Open Folder)(.*)$, float on windowrule=match:title ^(Save As)(.*)$, float on windowrule=match:title ^(Library)(.*)$, float on windowrule=match:title ^(File Upload)(.*)$, float on # Tearing ##### windowrule=immediate,.*\.exe windowrule=match:class (steam_app), immediate on # No shadow for tiled windows # windowrulev2 = noshadow,floating:0 # ######## Layer rules ######## # Global layerrule { name = global_xray xray = 1 match:namespace = .* } # No Animations layerrule { name = disable_animations no_anim = on match:namespace = ^(walker|selection|overview|anyrun|indicator.*|osk|hyprpicker|noanim)$ } # Standard Blur & Alpha (Combined for cleanliness) layerrule { name = standard_blur blur = on ignore_alpha = 0.6 match:namespace = ^(shell:.*|bar|corner.*|dock|indicator.*|overview|cheatsheet|sideleft.*|sideright.*|osk)$ } # Custom Alpha Layers layerrule { name = launcher_blur blur = on ignore_alpha = 0.5 match:namespace = launcher } layerrule { name = notifications_blur blur = on ignore_alpha = 0.69 match:namespace = notifications } # GTK Layer Shell layerrule { name = gtk_shell_blur blur = on ignore_alpha = 0 match:namespace = gtk-layer-shell } # Session layerrule { name = session_blur blur = on match:namespace = session } # AGS Animations layerrule { name = ags_animations animation = slide top match:namespace = ^(sideleft.*|sideright.*)$ } ================================================ FILE: .config/hypr/hyprland.conf ================================================ # This file sources other files in `hyprland` and `custom` folders # You wanna add your stuff in file in `custom` debug:disable_logs = false # Defaults source=~/.config/hypr/hyprland/env.conf source=~/.config/hypr/hyprland/execs.conf source=~/.config/hypr/hyprland/general.conf source=~/.config/hypr/hyprland/rules.conf source=~/.config/hypr/hyprland/keybinds.conf ================================================ FILE: .config/hypr/hyprlock/status.sh ================================================ #!/usr/bin/env bash ############ Variables ############ enable_battery=false battery_charging=false ####### Check availability ######## for battery in /sys/class/power_supply/*BAT*; do if [[ -f "$battery/uevent" ]]; then enable_battery=true if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then battery_charging=true fi break fi done ############# Output ############# if [[ $enable_battery == true ]]; then if [[ $battery_charging == true ]]; then echo -n "(+) " fi echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"% if [[ $battery_charging == false ]]; then echo -n " remaining" fi fi echo '' ================================================ FILE: .config/hypr/hyprlock.conf ================================================ # $text_color = rgba(E1E1F4FF) # $entry_background_color = rgba(10132011) # $entry_border_color = rgba(8E8FA455) # $entry_color = rgba(C4C5DBFF) $text_color = rgba(FFFFFFFF) $entry_background_color = rgba(33333311) $entry_border_color = rgba(3B3B3B55) $entry_color = rgba(FFFFFFFF) # $font_family = SF Pro Rounded $font_family = Electroharmonix $font_family_clock = Electroharmonix #$font_family_clock = SF Pro Rounded $font_material_symbols = Material Symbols Rounded background { # color = rgba(0B0D1AFF) color = rgba(000000FF) # path = {{ SWWW_WALL }} path = /mnt/Data/Pictures/wallhaven-jxep8y.jpg blur_size = 1 blur_passes = 2 } input-field { monitor = size = 250, 50 outline_thickness = 2 dots_size = 0.1 dots_spacing = 0.3 outer_color = $entry_border_color inner_color = $entry_background_color font_color = $entry_color # fade_on_empty = true position = 0, -100 halign = center valign = center } label { # Clock monitor = text = $TIME shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 150 font_family = $font_family_clock position = 0, 200 halign = center valign = center } label { # Greeting monitor = text = Hi $USER !!! shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 30 font_family = $font_family position = 0, 0 halign = center valign = center } label { # lock icon monitor = text =  shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 21 font_family = $font_material_symbols position = 0, -15 halign = center valign = top } label { # "locked" text monitor = text = locked shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 14 font_family = $font_family position = 0, -45 halign = center valign = top } label { # Status monitor = text = cmd[update:5000] ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock/status.sh shadow_passes = 1 shadow_boost = 0.5 color = $text_color font_size = 14 font_family = $font_family position = 30, -30 halign = left valign = top } ================================================ FILE: .config/hypr/monitors.conf ================================================ # Generated by nwg-displays on 2025-01-17 at 18:25:44. Do not edit manually. monitor=eDP-1,1920x1080@144.0,0x0,1.0 ================================================ FILE: .config/hypr/shaders/chromatic_abberation.frag ================================================ // vim: set ft=glsl: precision highp float; varying highp vec2 v_texcoord; uniform highp sampler2D tex; #define STRENGTH 0.0027 void main() { vec2 center = vec2(0.5, 0.5); vec2 offset = (v_texcoord - center) * STRENGTH; float rSquared = dot(offset, offset); float distortion = 1.0 + 1.0 * rSquared; vec2 distortedOffset = offset * distortion; vec2 redOffset = vec2(distortedOffset.x, distortedOffset.y); vec2 blueOffset = vec2(distortedOffset.x, distortedOffset.y); vec4 redColor = texture2D(tex, v_texcoord + redOffset); vec4 blueColor = texture2D(tex, v_texcoord + blueOffset); gl_FragColor = vec4(redColor.r, texture2D(tex, v_texcoord).g, blueColor.b, 1.0); } ================================================ FILE: .config/hypr/shaders/crt.frag ================================================ #version 100 precision highp float; varying highp vec2 v_texcoord; varying highp vec3 v_pos; uniform highp sampler2D tex; uniform lowp float time; #define BORDER_COLOR vec4(vec3(0.0, 0.0, 0.0), 1.0) // black border #define BORDER_RADIUS 1.0 // larger vignette radius #define BORDER_SIZE 0.01 // small border size #define CHROMATIC_ABERRATION_STRENGTH 0.00 #define DENOISE_INTENSITY 0.0001 // #define DISTORTION_AMOUNT 0.00 // moderate distortion amount #define HDR_BLOOM 0.75 // bloom intensity #define HDR_BRIGHTNESS 0.011 // brightness #define HDR_CONTRAST 0.011 // contrast #define HDR_SATURATION 1.0// saturation #define LENS_DISTORTION_AMOUNT 0.0 #define NOISE_THRESHOLD 0.0001 #define PHOSPHOR_BLUR_AMOUNT 0.77 // Amount of blur for phosphor glow #define PHOSPHOR_GLOW_AMOUNT 0.77 // Amount of phosphor glow #define SAMPLING_RADIUS 0.0001 #define SCANLINE_FREQUENCY 540.0 #define SCANLINE_THICKNESS 0.0507 #define SCANLINE_TIME time * 471.24 #define SHARPNESS 0.25 #define SUPERSAMPLING_SAMPLES 16.0 #define VIGNETTE_RADIUS 0.0 // larger vignette radius #define PI 3.14159265359 #define TWOPI 6.28318530718 vec2 applyBarrelDistortion(vec2 coord, float amt) { vec2 p = coord.xy / vec2(1.0); vec2 v = p * 2.0 - vec2(1.0); float r = dot(v, v); float k = 1.0 + pow(r, 2.0) * pow(amt, 2.0); vec2 result = v * k; return vec2(0.5, 0.5) + 0.5 * result.xy; } vec4 applyColorCorrection(vec4 color) { color.rgb *= vec3(1.0, 0.79, 0.89); return vec4(color.rgb, 1.0); } vec4 applyBorder(vec2 tc, vec4 color, float borderSize, vec4 borderColor) { float dist_x = min(tc.x, 1.0 - tc.x); float dist_y = min(tc.y, 1.0 - tc.y); float dist = min(dist_x, dist_y) * -1.0; float border = smoothstep(borderSize, 0.0, dist); border += smoothstep(borderSize, 0.0, dist); return mix(color, borderColor, border); } vec4 applyFakeHDR(vec4 color, float brightness, float contrast, float saturation, float bloom) { color.rgb = (color.rgb - vec3(0.5)) * exp2(brightness) + vec3(0.5); vec3 crtfactor = vec3(1.05, 0.92, 1.0); color.rgb = pow(color.rgb, crtfactor); // // NTSC // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); // // BT.709 // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); // BT.2020 vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); // // Warm NTSC // vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); float luminance = dot(color.rgb, lumCoeff); luminance = pow(luminance, 2.2); color.rgb = mix(vec3(luminance), color.rgb, saturation); color.rgb = mix(color.rgb, vec3(1.0), pow(max(0.0, luminance - 1.0 + bloom), 4.0)); return color; } vec4 applyVignette(vec4 color) { vec2 center = vec2(0.5, 0.5); // center of screen float radius = VIGNETTE_RADIUS; // radius of vignette effect float softness = 1.0; // softness of vignette effect float intensity = 0.7; // intensity of vignette effect vec2 offset = v_texcoord - center; // offset from center of screen float distance = length(offset); // distance from center of screen float alpha = smoothstep(radius, radius - radius * softness, distance) * intensity; // calculate alpha value for vignette effect return mix(vec4(0.0, 0.0, 0.0, alpha), color, alpha); // mix black with color using calculated alpha value } vec4 applyPhosphorGlow(vec2 tc, vec4 color, sampler2D tex) { // Calculate average color value of the texture vec4 texelColor = color; float averageColor = (texelColor.r + texelColor.g + texelColor.b) / 3.0; // Determine brightness-dependent color factor float factor = mix( mix(0.09, mix(0.005, 0.0075, (averageColor - 0.1) / 0.1), step(0.01, averageColor)), 0.0005, step(0.02, averageColor)); // Apply phosphor glow effect vec4 sum = vec4(0.0); vec4 pixels[9]; pixels[0] = texture2D(tex, tc - vec2(0.001, 0.001)); pixels[1] = texture2D(tex, tc - vec2(0.001, 0.0)); pixels[2] = texture2D(tex, tc - vec2(0.001, -0.001)); pixels[3] = texture2D(tex, tc - vec2(0.0, 0.001)); pixels[4] = texture2D(tex, tc); pixels[5] = texture2D(tex, tc + vec2(0.001, 0.001)); pixels[6] = texture2D(tex, tc + vec2(0.001, 0.0)); pixels[7] = texture2D(tex, tc + vec2(0.001, -0.001)); pixels[8] = texture2D(tex, tc + vec2(0.0, 0.001)); // Perform operations on input pixels in parallel sum = pixels[0] + pixels[1] + pixels[2] + pixels[3] + pixels[4] + pixels[5] + pixels[6] + pixels[7] + pixels[8]; sum /= 9.0; sum += texture2D(tex, tc - vec2(0.01, 0.01)) * 0.001; sum += texture2D(tex, tc - vec2(0.0, 0.01)) * 0.001; sum += texture2D(tex, tc - vec2(-0.01, 0.01)) * 0.001; sum += texture2D(tex, tc - vec2(0.01, 0.0)) * 0.001; sum += color * PHOSPHOR_BLUR_AMOUNT; sum += texture2D(tex, tc - vec2(-0.01, 0.0)) * 0.001; sum += texture2D(tex, tc - vec2(0.01, -0.01)) * 0.001; sum += texture2D(tex, tc - vec2(0.0, -0.01)) * 0.001; sum += texture2D(tex, tc - vec2(-0.01, -0.01)) * 0.001; sum *= PHOSPHOR_GLOW_AMOUNT; // Initialize sum_sum_factor to zero vec4 sum_sum_factor = vec4(0.0); // Compute sum_j for i = -1 vec4 sum_j = vec4(0.0); sum_j += texture2D(tex, tc + vec2(-1, -1) * 0.01); sum_j += texture2D(tex, tc + vec2(0, -1) * 0.01); sum_j += texture2D(tex, tc + vec2(1, -1) * 0.01); sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); sum_sum_factor += sum_j * vec4(0.011); // Compute sum_j for i = 0 sum_j = vec4(0.0); sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); sum_sum_factor += sum_j * vec4(0.011); // Compute sum_j for i = 1 sum_j = vec4(0.0); sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); sum_sum_factor += sum_j * vec4(0.011); color += mix(sum_sum_factor * sum_sum_factor * vec4(factor), sum, 0.5); return color; } vec4 applyAdaptiveSharpen(vec2 tc, vec4 color, sampler2D tex) { vec4 color_tl = texture2D(tex, tc + vec2(-1.0, -1.0) * 0.5 / 2160.0); vec4 color_tr = texture2D(tex, tc + vec2(1.0, -1.0) * 0.5 / 2160.0); vec4 color_bl = texture2D(tex, tc + vec2(-1.0, 1.0) * 0.5 / 2160.0); vec4 color_br = texture2D(tex, tc + vec2(1.0, 1.0) * 0.5 / 2160.0); float sharpness = SHARPNESS; vec3 color_no_alpha = color.rgb; vec3 color_tl_no_alpha = color_tl.rgb; vec3 color_tr_no_alpha = color_tr.rgb; vec3 color_bl_no_alpha = color_bl.rgb; vec3 color_br_no_alpha = color_br.rgb; 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)); vec3 sharp_color_no_alpha = color_no_alpha + min(vec3(0.0), vec3(delta * sharpness)); vec4 sharp_color = vec4(sharp_color_no_alpha, color.a); return sharp_color; } vec4 applyScanlines(vec2 tc, vec4 color) { float scanline = (cos(tc.y * SCANLINE_FREQUENCY + SCANLINE_TIME) * sin(tc.y * SCANLINE_FREQUENCY + SCANLINE_TIME)) * SCANLINE_THICKNESS; float alpha = clamp(1.0 - abs(scanline), 0.0, 1.0); return vec4(color.rgb * alpha, color.a); } vec4 applyChromaticAberration(vec2 uv, vec4 color) { vec2 center = vec2(0.5, 0.5); // center of the screen vec2 offset = (uv - center) * CHROMATIC_ABERRATION_STRENGTH; // calculate the offset from the center // apply lens distortion float rSquared = dot(offset, offset); float distortion = 1.0 + LENS_DISTORTION_AMOUNT * rSquared; vec2 distortedOffset = offset * distortion; // apply chromatic aberration vec2 redOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); vec2 blueOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); vec4 redColor = texture2D(tex, uv + redOffset); vec4 blueColor = texture2D(tex, uv + blueOffset); vec4 result = vec4(redColor.r, color.g, blueColor.b, color.a); return result; } vec4 reduceGlare(vec4 color) { // Calculate the intensity of the color by taking the average of the RGB components float intensity = (color.r + color.g + color.b) / 3.0; // Set the maximum intensity that can be considered for glare float maxIntensity = 0.98; // Use smoothstep to create a smooth transition from no glare to full glare // based on the intensity of the color and the maximum intensity float glareIntensity = smoothstep(maxIntensity - 0.02, maxIntensity, intensity); // Set the amount of glare to apply to the color float glareAmount = 0.02; // Mix the original color with the reduced color that has glare applied to it vec3 reducedColor = mix(color.rgb, vec3(glareIntensity), glareAmount); // Return the reduced color with the original alpha value return vec4(reducedColor, color.a); } // Apply a fake HDR effect to the input color. // Parameters: // - inputColor: the color to apply the effect to. // - brightness: the brightness of the image. Should be a value between 0 and 1. // - contrast: the contrast of the image. Should be a value between 0 and 1. // - saturation: the saturation of the image. Should be a value between 0 and 2. // - bloom: the intensity of the bloom effect. Should be a value between 0 and 1. vec4 applyFakeHDREffect(vec4 inputColor, float brightness, float contrast, float saturation, float bloom) { const float minBrightness = 0.0; const float maxBrightness = 1.0; const float minContrast = 0.0; const float maxContrast = 1.0; const float minSaturation = 0.0; const float maxSaturation = 2.0; const float minBloom = 0.0; const float maxBloom = 1.0; // Check input parameters for validity if (brightness < minBrightness || brightness > maxBrightness) { return vec4(0.0, 0.0, 0.0, 1.0); // Return black with alpha of 1.0 to indicate error } if (contrast < minContrast || contrast > maxContrast) { return vec4(0.0, 0.0, 0.0, 1.0); } if (saturation < minSaturation || saturation > maxSaturation) { return vec4(0.0, 0.0, 0.0, 1.0); } if (bloom < minBloom || bloom > maxBloom) { return vec4(0.0, 0.0, 0.0, 1.0); } // Apply brightness and contrast vec3 color = inputColor.rgb; color = (color - vec3(0.5)) * exp2(brightness * 10.0) + vec3(0.5); color = mix(vec3(0.5), color, pow(contrast * 4.0 + 1.0, 2.0)); // // NTSC // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); // // BT.709 // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); // // BT.2020 // vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); // Warm NTSC vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); // Apply saturation float luminance = dot(color, lumCoeff); vec3 grey = vec3(luminance); color = mix(grey, color, saturation); // Apply bloom effect float threshold = 1.0 - bloom; vec3 bloomColor = max(color - threshold, vec3(0.0)); bloomColor = pow(bloomColor, vec3(2.0)); bloomColor = mix(vec3(0.0), bloomColor, pow(min(luminance, threshold), 4.0)); color += bloomColor; return vec4(color, inputColor.a); } vec4 bilateralFilter(sampler2D tex, vec2 uv, vec4 color, float sampleRadius, float noiseThreshold, float intensity) { vec4 filteredColor = vec4(0.0); float totalWeight = 0.0; // Top-left pixel vec4 sample = texture2D(tex, uv + vec2(-1.0, -1.0)); float dist = length(vec2(-1.0, -1.0)); float colorDist = length(sample - color); float weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Top pixel sample = texture2D(tex, uv + vec2(0.0, -1.0)); dist = length(vec2(0.0, -1.0)); colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Top-right pixel sample = texture2D(tex, uv + vec2(1.0, -1.0)); dist = length(vec2(1.0, -1.0)); colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Left pixel sample = texture2D(tex, uv + vec2(-1.0, 0.0)); dist = length(vec2(-1.0, 0.0)); colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Center pixel sample = texture2D(tex, uv); dist = 0.0; colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Right pixel sample = texture2D(tex, uv + vec2(1.0, 0.0)); dist = length(vec2(1.0, 0.0)); colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Bottom-left pixel sample = texture2D(tex, uv + vec2(-1.0, 1.0)); dist = length(vec2(-1.0, 1.0)); colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; // Bottom pixel sample = texture2D(tex, uv + vec2(0.0, sampleRadius)); dist = length(vec2(0.0, sampleRadius)); colorDist = length(sample - color); weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); filteredColor += sample * weight; totalWeight += weight; filteredColor /= totalWeight; return mix(color, filteredColor, step(noiseThreshold, length(filteredColor - color))); } vec4 supersample(sampler2D tex, vec2 uv, float sampleRadius, float noiseThreshold, float intensity) { float radiusSq = sampleRadius * sampleRadius; vec2 poissonDisk; vec4 color = vec4(0.0); float r1_0 = sqrt(0.0 / 16.0); float r2_0 = fract(1.0 / 3.0); float theta_0 = TWOPI * r2_0; poissonDisk = vec2(r1_0 * cos(theta_0), r1_0 * sin(theta_0)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_1 = sqrt(1.0 / 16.0); float r2_1 = fract(2.0 / 3.0); float theta_1 = TWOPI * r2_1; poissonDisk = vec2(r1_1 * cos(theta_1), r1_1 * sin(theta_1)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_2 = sqrt(2.0 / 16.0); float r2_2 = fract(3.0 / 3.0); float theta_2 = TWOPI * r2_2; poissonDisk = vec2(r1_2 * cos(theta_2), r1_2 * sin(theta_2)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_3 = sqrt(3.0 / 16.0); float r2_3 = fract(4.0 / 3.0); float theta_3 = TWOPI * r2_3; poissonDisk = vec2(r1_3 * cos(theta_3), r1_3 * sin(theta_3)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_4 = sqrt(4.0 / 16.0); float r2_4 = fract(5.0 / 3.0); float theta_4 = TWOPI * r2_4; poissonDisk = vec2(r1_4 * cos(theta_4), r1_4 * sin(theta_4)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_5 = sqrt(5.0 / 16.0); float r2_5 = fract(6.0 / 3.0); float theta_5 = TWOPI * r2_5; poissonDisk = vec2(r1_5 * cos(theta_5), r1_5 * sin(theta_5)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_6 = sqrt(6.0 / 16.0); float r2_6 = fract(7.0 / 3.0); float theta_6 = TWOPI * r2_6; poissonDisk = vec2(r1_6 * cos(theta_6), r1_6 * sin(theta_6)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_7 = sqrt(7.0 / 16.0); float r2_7 = fract(8.0 / 3.0); float theta_7 = TWOPI * r2_7; poissonDisk = vec2(r1_7 * cos(theta_7), r1_7 * sin(theta_7)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_8 = sqrt(8.0 / 16.0); float r2_8 = fract(9.0 / 3.0); float theta_8 = TWOPI * r2_8; poissonDisk = vec2(r1_8 * cos(theta_8), r1_8 * sin(theta_8)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_9 = sqrt(9.0 / 16.0); float r2_9 = fract(10.0 / 3.0); float theta_9 = TWOPI * r2_9; poissonDisk = vec2(r1_9 * cos(theta_9), r1_9 * sin(theta_9)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_10 = sqrt(10.0 / 16.0); float r2_10 = fract(11.0 / 3.0); float theta_10 = TWOPI * r2_10; poissonDisk = vec2(r1_10 * cos(theta_10), r1_10 * sin(theta_10)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_11 = sqrt(11.0 / 16.0); float r2_11 = fract(12.0 / 3.0); float theta_11 = TWOPI * r2_11; poissonDisk = vec2(r1_11 * cos(theta_11), r1_11 * sin(theta_11)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_12 = sqrt(12.0 / 16.0); float r2_12 = fract(13.0 / 3.0); float theta_12 = TWOPI * r2_12; poissonDisk = vec2(r1_12 * cos(theta_12), r1_12 * sin(theta_12)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_13 = sqrt(13.0 / 16.0); float r2_13 = fract(14.0 / 3.0); float theta_13 = TWOPI * r2_13; poissonDisk = vec2(r1_13 * cos(theta_13), r1_13 * sin(theta_13)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_14 = sqrt(14.0 / 16.0); float r2_14 = fract(15.0 / 3.0); float theta_14 = TWOPI * r2_14; poissonDisk = vec2(r1_14 * cos(theta_14), r1_14 * sin(theta_14)); color += texture2D(tex, uv + poissonDisk * sampleRadius); float r1_15 = sqrt(15.0 / 16.0); float r2_15 = fract(16.0 / 3.0); float theta_15 = TWOPI * r2_15; poissonDisk = vec2(r1_15 * cos(theta_15), r1_15 * sin(theta_15)); color += texture2D(tex, uv + poissonDisk * sampleRadius); return bilateralFilter(tex, uv, color, sampleRadius, noiseThreshold, intensity); } void main() { vec2 tc_no_dist = v_texcoord; vec2 tc = applyBarrelDistortion(tc_no_dist, DISTORTION_AMOUNT); // [-1, 1] vec2 tc_no_dist_symmetric = tc_no_dist * 2.0 - 1.0; // [0,1] vec2 tc_no_dist_normalized = (tc_no_dist_symmetric + 1.0) / 2.0; // vec4 color = texture2D(tex, tc); vec4 color = supersample(tex, tc, SAMPLING_RADIUS, NOISE_THRESHOLD, DENOISE_INTENSITY); color = applyAdaptiveSharpen(tc, color, tex); color = applyPhosphorGlow(tc, color, tex); color = reduceGlare(color); color = mix(applyFakeHDREffect(color, HDR_BRIGHTNESS, HDR_CONTRAST, HDR_SATURATION, HDR_BLOOM), color, 0.5); color = applyColorCorrection(color); color /= SUPERSAMPLING_SAMPLES; color = mix(applyChromaticAberration(tc, color), color, 0.25); color = mix(color, applyVignette(color), 0.37); color = applyBorder(tc_no_dist_normalized, color, 1.0 - BORDER_SIZE * BORDER_RADIUS, BORDER_COLOR); color = mix(applyBorder(tc, color, BORDER_SIZE, BORDER_COLOR), color, 0.05); color = applyScanlines(tc, color); gl_FragColor = color; gl_FragColor.a = 1.0; } ================================================ FILE: .config/hypr/shaders/drugs.frag ================================================ precision highp float; varying vec2 v_texcoord; uniform sampler2D tex; uniform float time; void warpco(inout vec2 tc) { tc -= 0.5; tc *= length(tc) * 2.0; tc += 0.5; } float rand1d(float seed) { return sin(seed*1454.0); } float rand2d(vec2 co) { return fract(sin(dot(co.xy, vec2(12.9898,78.233))) * 43758.5453); } vec3 rgb(in vec2 tc, float freq, float amp, inout vec4 centre) { vec2 off = vec2(1.0/800.0, 0.0) * sin(tc.t * freq + time) * amp; vec2 off2 = vec2(1.0/800.0, 0.0) * sin(tc.t * freq - time * 1.5) * amp; centre = texture2D(tex, tc); return vec3(texture2D(tex, tc-off).r, centre.g, texture2D(tex, tc+off2).b); } void main() { // vec2 px = 1.0 / textureSize(tex, 0).st; vec2 tc = v_texcoord; warpco(tc); tc = mix(v_texcoord, tc, sin(time * 2.0)*0.07); tc.x += rand2d(floor(tc * 20.0 + floor(time * 2.5))) * 0.01; tc.x += rand1d(floor(tc.x * 40.0)) * 0.005 * rand1d(time * 0.001); tc.y += sin(tc.x + time) * 0.02; vec4 centre; vec3 bent = rgb(tc, 100.0, 5.0, centre); vec3 col = mix(centre.rgb, bent, sin(time)); gl_FragColor = vec4(col, centre.a); // gl_FragColor = vec4(texture2D(tex, v_texcoord)); } ================================================ FILE: .config/hypr/shaders/extradark.frag ================================================ // vim: set ft=glsl: // blue light filter shader // values from https://reshade.me/forum/shader-discussion/3673-blue-light-filter-similar-to-f-lux precision mediump float; varying vec2 v_texcoord; uniform sampler2D tex; void main() { vec4 pixColor = texture2D(tex, v_texcoord); // red pixColor[0] *= 0.7; // green pixColor[1] *= 0.6; // blue pixColor[2] *= 0.5; gl_FragColor = pixColor; } ================================================ FILE: .config/hypr/shaders/invert.frag ================================================ // vim: set ft=glsl: // blue light filter shader // values from https://reshade.me/forum/shader-discussion/3673-blue-light-filter-similar-to-f-lux precision mediump float; varying vec2 v_texcoord; uniform sampler2D tex; void main() { vec4 pixColor = texture2D(tex, v_texcoord); pixColor.rgb = 1.0 - pixColor.rgb; gl_FragColor = pixColor; } ================================================ FILE: .config/hypr/shaders/solarized.frag ================================================ // -*- mode:c -*- precision lowp float; varying vec2 v_texcoord; uniform sampler2D tex; float distanceSquared(vec3 pixColor, vec3 solarizedColor) { vec3 distanceVector = pixColor - solarizedColor; return dot(distanceVector, distanceVector); } void main() { vec3 solarized[16]; solarized[0] = vec3(0.,0.169,0.212); solarized[1] = vec3(0.027,0.212,0.259); solarized[2] = vec3(0.345,0.431,0.459); solarized[3] = vec3(0.396,0.482,0.514); solarized[4] = vec3(0.514,0.58,0.588); solarized[5] = vec3(0.576,0.631,0.631); solarized[6] = vec3(0.933,0.91,0.835); solarized[7] = vec3(0.992,0.965,0.89); solarized[8] = vec3(0.71,0.537,0.); solarized[9] = vec3(0.796,0.294,0.086); solarized[10] = vec3(0.863,0.196,0.184); solarized[11] = vec3(0.827,0.212,0.51); solarized[12] = vec3(0.424,0.443,0.769); solarized[13] = vec3(0.149,0.545,0.824); solarized[14] = vec3(0.165,0.631,0.596); solarized[15] = vec3(0.522,0.6,0.); vec3 pixColor = vec3(texture2D(tex, v_texcoord)); int closest = 0; float closestDistanceSquared = distanceSquared(pixColor, solarized[0]); for (int i = 1; i < 15; i++) { float newDistanceSquared = distanceSquared(pixColor, solarized[i]); if (newDistanceSquared < closestDistanceSquared) { closest = i; closestDistanceSquared = newDistanceSquared; } } gl_FragColor = vec4(solarized[closest], 1.); } ================================================ FILE: .config/hypr/workspaces.conf ================================================ ================================================ FILE: .config/kitty/current-theme.conf ================================================ # vim:ft=kitty ## name: Catppuccin Kitty Frappé ## author: Catppuccin Org ## license: MIT ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/frappe.conf ## blurb: Soothing pastel theme for the high-spirited! # The basic colors foreground #c6d0f5 #background #2F3038 background #24273a selection_foreground #303446 selection_background #f2d5cf # Cursor colors cursor #f2d5cf cursor_text_color #303446 # URL underline color when hovering with mouse url_color #f2d5cf # Kitty window border colors active_border_color #babbf1 inactive_border_color #737994 bell_border_color #e5c890 # OS Window titlebar colors wayland_titlebar_color system macos_titlebar_color system # Tab bar colors active_tab_foreground #232634 active_tab_background #ca9ee6 inactive_tab_foreground #c6d0f5 inactive_tab_background #292c3c tab_bar_background #232634 # Colors for marks (marked text in the terminal) mark1_foreground #303446 mark1_background #babbf1 mark2_foreground #303446 mark2_background #ca9ee6 mark3_foreground #303446 mark3_background #85c1dc # The 16 terminal colors # black color0 #51576d color8 #626880 # red color1 #e78284 color9 #e78284 # green color2 #a6d189 color10 #a6d189 # yellow color3 #e5c890 color11 #e5c890 # blue color4 #8caaee color12 #8caaee # magenta color5 #f4b8e4 color13 #f4b8e4 # cyan color6 #81c8be color14 #81c8be # white color7 #b5bfe2 color15 #a5adce ================================================ FILE: .config/kitty/kitty-hyprland.conf ================================================ # vim:ft=kitty ## name: Catppuccin Kitty Macchiato ## author: Catppuccin Org ## license: MIT ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/macchiato.conf ## blurb: Soothing pastel theme for the high-spirited! remember_window_size no initial_window_width 850 initial_window_height 500 # font_family SpaceMono Nerd Font font_family JetBrainsMono Nerd Font #font_family VictorMono Nerd Font #font_family CaskaydiaMono Nerd Font bold_font auto italic_font auto bold_italic_font auto font_size 11.0 font_features FiraCode-Regular +cv02 +cv05 +cv09 +cv14 +ss04 +cv16 +cv31 +cv25 +cv26 +cv32 +cv28 +ss10 +zero +onum transparent background #hide_window_decorations no #linux_display_server x11 background_opacity 0.8 background_blur 1 dynamic_background_opacity yes shell_integration no-cursor cursor_shape block #cursor_blink_interval -1 cursor_stop_blinking_after 15.0 cursor_trail 1 cursor_trail_decay 0.5 0.8 cursor_trail_start_threshold 1 # Kitty window border colors # OS Window titlebar colors wayland_titlebar_color system macos_titlebar_color system #include ~/.cache/wal/colors-kitty.conf #include ./kitty-themes/themes/rose-pine foreground #e0def4 background #191724 selection_foreground #e0def4 selection_background #403d52 cursor #524f67 cursor_text_color #e0def4 url_color #c4a7e7 active_tab_foreground #e0def4 active_tab_background #26233a inactive_tab_foreground #6e6a86 inactive_tab_background #191724 active_border_color #31748f inactive_border_color #403d52 # black color0 #26233a color8 #6e6a86 # red color1 #eb6f92 color9 #eb6f92 # green color2 #31748f color10 #31748f # yellow color3 #f6c177 color11 #f6c177 # blue color4 #9ccfd8 color12 #9ccfd8 # magenta color5 #c4a7e7 color13 #c4a7e7 # cyan color6 #ebbcba color14 #ebbcba # white color7 #e0def4 color15 #e0def4 ================================================ FILE: .config/kitty/kitty-themes/.all-contributorsrc ================================================ { "files": [ "README.md" ], "badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-green.svg?style=for-the-badge)](#contributors)", "contributorTemplate": "\"><%= contributor.name %>
<%= contributions %>", "imageSize": 100, "commit": false, "contributors": [ { "login": "scopatz", "name": "Anthony Scopatz", "avatar_url": "https://avatars2.githubusercontent.com/u/320553?v=4", "profile": "http://www.scopatz.com", "contributions": [ "doc" ] }, { "login": "orangecoloured", "name": "RCKT", "avatar_url": "https://avatars3.githubusercontent.com/u/3314891?v=4", "profile": "https://rckt.cc", "contributions": [ "theme" ] }, { "login": "varmanishant", "name": "varmanishant", "avatar_url": "https://avatars1.githubusercontent.com/u/4084912?v=4", "profile": "https://github.com/varmanishant", "contributions": [ "theme" ] }, { "login": "rlerdorf", "name": "Rasmus Lerdorf", "avatar_url": "https://avatars3.githubusercontent.com/u/54641?v=4", "profile": "https://github.com/rlerdorf", "contributions": [ "bug", "ideas" ] }, { "login": "Luflosi", "name": "Luflosi", "avatar_url": "https://avatars1.githubusercontent.com/u/15217907?v=4", "profile": "https://github.com/Luflosi", "contributions": [ "fix", "question", "doc" ] }, { "login": "connorholyday", "name": "Connor Holyday", "avatar_url": "https://avatars1.githubusercontent.com/u/4559119?v=4", "profile": "https://holyday.me", "contributions": [ "fix" ] }, { "login": "BlueDrink9", "name": "BlueDrink9", "avatar_url": "https://avatars3.githubusercontent.com/u/26474254?v=4", "profile": "https://github.com/BlueDrink9", "contributions": [ "bug" ] }, { "login": "brujoand", "name": "Anders Brujordet", "avatar_url": "https://avatars1.githubusercontent.com/u/124421?v=4", "profile": "https://github.com/brujoand", "contributions": [ "theme" ] }, { "login": "rjshrjndrn", "name": "Rajesh Rajendran", "avatar_url": "https://avatars3.githubusercontent.com/u/2563385?v=4", "profile": "http://www.hackouts.com", "contributions": [ "fix" ] } ], "types": { "theme": { "symbol": "😻", "description": "New theme added to the collection" }, "fix": { "symbol": "🛠️", "description": "Fixed a theme" } }, "contributorsPerLine": 7, "projectName": "kitty-themes", "projectOwner": "dexpota", "repoType": "github", "repoHost": "https://github.com", "commitConvention": "none" } ================================================ FILE: .config/kitty/kitty-themes/.tools/README.md ================================================ # kitty-tools > A bunch of useful scripts used to convert schemes and generate files. ## Process overview 1. Find a nice theme and check the licensing, is it possible to distribute the theme? 2. Generate the configuration file for **kitty**; 3. Add a new preview for the theme; 4. Update the README.md; ================================================ FILE: .config/kitty/kitty-themes/.tools/color_table.sh ================================================ #!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo ================================================ FILE: .config/kitty/kitty-themes/.tools/convert.py ================================================ import json from jinja2 import FileSystemLoader, Environment import sys import os def removeAlpha(value): hex = value.lstrip("#") return "#" + hex[0:6] filename = sys.argv[1] kitty_configuration = os.path.splitext(filename)[0] + ".conf" with open(filename, "r") as configuration_file: configuration = json.load(configuration_file) loader = FileSystemLoader(".") env = Environment(loader=loader) env.filters['removeAlpha'] = removeAlpha env.trim_blocks = True template = env.get_template("template.conf.j2") output = template.render(**configuration) with open(kitty_configuration, "w") as fp: fp.write(output) ================================================ FILE: .config/kitty/kitty-themes/.tools/convert_conf.swift ================================================ #!/usr/bin/swift // main.swift // nscolor // // Created by Fabrizio FD. Destro on 28/12/18. // Copyright © 2018 Fabrizio FD. Destro. All rights reserved. // import Foundation import AppKit func hex(color: NSColor) -> String { return String(format: "#%02x%02x%02x", Int(color.redComponent * 0xFF), Int(color.greenComponent * 0xFF), Int(color.blueComponent * 0xFF)) } func process_color(field: String, data: Data) { let color = NSKeyedUnarchiver.unarchiveObject(with: data) as! NSColor print("\(field) \(hex(color: color))"); } func generate_conf_line(field: String, key: String, dictionary: NSDictionary){ if let data = dictionary[key] { process_color(field: field, data: data as! Data) } } func process(filename: String) { let plist = NSDictionary(contentsOfFile: filename)! generate_conf_line(field: "background", key: "BackgroundColor", dictionary: plist) generate_conf_line(field: "foreground", key: "TextColor", dictionary: plist) generate_conf_line(field: "cursor", key: "CursorColor", dictionary: plist) generate_conf_line(field: "selection_background", key: "SelectionColor", dictionary: plist) generate_conf_line(field: "color0", key: "ANSIBlackColor", dictionary: plist) generate_conf_line(field: "color8", key: "ANSIBrightBlackColor", dictionary: plist) generate_conf_line(field: "color1", key: "ANSIRedColor", dictionary: plist) generate_conf_line(field: "color9", key: "ANSIBrightRedColor", dictionary: plist) generate_conf_line(field: "color2", key: "ANSIGreenColor", dictionary: plist) generate_conf_line(field: "color10", key: "ANSIBrightGreenColor", dictionary: plist) generate_conf_line(field: "color3", key: "ANSIYellowColor", dictionary: plist) generate_conf_line(field: "color11", key: "ANSIBrightYellowColor", dictionary: plist) generate_conf_line(field: "color4", key: "ANSIBlueColor", dictionary: plist) generate_conf_line(field: "color12", key: "ANSIBrightBlueColor", dictionary: plist) generate_conf_line(field: "color5", key: "ANSIMagentaColor", dictionary: plist) generate_conf_line(field: "color13", key: "ANSIBrightMagentaColor", dictionary: plist) generate_conf_line(field: "color6", key: "ANSICyanColor", dictionary: plist) generate_conf_line(field: "color14", key: "ANSIBrightCyanColor", dictionary: plist) generate_conf_line(field: "color7", key: "ANSIWhiteColor", dictionary: plist) generate_conf_line(field: "color15", key: "ANSIBrightWhiteColor", dictionary: plist) } if (CommandLine.argc == 2) { let filename = CommandLine.arguments[1] process(filename: filename) } else { print("Missing plist's path.") } ================================================ FILE: .config/kitty/kitty-themes/.tools/extract-vscode.sh ================================================ #!/usr/bin/env bash theme=$1 jq ".colors | to_entries | map(select(.key | match(\"terminal.*\"))) | map({(.key | gsub(\"\\\\.(?.)\"; .a | ascii_upcase) | ltrimstr(\"terminal\") | sub(\"(?.)\"; .a | ascii_downcase)):.value}) | add" < "$theme" > "terminal/${theme%.*}.json" ================================================ FILE: .config/kitty/kitty-themes/.tools/generate_conf.sh ================================================ #!/usr/bin/env bash find ~/github/macos-terminal-themes/schemes/ -name "*.terminal" -print0 | while read -d $'\0' -r file; do filename=`basename "$file"` without_ext=${filename%.*} removed_spaces=${without_ext// /_} # output_filename=`echo ${removed_spaces} | tr '[:upper:]' '[:lower:]'` echo ${removed_spaces}.conf ./convert_conf.swift "$file" > ./themes/${removed_spaces}.conf done ================================================ FILE: .config/kitty/kitty-themes/.tools/generate_theme_preview.sh ================================================ #!/usr/bin/env bash # This script generate all preview images for the themes # In order to capture previews without the to bar start kitty without decorations # kitty -o hide_window_decorations=yes # shellcheck source=libcapture.sh source libcapture.sh # read theme path from args id=$1 theme=$2 preview_filename=$3 conf_filename=$(basename "$theme") lockfile=$(mktemp) kitty @ set-colors --match id:"$id" "$theme" kitty @ send-text --match id:"$id" "clear && figlet -f digital -t \"$conf_filename\" && unbuffer ./color_table.sh && rm \"$lockfile\"\n" # simple sync mechanism, wait for the lockfile to be removed ( echo "$lockfile" | entr "false" 1>/dev/null 2>&1 ) || capture themes "$preview_filename" ================================================ FILE: .config/kitty/kitty-themes/.tools/generate_themes_previews.sh ================================================ #!/usr/bin/env bash # This script generate all preview images for the themes root="$(git rev-parse --show-toplevel)" tools="$root/.tools" PATH=$tools:$PATH # new kitty window, return its id id=$(kitty @ new-window --title themes --window-type os --cwd "$tools") # start bash without reading the profile nor the configuration kitty @ send-text --match id:"$id" "/usr/bin/env bash --noprofile --norc\n" kitty @ set-font-size 24 # save all preview in this directory previews="$root/_previews" if [ ! -d "$previews" ]; then mkdir "$previews" fi while read -r theme do echo "Genereting theme preview for $theme" preview_directory=$previews/$(basename "${theme%.*}") [ ! -d "$preview_directory" ] && mkdir "$preview_directory" preview_filename=$previews/$(basename "${theme%.*}")/preview.png generate_theme_preview.sh "$id" "$theme" "$preview_filename" mogrify -resize 1024x\> "$preview_filename" done < /dev/stdin kitty @ close-window --match id:"$id" kitty @ set-font-size 16 ================================================ FILE: .config/kitty/kitty-themes/.tools/libcapture.sh ================================================ #!/usr/bin/env bash function capture_linux() { local title="$1" local output="$2" import -window "$title" "$output" } function capture_osx() { local title="$1" local output="$2" # get system id of the new created window sys_id=$(./windowid.swift "kitty" "$title") screencapture -wl"$sys_id" "$output" } function capture() { if [[ "$OSTYPE" == "linux-gnu" ]]; then capture_linux "$@" elif [[ "$OSTYPE" == "darwin"* ]]; then capture_osx "$@" fi } ================================================ FILE: .config/kitty/kitty-themes/.tools/markdown.sh ================================================ #!/usr/bin/env bash previews_root=$1 # usually this value: https://raw.githubusercontent.com/dexpota/kitty-themes-website/master url_root=$2 for f in $(find "$previews_root/previews" -maxdepth 1 -mindepth 1 -type d | sort); do preview_file="$f"/preview.png theme=$(basename $f) relative_path=$(realpath --relative-to="$previews_root" "$preview_file") header=`basename $theme | sed 's/_/ /g'` image="![image]($url_root/$relative_path)" echo \#\# $header echo $image done ================================================ FILE: .config/kitty/kitty-themes/.tools/palette.py ================================================ from argparse import ArgumentParser from svgwrite.shapes import Rect import svgwrite theme_keys = [ "foreground", "background", "background_opacity", "dynamic_background_opacity", "dim_opacity", "selection_foreground", "selection_background", "color0", "color8", "color1", "color9", "color2", "color10", "color3", "color11", "color4", "color12", "color5", "color13", "color6", "color14", "color7", "color15" ] def is_valid(line): """ Returns true if a line inside a configuration file is a valid theme configuration pair: is not a comment, is not empty and the key is correct. :param line: a line inside the configuration file :type line: str :return: true if is valid, false otherwise :rtype: bool """ return (not line.lstrip().startswith("#") # is not a comment and len(line.strip()) != 0 # is not empty and line.split(maxsplit=1)[0] in theme_keys) # key is a valid one def extract_configuration_pair(line): """ Extract a configuration pair by splitting on spaces and taking the first couple of values. :param line: a line inside the configuration file :type line: str :return: a key-value pair :rtype: bool """ split = line.split(maxsplit=2) return split[0], split[1] def read_configuration(filename): """ Read a kitty configuration file and extract only theme related keys and values. :param filename: path to the configuration file :type filename: str :return: a map with theme related configuration values :rtype: dict[str, str] """ with open(filename, "r") as fp: lines = fp.readlines() print(filename) theme_config = dict([extract_configuration_pair(line) for line in lines if is_valid(line)]) return theme_config def draw_theme_palette(theme_configuration, start_point, size, displacement): rects = [] for k, v in theme_configuration.items(): rgb = tuple(int(v[i + 1:i + 3], 16) for i in (0, 2, 4)) rects.append(Rect(start_point, size, fill=svgwrite.utils.rgb(rgb[0], rgb[1], rgb[2]))) start_point = (start_point[0] + displacement[0], start_point[1] + displacement[1]) return rects def draw_all_palettes(themes): dwg = svgwrite.Drawing('test.svg', profile='tiny') y = 0 palettes = [] for theme in themes: palettes += draw_theme_palette(theme, (0, y), (10, 10), (10, 0)) y += 10 for rect in palettes: dwg.add(rect) dwg.save() def main(): parser = ArgumentParser() parser.add_argument("theme", type=str, nargs="+") ns = parser.parse_args() theme_configurations = [read_configuration(theme) for theme in ns.theme] draw_all_palettes(theme_configurations) if __name__ == "__main__": main() ================================================ FILE: .config/kitty/kitty-themes/.tools/preview.py ================================================ import sys import os import sys theme_keys = [ "cursor", "foreground", "background", "background_opacity", "dynamic_background_opacity", "dim_opacity", "selection_foreground", "selection_background", "color0", "color8", "color1", "color9", "color2", "color10", "color3", "color11", "color4", "color12", "color5", "color13", "color6", "color14", "color7", "color15" ] def is_valid(line): """ Returns true if a line inside a configuration file is a valid theme configuration pair: is not a comment, is not empty and the key is correct. :param line: a line inside the configuration file :type line: str :return: true if is valid, false otherwise :rtype: bool """ return (not line.lstrip().startswith("#") # is not a comment and len(line.strip()) != 0 # is not empty and line.split(maxsplit=1)[0] in theme_keys) # key is a valid one def extract_configuration_pair(line): """ Extract a configuration pair by splitting on spaces and taking the first couple of values. :param line: a line inside the configuration file :type line: str :return: a key-value pair :rtype: bool """ split = line.split(maxsplit=2) return split[0], split[1] def read_configuration(filename): """ Read a kitty configuration file and extract only theme related keys and values. :param filename: path to the configuration file :type filename: str :return: a map with theme related configuration values :rtype: dict[str, str] """ with open(filename, "r") as fp: lines = fp.readlines() theme_config = dict([extract_configuration_pair(line) for line in lines if is_valid(line)]) return theme_config def fg(color, text): rgb = tuple(int(color[i + 1:i + 3], 16) for i in (0, 2, 4)) return ('\x1b[38;2;%s;%s;%sm' % rgb + text + '\x1b[0m') def bg(color, text): rgb = tuple(int(color[i + 1:i + 3], 16) for i in (0, 2, 4)) return ('\x1b[48;2;%s;%s;%sm' % rgb + text + '\x1b[0m') def print_preview(filename, configuration): cursor = configuration["cursor"] background = configuration["background"] foreground = configuration["foreground"] theme = os.path.basename(filename) size = len(theme) + (2 + 2 + 16 + 2 + 16 + 1 + 2) print(bg(background, " " * size)) print(bg(background, " "), end="") print(bg(background, fg(foreground, theme)), end="") print(bg(background, " "), end="") c='a' for i in range(0, 16): color = configuration["color%d" % i] print(bg(background, fg(color, c)), end="") c = chr(ord(c) + 1) print(bg(background, " "), end="") selection_background = configuration["selection_background"] selection_foreground = configuration["selection_foreground"] c='A' for i in range(0, 16): print(bg(selection_background, fg(selection_foreground, c)), end="") c = chr(ord(c) + 1) print(bg(cursor, " "), end="") print(bg(background, " ")) print(bg(background, " " * size)) print(bg(background, " "), end="") print(bg(configuration["color0"], " "), end="") print(bg(configuration["color1"], " "), end="") print(bg(configuration["color2"], " "), end="") print(bg(configuration["color3"], " "), end="") print(bg(configuration["color4"], " "), end="") print(bg(configuration["color5"], " "), end="") print(bg(configuration["color6"], " "), end="") print(bg(configuration["color7"], " "), end="") print(bg(background, " "), end="") print(bg(configuration["color8"], " "), end="") print(bg(configuration["color9"], " "), end="") print(bg(configuration["color10"], " "), end="") print(bg(configuration["color11"], " "), end="") print(bg(configuration["color12"], " "), end="") print(bg(configuration["color13"], " "), end="") print(bg(configuration["color14"], " "), end="") print(bg(configuration["color15"], " "), end="") print(bg(background, " " * (size - 16 - 4)), end="") print() print(bg(background, " " * size)) print() def main(directory): for filename in os.listdir(directory): try: path = os.path.join(directory, filename) configuration = read_configuration(path) print_preview(path, configuration) except Exception as e: print(e, file=sys.stderr) print("Error while processing %s" % filename, file=sys.stderr) if __name__ == "__main__": main(sys.argv[1]) ================================================ FILE: .config/kitty/kitty-themes/.tools/previews.sh ================================================ #!/bin/bash # @author: @vrdhn on github SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" cd $SCRIPT_DIR/.. set_theme () { cat themes/$1.conf | awk 'BEGIN {printf("kitty @ set-colors ")} {printf( "%s=%s ",$1,$2 )} END{printf("\n")}' | sh } list=$(find themes -type f | grep "$1" | xargs basename | cut -d. -f1) for x in $list ; do kitty +kitten icat "previews/$x.png" read -n 1 -p "$x : Next / Set / Quit :" ans echo case $ans in n ) ;; s ) set_theme $x ; exit ;; q ) exit ;; esac done ================================================ FILE: .config/kitty/kitty-themes/.tools/template.conf ================================================ background # foreground # cursor # cursor_text_color # selection_foreground # selection_background # # black color0 # color8 # # red color1 # # light red color9 # # green color2 # # light green color10 # # yellow color3 # # light yellow color11 # # blue color4 # # light blue color12 # # magenta color5 # # light magenta color13 # # cyan color6 # # lighy cyan color14 # # light gray color7 # # dark gray color15 # ================================================ FILE: .config/kitty/kitty-themes/.tools/template.conf.j2 ================================================ {% if background is defined %} background {{background}} {% endif %} {% if foreground is defined %} foreground {{foreground}} {% endif %} {% if cursorForeground is defined %} cursor {{cursorForeground}} {% endif %} {% if cursorBackground is defined %} cursor_text_color {{cursorBackground | removeAlpha}} {% endif %} {% if background is defined %} selection_foreground {{background | removeAlpha}} {% endif %} {% if selectionBackground is defined %} selection_background {{selectionBackground | removeAlpha}} {% endif %} {% if ansiBlack is defined %} # dull black color0 {{ansiBlack}} {% endif %} {% if ansiBrightBlack is defined %} # light black color8 {{ansiBrightBlack}} {% endif %} {% if ansiRed is defined %} # dull red color1 {{ansiRed}} {% endif %} {% if ansiBrightRed %} # light red color9 {{ansiBrightRed}} {% endif %} {% if ansiGreen is defined %} # dull green color2 {{ansiGreen}} {% endif %} {% if ansiBrightGreen is defined %} # light green color10 {{ansiBrightGreen}} {% endif %} {% if ansiYellow is defined %} # yellow color3 {{ansiYellow}} {% endif %} {% if ansiBrightYellow is defined %} # light yellow color11 {{ansiBrightYellow}} {% endif %} {% if ansiBlue is defined %} # blue color4 {{ansiBlue}} {% endif %} {% if ansiBrightBlue %} # light blue color12 {{ansiBrightBlue}} {% endif %} {% if ansiMagenta is defined %} # magenta color5 {{ansiMagenta}} {% endif %} {% if ansiBrightMagenta is defined %} # light magenta color13 {{ansiBrightMagenta}} {% endif %} {% if ansiCyan is defined %} # cyan color6 {{ansiCyan}} {% endif %} {% if ansiBrightCyan is defined %} # light cyan color14 {{ansiBrightCyan}} {% endif %} {% if ansiWhite is defined %} # dull white color7 {{ansiWhite}} {% endif %} {% if ansiBrightWhite is defined %} # bright white color15 {{ansiBrightWhite}} {% endif %} ================================================ FILE: .config/kitty/kitty-themes/.tools/windowid.swift ================================================ #!/usr/bin/swift import Foundation import Cocoa import CoreGraphics.CGWindow let windows : NSArray = CGWindowListCopyWindowInfo(CGWindowListOption.excludeDesktopElements, kCGNullWindowID)! as NSArray let search_for_app = CommandLine.arguments[1] let search_for_win = CommandLine.arguments[2] for window in windows { let window = window as! NSDictionary let app_name = window[kCGWindowOwnerName] as! String let window_name = window[kCGWindowName] as? String if app_name == search_for_app && window_name == search_for_win { print("\(window[kCGWindowNumber]!)") } } ================================================ FILE: .config/kitty/kitty-themes/CONTRIBUTING.md ================================================ # Contributing to kitty-themes We always welcome your pull request! To start contributing follow these simple steps: 1. Fork the repo and create your branch from `master`; 2. Add your theme as config file under `themes` directory; 3. Issue the pull request through github; ================================================ FILE: .config/kitty/kitty-themes/LICENSE.md ================================================ MIT License Copyright (c) 2019 Fabrizio Destro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: .config/kitty/kitty-themes/README.md ================================================ [iterm2-themes]: https://github.com/mbadolato/iTerm2-Color-Schemes [color-scripts]: https://github.com/stark/Color-Scripts/tree/master/color-scripts [license]: https://opensource.org/licenses/MIT [license-badge]: https://img.shields.io/github/license/dexpota/kitty-themes.svg?style=for-the-badge [kitty-themes-previews]: https://github.com/dexpota/kitty-themes-website/tree/master/previews ![kitty-themes](./.github/kitty-themes.jpg) > **Personalize** your *kitty* terminal and choose your theme from this awesome > collection, for more information on the terminal visit > https://github.com/kovidgoyal/kitty [![License: MIT][license-badge]][license] [![All Contributors](https://img.shields.io/badge/all_contributors-9-green.svg?style=for-the-badge)](#contributors) - [About](#about) - [Installation](#installation) - [Source Code](#source-code) - [Conda](#conda) - [License](#license) - [Bring me to the previews!](#previews) - [Contributors](#contributors) ## About In this repository you can find a set of themes to personalize your kitty terminal, these have been ported from [iTerm2-Color-Schemes][iterm2-themes]. You can find the previews for each theme in the [section](#previews) below or in this other [repository](kitty-themes-previews). ## Installation ### Source Code 1. If you want to download and use one of these theme you have two options: - clone the entire *kitty-themes* repository: ```bash git clone --depth 1 https://github.com/dexpota/kitty-themes.git ~/.config/kitty/kitty-themes ``` - or download just one theme: ```bash THEME=https://raw.githubusercontent.com/dexpota/kitty-themes/master/themes/3024_Day.conf wget "$THEME" -P ~/.config/kitty/kitty-themes/themes ``` 2. Choose a theme and create a symlink: ```bash cd ~/.config/kitty ln -s ./kitty-themes/themes/Floraverse.conf ~/.config/kitty/theme.conf ``` 3. Add this line to your kitty.conf configuration file: ``` include ./theme.conf ``` ### Conda If you using the ``conda`` package manager, you may also install these themes with the following command: ```bash conda install -c conda-forge kitty-themes ``` ## License All original content of this repository is licensed with the [MIT License](./LICENSE.md). Whenever possible the author of the theme is cited inside each theme configuration file, together with its license. Hit me up if you find your theme inside this repository and you want a proper citation. ## Previews If you have followed the [installation](#installation) instructions and cloned the entire repo, you have two options to try a theme: 1. If you have enabled remote control in *kitty* you can run this command: ```bash kitty @ set-colors -a "~/.config/kitty/kitty-themes/themes/AdventureTime.conf" ``` 2. Otherwise you can start another instance of kitty and specify another config file to read from, this will cause *kitty* to read both its normal config file and the specified one: ```bash kitty -o include="~/.config/kitty/kitty-themes/themes/AdventureTime.conf" ``` ### Bonus Try your new theme with one of the scripts in [Color-scripts][color-scripts] with this one-liner (requires `jq`): ```bash COLOR_SCRIPT_REPO=https://api.github.com/repos/stark/Color-Scripts/contents/color-scripts wget -q -O - $(curl -s $COLOR_SCRIPT_REPO | jq '.[] | "\(.path) \(.download_url)"' -r | shuf -n1 | cut -d " " -f2) | bash ``` ### 3024 Day ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/3024_Day/preview.png) ### 3024 Night ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/3024_Night/preview.png) ### AdventureTime ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AdventureTime/preview.png) ### Afterglow ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Afterglow/preview.png) ### AlienBlood ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AlienBlood/preview.png) ### Alucard ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Alucard/preview.png) ### Apprentice ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Apprentice/preview.png) ### Argonaut ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Argonaut/preview.png) ### Arthur ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Arthur/preview.png) ### AtelierSulphurpool ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AtelierSulphurpool/preview.png) ### Atom ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Atom/preview.png) ### AtomOneLight ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AtomOneLight/preview.png) ### ayu ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ayu/preview.png) ### ayu light ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ayu_light/preview.png) ### ayu mirage ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ayu_mirage/preview.png) ### Batman ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Batman/preview.png) ### Belafonte Day ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Belafonte_Day/preview.png) ### Belafonte Night ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Belafonte_Night/preview.png) ### BirdsOfParadise ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/BirdsOfParadise/preview.png) ### Blazer ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Blazer/preview.png) ### Borland ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Borland/preview.png) ### Bright Lights ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Bright_Lights/preview.png) ### Broadcast ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Broadcast/preview.png) ### Brogrammer ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Brogrammer/preview.png) ### C64 ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/C64/preview.png) ### Chalk ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Chalk/preview.png) ### Chalkboard ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Chalkboard/preview.png) ### Ciapre ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ciapre/preview.png) ### CLRS ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/CLRS/preview.png) ### Cobalt2 ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Cobalt2/preview.png) ### Cobalt Neon ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Cobalt_Neon/preview.png) ### CrayonPonyFish ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/CrayonPonyFish/preview.png) ### Dark Pastel ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Dark_Pastel/preview.png) ### Darkside ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Darkside/preview.png) ### Desert ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Desert/preview.png) ### DimmedMonokai ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/DimmedMonokai/preview.png) ### DotGov ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/DotGov/preview.png) ### Dracula ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Dracula/preview.png) ### Dumbledore ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Dumbledore/preview.png) ### Duotone Dark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Duotone_Dark/preview.png) ### Earthsong ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Earthsong/preview.png) ### Elemental ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Elemental/preview.png) ### ENCOM ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ENCOM/preview.png) ### Espresso ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Espresso/preview.png) ### Espresso Libre ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Espresso_Libre/preview.png) ### Fideloper ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Fideloper/preview.png) ### FishTank ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/FishTank/preview.png) ### Flat ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Flat/preview.png) ### Flatland ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Flatland/preview.png) ### Floraverse ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Floraverse/preview.png) ### FrontEndDelight ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/FrontEndDelight/preview.png) ### FunForrest ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/FunForrest/preview.png) ### Galaxy ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Galaxy/preview.png) ### Github ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Github/preview.png) ### Glacier ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Glacier/preview.png) ### GoaBase ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/GoaBase/preview.png) ### Grape ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Grape/preview.png) ### Grass ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Grass/preview.png) ### gruvbox dark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/gruvbox_dark/preview.png) ### gruvbox light ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/gruvbox_light/preview.png) ### Hardcore ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hardcore/preview.png) ### Harper ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Harper/preview.png) ### Highway ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Highway/preview.png) ### Hipster Green ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hipster_Green/preview.png) ### Homebrew ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Homebrew/preview.png) ### Hurtado ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hurtado/preview.png) ### Hybrid ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hybrid/preview.png) ### IC Green PPL ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/IC_Green_PPL/preview.png) ### IC Orange PPL ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/IC_Orange_PPL/preview.png) ### idleToes ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/idleToes/preview.png) ### IR Black ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/IR_Black/preview.png) ### Jackie Brown ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Jackie_Brown/preview.png) ### Japanesque ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Japanesque/preview.png) ### Jellybeans ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Jellybeans/preview.png) ### JetBrains Darcula ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/JetBrains_Darcula/preview.png) ### Kibble ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Kibble/preview.png) ### Later This Evening ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Later_This_Evening/preview.png) ### Lavandula ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Lavandula/preview.png) ### LiquidCarbon ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/LiquidCarbon/preview.png) ### LiquidCarbonTransparent ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/LiquidCarbonTransparent/preview.png) ### LiquidCarbonTransparentInverse ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/LiquidCarbonTransparentInverse/preview.png) ### Man Page ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Man_Page/preview.png) ### Material ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Material/preview.png) ### MaterialDark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/MaterialDark/preview.png) ### Mathias ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Mathias/preview.png) ### Medallion ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Medallion/preview.png) ### Misterioso ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Misterioso/preview.png) ### Molokai ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Molokai/preview.png) ### MonaLisa ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/MonaLisa/preview.png) ### Monokai Classic ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Classic/preview.png) ### Monokai Pro ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro/preview.png) ### Monokai Pro (Filter Machine) ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Machine)/preview.png) ### Monokai Pro (Filter Octagon) ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Octagon)/preview.png) ### Monokai Pro (Filter Ristretto) ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Ristretto)/preview.png) ### Monokai Pro (Filter Spectrum) ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Spectrum)/preview.png) ### Monokai Soda ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Soda/preview.png) ### N0tch2k ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/N0tch2k/preview.png) ### Neopolitan ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Neopolitan/preview.png) ### Neutron ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Neutron/preview.png) ### NightLion v1 ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/NightLion_v1/preview.png) ### NightLion v2 ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/NightLion_v2/preview.png) ### Nova ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Nova/preview.png) ### Novel ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Novel/preview.png) ### Obsidian ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Obsidian/preview.png) ### Ocean ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ocean/preview.png) ### OceanicMaterial ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/OceanicMaterial/preview.png) ### Ollie ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ollie/preview.png) ### OneDark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/OneDark/preview.png) ### Parasio Dark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Parasio_Dark/preview.png) ### PaulMillr ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/PaulMillr/preview.png) ### PencilDark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/PencilDark/preview.png) ### PencilLight ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/PencilLight/preview.png) ### Piatto Light ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Piatto_Light/preview.png) ### Pnevma ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Pnevma/preview.png) ### Pro ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Pro/preview.png) ### Red Alert ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Red_Alert/preview.png) ### Red Sands ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Red_Sands/preview.png) ### Relaxed Afterglow ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Relaxed_Afterglow/preview.png) ### Renault Style ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Renault_Style/preview.png) ### Renault Style Light ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Renault_Style_Light/preview.png) ### Rippedcasts ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Rippedcasts/preview.png) ### Royal ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Royal/preview.png) ### Seafoam Pastel ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Seafoam_Pastel/preview.png) ### SeaShells ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SeaShells/preview.png) ### Seti ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Seti/preview.png) ### Shaman ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Shaman/preview.png) ### Slate ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Slate/preview.png) ### Smyck ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Smyck/preview.png) ### snazzy ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/snazzy/preview.png) ### SoftServer ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SoftServer/preview.png) ### Solarized Darcula ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Darcula/preview.png) ### Solarized Dark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Dark/preview.png) ### Solarized Dark Higher Contrast ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Dark_Higher_Contrast/preview.png) ### Solarized Dark - Patched ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Dark_-_Patched/preview.png) ### Solarized Light ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Light/preview.png) ### Source Code X ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Source_Code_X/preview.png) ### Spacedust ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Spacedust/preview.png) ### SpaceGray ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SpaceGray/preview.png) ### SpaceGray Eighties ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SpaceGray_Eighties/preview.png) ### SpaceGray Eighties Dull ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SpaceGray_Eighties_Dull/preview.png) ### Spiderman ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Spiderman/preview.png) ### Spring ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Spring/preview.png) ### Square ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Square/preview.png) ### Sundried ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Sundried/preview.png) ### Symfonic ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Symfonic/preview.png) ### Tango Dark ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tango_Dark/preview.png) ### Tango Light ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tango_Light/preview.png) ### Teerb ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Teerb/preview.png) ### Thayer Bright ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Thayer_Bright/preview.png) ### The Hulk ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/The_Hulk/preview.png) ### Tomorrow ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow/preview.png) ### Tomorrow Night ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night/preview.png) ### Tomorrow Night Blue ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night_Blue/preview.png) ### Tomorrow Night Bright ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night_Bright/preview.png) ### Tomorrow Night Eighties ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night_Eighties/preview.png) ### ToyChest ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ToyChest/preview.png) ### Treehouse ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Treehouse/preview.png) ### Twilight ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Twilight/preview.png) ### Ubuntu ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ubuntu/preview.png) ### Urple ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Urple/preview.png) ### Vaughn ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Vaughn/preview.png) ### VibrantInk ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/VibrantInk/preview.png) ### WarmNeon ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/WarmNeon/preview.png) ### Wez ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Wez/preview.png) ### WildCherry ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/WildCherry/preview.png) ### Wombat ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Wombat/preview.png) ### Wryan ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Wryan/preview.png) ### Zenburn ![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Zenburn/preview.png) ## Contributors Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Anthony Scopatz
📖
RCKT
😻
varmanishant
😻
Rasmus Lerdorf
🐛 🤔
Luflosi
🛠️ 💬 📖
Connor Holyday
🛠️
BlueDrink9
🐛
Anders Brujordet
😻
Rajesh Rajendran
🛠️
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! ================================================ FILE: .config/kitty/kitty-themes/themes/3024_Day.conf ================================================ background #f7f7f7 foreground #494542 cursor #494542 selection_background #a4a1a1 color0 #090200 color8 #5b5754 color1 #da2c20 color9 #e8bacf color2 #00a152 color10 #3a3332 color3 #fcec02 color11 #494542 color4 #00a0e4 color12 #7f7c7b color5 #a06994 color13 #d6d4d3 color6 #b5e4f4 color14 #ccab53 color7 #a4a1a1 color15 #f7f7f7 selection_foreground #f7f7f7 ================================================ FILE: .config/kitty/kitty-themes/themes/3024_Night.conf ================================================ background #090200 foreground #a4a1a1 cursor #a4a1a1 selection_background #494542 color0 #090200 color8 #5b5754 color1 #da2c20 color9 #e8bacf color2 #00a152 color10 #3a3332 color3 #fcec02 color11 #494542 color4 #00a0e4 color12 #7f7c7b color5 #a06994 color13 #d6d4d3 color6 #b5e4f4 color14 #ccab53 color7 #a4a1a1 color15 #f7f7f7 selection_foreground #090200 ================================================ FILE: .config/kitty/kitty-themes/themes/AdventureTime.conf ================================================ background #1e1c44 foreground #f8dbc0 cursor #eebf37 selection_background #6f6a4e color0 #050404 color8 #4e7bbf color1 #bc0013 color9 #fc5e59 color2 #49b117 color10 #9dff6e color3 #e6741d color11 #efc11a color4 #0f49c6 color12 #1896c6 color5 #665992 color13 #9a5952 color6 #6fa497 color14 #c8f9f3 color7 #f8dbc0 color15 #f5f4fb selection_foreground #1e1c44 ================================================ FILE: .config/kitty/kitty-themes/themes/Afterglow.conf ================================================ background #202020 foreground #d0d0d0 cursor #d0d0d0 selection_background #303030 color0 #151515 color8 #505050 color1 #ac4142 color9 #ac4142 color2 #7e8d50 color10 #7e8d50 color3 #e5b566 color11 #e5b566 color4 #6c99ba color12 #6c99ba color5 #9e4e85 color13 #9e4e85 color6 #7dd5cf color14 #7dd5cf color7 #d0d0d0 color15 #f5f5f5 selection_foreground #202020 ================================================ FILE: .config/kitty/kitty-themes/themes/AlienBlood.conf ================================================ background #0f160f foreground #637d75 cursor #73f990 selection_background #1d4025 color0 #112615 color8 #3c4711 color1 #7f2b26 color9 #df8008 color2 #2f7e25 color10 #18e000 color3 #707f23 color11 #bde000 color4 #2f697f color12 #00a9df color5 #47577e color13 #0058df color6 #317f76 color14 #00dfc3 color7 #647d75 color15 #73f990 selection_foreground #0f160f ================================================ FILE: .config/kitty/kitty-themes/themes/Alucard.conf ================================================ background #222330 foreground #cef3ff cursor #ffffff selection_background #44475a color0 #000000 color8 #545454 color1 #ff5555 color9 #ff5454 color2 #fa0074 color10 #50fa7b color3 #7f0a1f color11 #f0fa8b color4 #3282ff color12 #1200f8 color5 #1b3cff color13 #ff78c5 color6 #0037fc color14 #8ae9fc color7 #bbbbbb color15 #ffffff selection_foreground #222330 ================================================ FILE: .config/kitty/kitty-themes/themes/Apprentice.conf ================================================ # Apprentice by Romain Lafourcade, https://github.com/romainl # This work is licensed under the terms of the MIT license. # For a copy, see https://opensource.org/licenses/MIT. cursor #c7c7c7 cursor_text_color #feffff selection_foreground #3e3e3e selection_background #c1ddff foreground #c8c8c8 background #323232 color0 #252525 color8 #555555 color1 #be7472 color9 #ff9900 color2 #709772 color10 #97bb98 color3 #989772 color11 #fefdbc color4 #7199bc color12 #9fbdde color5 #727399 color13 #989abc color6 #719899 color14 #6fbbbc color7 #7f7f7f color15 #feffff ================================================ FILE: .config/kitty/kitty-themes/themes/Argonaut.conf ================================================ background #0d0f18 foreground #fffaf3 cursor #ff0017 selection_background #002a3a color0 #222222 color8 #444444 color1 #ff000f color9 #ff273f color2 #8ce00a color10 #abe05a color3 #ffb900 color11 #ffd141 color4 #008df8 color12 #0092ff color5 #6c43a5 color13 #9a5feb color6 #00d7eb color14 #67ffef color7 #ffffff color15 #ffffff selection_foreground #0d0f18 ================================================ FILE: .config/kitty/kitty-themes/themes/Arthur.conf ================================================ background #1c1c1c foreground #ddeedd cursor #e2bbef selection_background #4d4d4d color0 #3d352a color8 #554444 color1 #cd5c5c color9 #cc5533 color2 #86af80 color10 #88aa22 color3 #e8ae5b color11 #ffa75d color4 #6495ed color12 #87ceeb color5 #deb887 color13 #996600 color6 #b0c4de color14 #b0c4de color7 #bbaa99 color15 #ddccbb selection_foreground #1c1c1c ================================================ FILE: .config/kitty/kitty-themes/themes/AtelierSulphurpool.conf ================================================ background #202745 foreground #969cb3 cursor #969cb3 selection_background #5e6686 color0 #202745 color8 #6a7394 color1 #c84821 color9 #c76a28 color2 #ab9639 color10 #283256 color3 #c08a2f color11 #5e6686 color4 #3d8ed0 color12 #898ea3 color5 #6678cc color13 #dee1f0 color6 #21a1c8 color14 #9c6279 color7 #969cb3 color15 #f4f7ff selection_foreground #202745 ================================================ FILE: .config/kitty/kitty-themes/themes/Atom.conf ================================================ background #161718 foreground #c4c8c5 cursor #d0d0d0 selection_background #444444 color0 #000000 color8 #000000 color1 #fc5ef0 color9 #fc5ef0 color2 #86c38a color10 #94f936 color3 #ffd6b1 color11 #f5ffa7 color4 #85befd color12 #95cbfe color5 #b9b5fc color13 #b9b5fc color6 #85befd color14 #85befd color7 #dfdfdf color15 #dfdfdf selection_foreground #161718 ================================================ FILE: .config/kitty/kitty-themes/themes/AtomOneLight.conf ================================================ background #f8f8f8 foreground #2a2b33 cursor #bbbbbb selection_background #ececec color0 #000000 color8 #000000 color1 #de3d35 color9 #de3d35 color2 #3e953a color10 #3e953a color3 #d2b67b color11 #d2b67b color4 #2f5af3 color12 #2f5af3 color5 #950095 color13 #a00095 color6 #3e953a color14 #3e953a color7 #bbbbbb color15 #ffffff selection_foreground #f8f8f8 ================================================ FILE: .config/kitty/kitty-themes/themes/Batman.conf ================================================ background #1b1d1e foreground #6e6e6e cursor #fcee0b selection_background #4d4f4c color0 #1b1d1e color8 #505354 color1 #e6db43 color9 #fff68d color2 #c8be46 color10 #fff27c color3 #f3fd21 color11 #feed6c color4 #737074 color12 #909495 color5 #737271 color13 #9a999d color6 #615f5e color14 #a2a2a5 color7 #c5c5be color15 #dadad5 selection_foreground #1b1d1e ================================================ FILE: .config/kitty/kitty-themes/themes/Belafonte_Day.conf ================================================ background #d4ccb9 foreground #45363b cursor #45363b selection_background #958b83 color0 #20111a color8 #5e5252 color1 #bd100d color9 #bd100d color2 #858062 color10 #858062 color3 #e9a448 color11 #e9a448 color4 #416978 color12 #416978 color5 #96522b color13 #96522b color6 #98999c color14 #98999c color7 #958b83 color15 #d4ccb9 selection_foreground #d4ccb9 ================================================ FILE: .config/kitty/kitty-themes/themes/Belafonte_Night.conf ================================================ background #20111a foreground #958b83 cursor #958b83 selection_background #45363b color0 #20111a color8 #5e5252 color1 #bd100d color9 #bd100d color2 #858062 color10 #858062 color3 #e9a448 color11 #e9a448 color4 #416978 color12 #416978 color5 #96522b color13 #96522b color6 #98999c color14 #98999c color7 #958b83 color15 #d4ccb9 selection_foreground #20111a ================================================ FILE: .config/kitty/kitty-themes/themes/BirdsOfParadise.conf ================================================ background #2a1e1d foreground #dfdab7 cursor #573d25 selection_background #563c27 color0 #573d25 color8 #9a6b49 color1 #be2d26 color9 #e84526 color2 #6ba08a color10 #94d7ba color3 #e99c29 color11 #d0d04f color4 #5a86ac color12 #b8d3ed color5 #ab80a6 color13 #d09dca color6 #74a5ac color14 #92ced6 color7 #dfdab7 color15 #fff9d4 selection_foreground #2a1e1d ================================================ FILE: .config/kitty/kitty-themes/themes/Blazer.conf ================================================ background #0d1925 foreground #d9e5f1 cursor #d9e5f1 color0 #000000 color8 #252525 color1 #b87979 color9 #dabdbd color2 #79b879 color10 #bddabd color3 #b8b879 color11 #dadabd color4 #7979b8 color12 #bdbdda color5 #b879b8 color13 #dabdda color6 #79b8b8 color14 #bddada color7 #d9d9d9 color15 #ffffff selection_foreground #0d1925 selection_background #d9e6f2 ================================================ FILE: .config/kitty/kitty-themes/themes/Borland.conf ================================================ background #0000a3 foreground #ffff4d cursor #ffa460 selection_background #a3a3a3 color0 #4e4e4e color8 #7c7c7c color1 #ff6b60 color9 #ffb6b0 color2 #a7ff60 color10 #ceffab color3 #ffffb6 color11 #ffffcb color4 #96cafd color12 #b5dcfe color5 #ff73fd color13 #ff9cfe color6 #c6c4fd color14 #dfdffe color7 #eeeeee color15 #ffffff selection_foreground #0000a3 ================================================ FILE: .config/kitty/kitty-themes/themes/Bright_Lights.conf ================================================ background #191919 foreground #b2c8d6 cursor #f34a00 selection_background #b2c8d6 color0 #191919 color8 #191919 color1 #ff355b color9 #ff355b color2 #b6e875 color10 #b6e875 color3 #ffc150 color11 #ffc150 color4 #75d3ff color12 #75d4ff color5 #b975e6 color13 #b975e6 color6 #6cbeb5 color14 #6cbeb5 color7 #c1c8d6 color15 #c1c8d6 selection_foreground #191919 ================================================ FILE: .config/kitty/kitty-themes/themes/Broadcast.conf ================================================ background #2b2b2b foreground #e5e1db cursor #ffffff selection_background #5a637e color0 #000000 color8 #323232 color1 #da4839 color9 #ff7b6a color2 #509f50 color10 #83d082 color3 #ffd249 color11 #ffff7b color4 #6d9cbd color12 #9fcef0 color5 #cfcfff color13 #ffffff color6 #6d9cbd color14 #a0cef0 color7 #ffffff color15 #ffffff selection_foreground #2b2b2b ================================================ FILE: .config/kitty/kitty-themes/themes/Brogrammer.conf ================================================ background #131313 foreground #d6dae4 cursor #b9b9b9 selection_background #1f1f1f color0 #1f1f1f color8 #d6dae4 color1 #f71118 color9 #de342e color2 #2cc55d color10 #1dd260 color3 #ecb90f color11 #f2bd09 color4 #2a84d2 color12 #0f80d5 color5 #4e59b7 color13 #524fb9 color6 #0f80d5 color14 #0f7cda color7 #d6dae4 color15 #ffffff selection_foreground #131313 ================================================ FILE: .config/kitty/kitty-themes/themes/C64.conf ================================================ background #40318d foreground #7869c4 cursor #7869c4 selection_background #7869c4 color0 #090300 color8 #000000 color1 #883932 color9 #883932 color2 #55a049 color10 #55a049 color3 #bfce72 color11 #bfce72 color4 #40318d color12 #40318d color5 #8b3f96 color13 #8a3e95 color6 #67b6bd color14 #67b6bd color7 #ffffff color15 #f7f7f7 selection_foreground #40318d ================================================ FILE: .config/kitty/kitty-themes/themes/CLRS.conf ================================================ background #ffffff foreground #262626 cursor #6fd2fc selection_background #6fd2fc color0 #000000 color8 #545753 color1 #f72729 color9 #fb0416 color2 #32895c color10 #2cc631 color3 #f96f1c color11 #fcd627 color4 #125ccf color12 #156ffe color5 #9f00bc color13 #e800b0 color6 #32c2c0 color14 #39d5ce color7 #b2b2b2 color15 #ededec selection_foreground #ffffff ================================================ FILE: .config/kitty/kitty-themes/themes/Chalk.conf ================================================ background #2b2c2e foreground #d2d8d9 cursor #708183 selection_background #e3e8ed color0 #7c8a8f color8 #888888 color1 #b23a51 color9 #f24840 color2 #789a69 color10 #80c46f color3 #b9ab4a color11 #ffeb62 color4 #2a7fac color12 #4095ff color5 #bc4f5a color13 #fb5175 color6 #44a799 color14 #52ccbd color7 #d2d8d9 color15 #d2d8d9 selection_foreground #2b2c2e ================================================ FILE: .config/kitty/kitty-themes/themes/Chalkboard.conf ================================================ background #29262f foreground #d9e6f2 cursor #d9e6f2 selection_background #073642 color0 #000000 color8 #323232 color1 #c37372 color9 #dbaaaa color2 #72c373 color10 #aadbaa color3 #c2c372 color11 #dadbaa color4 #7372c3 color12 #aaaadb color5 #c372c2 color13 #dbaada color6 #72c2c3 color14 #aadadb color7 #d9d9d9 color15 #ffffff selection_foreground #29262f ================================================ FILE: .config/kitty/kitty-themes/themes/Ciapre.conf ================================================ background #181c27 foreground #ada37a cursor #91805a selection_background #172539 color0 #181818 color8 #555555 color1 #800009 color9 #ab3834 color2 #48513b color10 #a6a65d color3 #cc8a3e color11 #dcde7b color4 #566d8c color12 #2f97c6 color5 #724c7c color13 #d33060 color6 #5b4f4a color14 #f3dab1 color7 #ada37e color15 #f3f3f3 selection_foreground #181c27 ================================================ FILE: .config/kitty/kitty-themes/themes/Cobalt2.conf ================================================ background #122637 foreground #ffffff cursor #f0cb09 selection_background #18344f color0 #000000 color8 #545454 color1 #ff0000 color9 #f40d17 color2 #37dd21 color10 #3bcf1d color3 #fee409 color11 #ecc809 color4 #1460d2 color12 #5555ff color5 #ff005d color13 #ff55ff color6 #00bbbb color14 #6ae3f9 color7 #bbbbbb color15 #ffffff selection_foreground #122637 ================================================ FILE: .config/kitty/kitty-themes/themes/Cobalt_Neon.conf ================================================ background #142838 foreground #8ff586 cursor #c4206f selection_background #084fb0 color0 #142630 color8 #fff688 color1 #ff2320 color9 #d4312e color2 #3aa5ff color10 #8ff586 color3 #e9e75c color11 #e9f06d color4 #8ff586 color12 #3c7dd2 color5 #781aa0 color13 #8230a7 color6 #8ff586 color14 #6cbc67 color7 #ba45b1 color15 #8ff586 selection_foreground #142838 ================================================ FILE: .config/kitty/kitty-themes/themes/CrayonPonyFish.conf ================================================ background #140607 foreground #685259 cursor #685259 selection_background #2a1a1c color0 #2a1a1c color8 #3c2a2e color1 #90002a color9 #c5245c color2 #579523 color10 #8dff56 color3 #aa301b color11 #c7371d color4 #8b87af color12 #cfc9ff color5 #682e50 color13 #fb6cb9 color6 #e8a766 color14 #ffceae color7 #685259 color15 #af949d selection_foreground #140607 ================================================ FILE: .config/kitty/kitty-themes/themes/Dark_Pastel.conf ================================================ background #000000 foreground #ffffff cursor #bbbbbb selection_background #b5d5ff color0 #000000 color8 #545454 color1 #ff5555 color9 #ff5555 color2 #55ff55 color10 #55ff55 color3 #ffff55 color11 #ffff55 color4 #5555ff color12 #5555ff color5 #ff55ff color13 #ff55ff color6 #55ffff color14 #55ffff color7 #bbbbbb color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Darkside.conf ================================================ background #212324 foreground #b9b9b9 cursor #bbbbbb selection_background #2f3333 color0 #000000 color8 #000000 color1 #e8331c color9 #df5a4f color2 #68c156 color10 #76b768 color3 #f1d32b color11 #eed64a color4 #1c98e8 color12 #387bd2 color5 #8e69c8 color13 #957bbd color6 #1c98e8 color14 #3d96e2 color7 #b9b9b9 color15 #b9b9b9 selection_foreground #212324 ================================================ FILE: .config/kitty/kitty-themes/themes/Desert.conf ================================================ background #333333 foreground #ffffff cursor #00ff00 selection_background #b5d5ff color0 #4d4d4d color8 #545454 color1 #ff2b2b color9 #ff5555 color2 #98fb98 color10 #55ff55 color3 #f0e68c color11 #ffff55 color4 #cd853f color12 #87ceff color5 #ffdead color13 #ff55ff color6 #ffa0a0 color14 #ffd700 color7 #f5deb3 color15 #ffffff selection_foreground #333333 ================================================ FILE: .config/kitty/kitty-themes/themes/DimmedMonokai.conf ================================================ background #1e1e1e foreground #b8bcb9 cursor #f83d19 selection_background #292c31 color0 #3a3c43 color8 #888987 color1 #be3e48 color9 #fb001e color2 #869a3a color10 #0e712e color3 #c4a535 color11 #c37033 color4 #4e76a1 color12 #176ce3 color5 #855b8d color13 #fb0067 color6 #568ea3 color14 #2d6f6c color7 #b8bcb9 color15 #fcffb8 selection_foreground #1e1e1e ================================================ FILE: .config/kitty/kitty-themes/themes/DotGov.conf ================================================ background #252b35 foreground #eaeaea cursor #d9002f selection_background #194080 color0 #181818 color8 #181818 color1 #bf081d color9 #bf081d color2 #3d9751 color10 #3d9751 color3 #f6bb33 color11 #f6bb33 color4 #16b1df color12 #16b1df color5 #772fb0 color13 #772fb0 color6 #8bd1ed color14 #8bd1ed color7 #ffffff color15 #ffffff selection_foreground #252b35 ================================================ FILE: .config/kitty/kitty-themes/themes/Dracula.conf ================================================ background #1e1f28 foreground #f8f8f2 cursor #bbbbbb selection_background #44475a color0 #000000 color8 #545454 color1 #ff5555 color9 #ff5454 color2 #50fa7b color10 #50fa7b color3 #f0fa8b color11 #f0fa8b color4 #bd92f8 color12 #bd92f8 color5 #ff78c5 color13 #ff78c5 color6 #8ae9fc color14 #8ae9fc color7 #bbbbbb color15 #ffffff selection_foreground #1e1f28 ================================================ FILE: .config/kitty/kitty-themes/themes/Dumbledore.conf ================================================ background #422553 foreground #c4c8c5 cursor #c4c8c5 selection_background #008aff color0 #2b283d color8 #413e53 color1 #ae0000 color9 #d3a624 color2 #3e7c54 color10 #aaaaaa color3 #f0c75e color11 #716254 color4 #415baf color12 #946a2c color5 #9445ae color13 #b294ba color6 #008aff color14 #25de50 color7 #850000 color15 #c9c9c9 selection_foreground #422553 ================================================ FILE: .config/kitty/kitty-themes/themes/Duotone_Dark.conf ================================================ background #1f1c27 foreground #b6a0ff cursor #ff9738 selection_background #353146 color0 #1f1c27 color8 #353146 color1 #d8393d color9 #d8393d color2 #2dcc72 color10 #2dcc72 color3 #d8b76e color11 #d8b76e color4 #ffc183 color12 #ffc183 color5 #dd8d40 color13 #dd8d40 color6 #2388ff color14 #2388ff color7 #b6a0ff color15 #e9e4ff selection_foreground #1f1c27 ================================================ FILE: .config/kitty/kitty-themes/themes/ENCOM.conf ================================================ background #000000 foreground #00a595 cursor #bbbbbb selection_background #00a48c color0 #000000 color8 #545454 color1 #9f0000 color9 #ff0000 color2 #008b00 color10 #00ee00 color3 #ffcf00 color11 #ffff00 color4 #0081ff color12 #0000ff color5 #bc00ca color13 #ff00ff color6 #008b8b color14 #00cdcd color7 #bbbbbb color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Earthsong.conf ================================================ background #282420 foreground #e5c6a8 cursor #f6f6ec selection_background #111417 color0 #111417 color8 #665e54 color1 #c84134 color9 #ff6459 color2 #84c44b color10 #97e035 color3 #f4ae2e color11 #dfd561 color4 #1397b9 color12 #5ed9ff color5 #d0623c color13 #ff9168 color6 #4f9452 color14 #83ef88 color7 #e5c5a9 color15 #f6f6ec selection_foreground #282420 ================================================ FILE: .config/kitty/kitty-themes/themes/Elemental.conf ================================================ background #21211c foreground #807973 cursor #facb7f selection_background #403729 color0 #3c3b30 color8 #545444 color1 #97280f color9 #df502a color2 #479942 color10 #60e06f color3 #7f7110 color11 #d69827 color4 #497f7d color12 #78d8d8 color5 #7e4e2e color13 #cd7c53 color6 #387f58 color14 #58d598 color7 #807974 color15 #fff1e8 selection_foreground #21211c ================================================ FILE: .config/kitty/kitty-themes/themes/Espresso.conf ================================================ # Theme ported from the Mac Terminal application. background #323232 foreground #ffffff cursor #d6d6d6 selection_background #5b5b5b selection_foreground #323232 color0 #353535 color8 #535353 color1 #d25252 color9 #f00c0c color2 #a4c161 color10 #c1df74 color3 #ffc56d color11 #e1e48a color4 #6c99ba color12 #8ab6d9 color5 #d096d9 color13 #efb5f7 color6 #bdd6ff color14 #dbf4ff color7 #ededec color15 #ffffff active_tab_foreground #ffffff active_tab_background #535353 inactive_tab_foreground #ffffff inactive_tab_background #353535 ================================================ FILE: .config/kitty/kitty-themes/themes/Espresso_Libre.conf ================================================ background #2a211c foreground #b8a898 cursor #ffffff selection_background #c3dcff color0 #000000 color8 #545753 color1 #cc0000 color9 #ef2828 color2 #1a921c color10 #9aff87 color3 #efe43a color11 #fffa5c color4 #0066ff color12 #43a8ed color5 #c5656b color13 #ff8089 color6 #05989a color14 #34e2e2 color7 #d3d7cf color15 #ededec selection_foreground #2a211c ================================================ FILE: .config/kitty/kitty-themes/themes/Fideloper.conf ================================================ background #282f32 foreground #dad9df cursor #d35f5a selection_background #eeb7ab color0 #282f32 color8 #092027 color1 #ca1d2c color9 #d35f5a color2 #edb7ab color10 #d35f5a color3 #b7aa9a color11 #a86571 color4 #2e78c1 color12 #7c84c4 color5 #c0226e color13 #5b5db2 color6 #309185 color14 #81908f color7 #e9e2cd color15 #fcf4de selection_foreground #282f32 ================================================ FILE: .config/kitty/kitty-themes/themes/FishTank.conf ================================================ background #222436 foreground #eceffd cursor #fdcd5e selection_background #fcf6e8 color0 #03063c color8 #6c5a30 color1 #c60049 color9 #d94a8a color2 #abf157 color10 #daffa8 color3 #fdcd5e color11 #fee6a8 color4 #525fb8 color12 #b1bdf9 color5 #976f81 color13 #fda4cc color6 #968662 color14 #a4bc86 color7 #eceffc color15 #f6ffec selection_foreground #222436 ================================================ FILE: .config/kitty/kitty-themes/themes/Flat.conf ================================================ background #002240 foreground #2bc45d cursor #e5bd0c selection_background #782b9c color0 #212c3e color8 #202b3b color1 #a72320 color9 #d3302e color2 #32a448 color10 #2c9440 color3 #e58d11 color11 #e5bd0c color4 #3066ab color12 #3b7cd2 color5 #7819a0 color13 #822fa7 color6 #2b9270 color14 #35b286 color7 #afb6b9 color15 #e6ecec selection_foreground #002240 ================================================ FILE: .config/kitty/kitty-themes/themes/Flatland.conf ================================================ background #1c1e20 foreground #b8daee cursor #708183 selection_background #2a2a24 color0 #1c1d19 color8 #1c1d19 color1 #f18238 color9 #d12a24 color2 #9ed264 color10 #a7d32c color3 #f3ef6d color11 #ff8948 color4 #4f96be color12 #61b8d0 color5 #695abb color13 #695abb color6 #d53864 color14 #d53864 color7 #fefffe color15 #fefffe selection_foreground #1c1e20 ================================================ FILE: .config/kitty/kitty-themes/themes/Floraverse.conf ================================================ background #0e0c15 foreground #dbd0b9 cursor #bbbbbb selection_background #f3e0b8 color0 #08002e color8 #331d4c color1 #64002c color9 #cf2062 color2 #5d731a color10 #b3ce58 color3 #cd751c color11 #fac357 color4 #1d6da1 color12 #40a4cf color5 #b7077e color13 #f02aae color6 #42a38c color14 #62caa8 color7 #f3e0b8 color15 #fff5db selection_foreground #0e0c15 ================================================ FILE: .config/kitty/kitty-themes/themes/FrontEndDelight.conf ================================================ background #1b1b1d foreground #acacac cursor #cccccc selection_background #e96153 color0 #242426 color8 #5eac6c color1 #f8501a color9 #f64319 color2 #565746 color10 #74eb4c color3 #f9761d color11 #fcc224 color4 #2c70b7 color12 #3393c9 color5 #f02d4e color13 #e75e4e color6 #3ba0a5 color14 #4ebce5 color7 #acacac color15 #8b735a selection_foreground #1b1b1d ================================================ FILE: .config/kitty/kitty-themes/themes/FunForrest.conf ================================================ background #241200 foreground #ddc165 cursor #e5591c selection_background #e5591c color0 #000000 color8 #7e6954 color1 #d5252b color9 #e4591b color2 #909b00 color10 #bfc659 color3 #bd8a13 color11 #ffca1b color4 #4698a2 color12 #7cc9ce color5 #8c4231 color13 #d16349 color6 #d98112 color14 #e6a96b color7 #ddc165 color15 #ffe9a3 selection_foreground #241200 ================================================ FILE: .config/kitty/kitty-themes/themes/Galaxy.conf ================================================ background #1c2836 foreground #ffffff cursor #bbbbbb selection_background #b4d5ff color0 #000000 color8 #545454 color1 #f9555f color9 #fa8b8e color2 #20af89 color10 #34bb99 color3 #fdf029 color11 #ffff55 color4 #589cf5 color12 #589cf5 color5 #934d95 color13 #e75598 color6 #1e9ee6 color14 #3978bb color7 #bbbbbb color15 #ffffff selection_foreground #1c2836 ================================================ FILE: .config/kitty/kitty-themes/themes/Github.conf ================================================ background #f4f4f4 foreground #3e3e3e cursor #3f3f3f selection_background #a9c1e2 color0 #3e3e3e color8 #666666 color1 #970b16 color9 #de0000 color2 #07962a color10 #87d5a2 color3 #f7edc7 color11 #f0cf06 color4 #003e8a color12 #2e6cba color5 #e94691 color13 #ffa29f color6 #89d1ec color14 #1cfafe color7 #ffffff color15 #ffffff selection_foreground #f4f4f4 ================================================ FILE: .config/kitty/kitty-themes/themes/Glacier.conf ================================================ background #0c1115 foreground #ffffff cursor #6c6c6c selection_background #bd2523 color0 #2e343c color8 #404a55 color1 #bd0f2f color9 #bd0f2f color2 #35a770 color10 #49e998 color3 #fb9435 color11 #fddf6e color4 #1f5872 color12 #2a8bc1 color5 #bd2523 color13 #ea4727 color6 #778397 color14 #a0b6d3 color7 #ffffff color15 #ffffff selection_foreground #0c1115 ================================================ FILE: .config/kitty/kitty-themes/themes/GoaBase.conf ================================================ background #2f0033 foreground #f6ed00 cursor #1a6500 selection_background #100a24 color0 #880041 color8 #411a6d color1 #f78000 color9 #f800e1 color2 #249000 color10 #5743ff color3 #f40000 color11 #ea00d7 color4 #000482 color12 #b90003 color5 #f43bff color13 #9a5952 color6 #3affff color14 #c8f9f3 color7 #000000 color15 #f5f4fb selection_foreground #2f0033 ================================================ FILE: .config/kitty/kitty-themes/themes/Grape.conf ================================================ background #161423 foreground #9e9ea0 cursor #a188f7 selection_background #483d70 color0 #2d283e color8 #58506a color1 #ec2160 color9 #f0719a color2 #1fa91b color10 #52a95d color3 #8ddc1f color11 #b2dc87 color4 #487cf4 color12 #a9bbeb color5 #8c35c8 color13 #ac81c1 color6 #3added color14 #9ce3ea color7 #9e9ea0 color15 #a188f7 selection_foreground #161423 ================================================ FILE: .config/kitty/kitty-themes/themes/Grass.conf ================================================ # Theme ported from the Mac Terminal application. background #12773d foreground #fff0a4 cursor #8b2800 selection_background #b64825 color0 #000000 color8 #545454 color1 #ba0000 color9 #ba0000 color2 #00ba00 color10 #00ba00 color3 #e6af00 color11 #e6af00 color4 #0000a3 color12 #0000ba color5 #950062 color13 #ff54ff color6 #00baba color14 #54ffff color7 #bababa color15 #ffffff selection_foreground #12773d ================================================ FILE: .config/kitty/kitty-themes/themes/Hardcore.conf ================================================ background #121212 foreground #a0a0a0 cursor #bbbbbb selection_background #453a39 color0 #1b1d1e color8 #505354 color1 #f92672 color9 #ff669d color2 #a6e22e color10 #beed5f color3 #fd971f color11 #e6db74 color4 #66d9ef color12 #66d9ef color5 #9e6ffe color13 #9e6ffe color6 #5e7175 color14 #a3babf color7 #ccccc6 color15 #f8f8f2 selection_foreground #121212 ================================================ FILE: .config/kitty/kitty-themes/themes/Harper.conf ================================================ background #000000 foreground #a7a39c cursor #a7a39c selection_background #5a5753 color0 #000000 color8 #716d69 color1 #f7b63e color9 #f7b63e color2 #7fb5e1 color10 #7fb5e1 color3 #d6da24 color11 #d6da24 color4 #489d48 color12 #489d48 color5 #b295c5 color13 #b295c5 color6 #f4bed6 color14 #f4bed6 color7 #a7a39c color15 #fefbe9 selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Highway.conf ================================================ background #212224 foreground #ededed cursor #dfd9b8 selection_background #384563 color0 #000000 color8 #5c4f49 color1 #cf0d17 color9 #ef7d17 color2 #128033 color10 #b1d130 color3 #ffca3d color11 #fff11f color4 #006ab3 color12 #4fc2fd color5 #6a2674 color13 #de0070 color6 #384563 color14 #5c4f49 color7 #ededed color15 #fefffe selection_foreground #212224 ================================================ FILE: .config/kitty/kitty-themes/themes/Hipster_Green.conf ================================================ background #0f0a05 foreground #84c137 cursor #23ff18 selection_background #083905 color0 #000000 color8 #666666 color1 #b6204a color9 #e50000 color2 #00a600 color10 #86a83e color3 #bebe00 color11 #e5e500 color4 #246db2 color12 #0000ff color5 #b200b2 color13 #e500e5 color6 #00a6b2 color14 #00e5e5 color7 #bfbfbf color15 #e5e5e5 selection_foreground #0f0a05 ================================================ FILE: .config/kitty/kitty-themes/themes/Homebrew.conf ================================================ # Theme ported from the Mac Terminal application. background #000000 foreground #00ff00 cursor #23ff18 selection_background #083905 color0 #000000 color8 #666666 color1 #990000 color9 #e50000 color2 #00a600 color10 #00d900 color3 #999900 color11 #e5e500 color4 #0000b2 color12 #0000ff color5 #b200b2 color13 #e500e5 color6 #00a6b2 color14 #00e5e5 color7 #bebebe color15 #e5e5e5 selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Hurtado.conf ================================================ background #000000 foreground #dadbda cursor #bbbbbb selection_background #b4d5ff color0 #575757 color8 #252525 color1 #ff1b00 color9 #d41c00 color2 #a5df55 color10 #a5df55 color3 #fbe74a color11 #fbe749 color4 #486387 color12 #89bdff color5 #fc5ef0 color13 #bf00c0 color6 #85e9fe color14 #85e9fe color7 #cbcbcb color15 #dbdbdb selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Hybrid.conf ================================================ background #161718 foreground #b7bcb9 cursor #b7bcb9 selection_background #1e1f22 color0 #2a2e33 color8 #1d1e21 color1 #b74d50 color9 #8c2d32 color2 #b3be5a color10 #788331 color3 #e3b55e color11 #e5894f color4 #6d90b0 color12 #4b6b88 color5 #a07eab color13 #6e4f79 color6 #7fbeb3 color14 #4d7b73 color7 #b5b8b6 color15 #5a6169 selection_foreground #161718 ================================================ FILE: .config/kitty/kitty-themes/themes/IC_Green_PPL.conf ================================================ background #3a3c3e foreground #d9eed2 cursor #41ff58 selection_background #2a9b34 color0 #1e1e1e color8 #03260f color1 #fb0029 color9 #a6ff3e color2 #329b24 color10 #9fff6d color3 #649a25 color11 #d1ff6d color4 #149b45 color12 #72ffb5 color5 #53b82b color13 #50ff3d color6 #2bb767 color14 #22ff71 color7 #dffeee color15 #daeed0 selection_foreground #3a3c3e ================================================ FILE: .config/kitty/kitty-themes/themes/IC_Orange_PPL.conf ================================================ background #262626 foreground #ffcb83 cursor #fb521c selection_background #c03f1f color0 #000000 color8 #6a4e29 color1 #c03900 color9 #ff8b67 color2 #a3a900 color10 #f6ff3f color3 #caae00 color11 #ffe36e color4 #bd6c00 color12 #ffbd54 color5 #fb5d00 color13 #fc874f color6 #f79400 color14 #c59752 color7 #ffc88a color15 #f9f9fe selection_foreground #262626 ================================================ FILE: .config/kitty/kitty-themes/themes/IR_Black.conf ================================================ background #000000 foreground #f1f1f1 cursor #7f7f7f selection_background #b4d5ff color0 #4f4f4f color8 #7b7b7b color1 #fa6c5f color9 #fcb6af color2 #a8fe60 color10 #ceffab color3 #fffeb6 color11 #fffecc color4 #96cafd color12 #b5dcfe color5 #fa72fc color13 #fb9bfe color6 #c6c4fd color14 #dfdffd color7 #eeedee color15 #fefffe selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Jackie_Brown.conf ================================================ background #2c1c15 foreground #ffcc2f cursor #23ff18 selection_background #ae8c20 color0 #2c1d16 color8 #666666 color1 #ef5734 color9 #e50000 color2 #2baf2b color10 #86a83e color3 #bdbe00 color11 #e5e500 color4 #246db2 color12 #0000ff color5 #cf5ec0 color13 #e500e5 color6 #00acee color14 #00e5e5 color7 #bfbfbf color15 #e5e5e5 selection_foreground #2c1c15 ================================================ FILE: .config/kitty/kitty-themes/themes/Japanesque.conf ================================================ background #1d1d1d foreground #f7f6ec cursor #eccf4f selection_background #165776 color0 #343835 color8 #585a58 color1 #ce3e60 color9 #d18ea6 color2 #7bb75b color10 #767e2b color3 #e8b32a color11 #77592e color4 #4c99d3 color12 #135879 color5 #a57fc4 color13 #5f4190 color6 #389aac color14 #76bbca color7 #f9faf6 color15 #b1b5ae selection_foreground #1d1d1d ================================================ FILE: .config/kitty/kitty-themes/themes/Jellybeans.conf ================================================ background #111111 foreground #dedede cursor #ffa460 selection_background #464d91 color0 #919191 color8 #bdbdbd color1 #e17373 color9 #ffa0a0 color2 #94b978 color10 #bddeab color3 #ffb97b color11 #ffdba0 color4 #96bddb color12 #b1d7f6 color5 #e1c0fa color13 #fbdaff color6 #00988e color14 #19b2a7 color7 #dedede color15 #ffffff selection_foreground #111111 ================================================ FILE: .config/kitty/kitty-themes/themes/JetBrains_Darcula.conf ================================================ background #202020 foreground #adadad cursor #ffffff selection_background #1a3272 color0 #000000 color8 #545454 color1 #fa5355 color9 #fb7172 color2 #126e00 color10 #67ff4f color3 #c2c300 color11 #ffff00 color4 #4581eb color12 #6d9df1 color5 #fa54ff color13 #fb82ff color6 #33c2c1 color14 #60d3d1 color7 #adadad color15 #eeeeee selection_foreground #202020 ================================================ FILE: .config/kitty/kitty-themes/themes/Kibble.conf ================================================ background #0e100a foreground #f7f7f7 cursor #9fda9c selection_background #9ba686 color0 #4d4d4d color8 #5a5a5a color1 #c70031 color9 #f01578 color2 #29cf13 color10 #6ce05c color3 #d8e30e color11 #f3f79e color4 #3449d1 color12 #97a4f7 color5 #8400ff color13 #c495f0 color6 #0798ab color14 #68f2e0 color7 #e2d1e3 color15 #ffffff selection_foreground #0e100a ================================================ FILE: .config/kitty/kitty-themes/themes/Later_This_Evening.conf ================================================ background #212121 foreground #949494 cursor #424242 selection_background #424242 color0 #2b2b2b color8 #444747 color1 #d35a5f color9 #d3222e color2 #afba66 color10 #aabb39 color3 #e5d289 color11 #e4bd39 color4 #a0b9d5 color12 #6599d5 color5 #bf92d5 color13 #aa52d5 color6 #91beb6 color14 #5fbfad color7 #3b3c3c color15 #c0c2c2 selection_foreground #212121 ================================================ FILE: .config/kitty/kitty-themes/themes/Lavandula.conf ================================================ background #050014 foreground #736d7c cursor #8b91fa selection_background #36323b color0 #230045 color8 #362c45 color1 #7c1525 color9 #df5066 color2 #337e6f color10 #52e0c4 color3 #7f6f49 color11 #e0c286 color4 #4f4a7f color12 #8e86df color5 #593f7e color13 #a675df color6 #57767f color14 #9ad3df color7 #736d7c color15 #8b91fa selection_foreground #050014 ================================================ FILE: .config/kitty/kitty-themes/themes/LiquidCarbon.conf ================================================ background #2f2f2f foreground #afc2c2 cursor #ffffff selection_background #7cbeff color0 #000000 color8 #000000 color1 #ff2f2f color9 #ff2f2f color2 #549a6f color10 #549a6f color3 #ccac00 color11 #ccac00 color4 #0099cc color12 #0099cc color5 #cc68c8 color13 #cc68c8 color6 #79c4cc color14 #79c4cc color7 #bccccc color15 #bccccc selection_foreground #2f2f2f ================================================ FILE: .config/kitty/kitty-themes/themes/LiquidCarbonTransparent.conf ================================================ background #000000 foreground #afc2c2 cursor #ffffff selection_background #7cbeff color0 #000000 color8 #000000 color1 #ff2f2f color9 #ff2f2f color2 #549a6f color10 #549a6f color3 #ccac00 color11 #ccac00 color4 #0099cc color12 #0099cc color5 #cc68c8 color13 #cc68c8 color6 #79c4cc color14 #79c4cc color7 #bccccc color15 #bccccc selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/LiquidCarbonTransparentInverse.conf ================================================ background #000000 foreground #afc2c2 cursor #ffffff selection_background #7cbeff color0 #bbcbcc color8 #ffffff color1 #ff2f2f color9 #ff2f2f color2 #549a6f color10 #549a6f color3 #ccac00 color11 #ccac00 color4 #0099cc color12 #0099cc color5 #cc68c8 color13 #cc68c8 color6 #79c4cc color14 #79c4cc color7 #000000 color15 #000000 selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Man_Page.conf ================================================ # Theme ported from the Mac Terminal application. background #fef49c foreground #000000 cursor #7f7f7f selection_background #a4c9cd color0 #000000 color8 #666666 color1 #cc0000 color9 #e50000 color2 #00a600 color10 #00d900 color3 #999900 color11 #e5e500 color4 #0000b2 color12 #0000ff color5 #b200b2 color13 #e500e5 color6 #00a6b2 color14 #00e5e5 color7 #cccccc color15 #e5e5e5 selection_foreground #fef49c ================================================ FILE: .config/kitty/kitty-themes/themes/Material.conf ================================================ background #eaeaea foreground #222221 cursor #16aec9 selection_background #c1c1c1 color0 #212121 color8 #424242 color1 #b7141e color9 #e83a3f color2 #457b23 color10 #7aba39 color3 #f5971d color11 #fee92e color4 #134eb2 color12 #53a4f3 color5 #550087 color13 #a94dbb color6 #0e707c color14 #26bad1 color7 #eeeeee color15 #d8d8d8 selection_foreground #eaeaea ================================================ FILE: .config/kitty/kitty-themes/themes/MaterialDark.conf ================================================ background #222221 foreground #e4e4e4 cursor #16aec9 selection_background #dedede color0 #212121 color8 #424242 color1 #b7141e color9 #e83a3f color2 #457b23 color10 #7aba39 color3 #f5971d color11 #fee92e color4 #134eb2 color12 #53a4f3 color5 #550087 color13 #a94dbb color6 #0e707c color14 #26bad1 color7 #eeeeee color15 #d8d8d8 selection_foreground #222221 ================================================ FILE: .config/kitty/kitty-themes/themes/Mathias.conf ================================================ background #000000 foreground #bbbbbb cursor #bbbbbb selection_background #545454 color0 #000000 color8 #545454 color1 #e52222 color9 #ff5555 color2 #a6e32d color10 #55ff55 color3 #fc951e color11 #ffff55 color4 #c48dff color12 #5555ff color5 #fa2573 color13 #ff55ff color6 #67d9f0 color14 #55ffff color7 #f2f2f2 color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Medallion.conf ================================================ background #1d1808 foreground #cac296 cursor #d3b92f selection_background #616cab color0 #000000 color8 #5e5118 color1 #b54c00 color9 #ff9148 color2 #7c8a16 color10 #b1c93a color3 #d2bd25 color11 #ffe449 color4 #606baf color12 #abb8ff color5 #8b5990 color13 #fe9fff color6 #906b25 color14 #ffbb51 color7 #c9c199 color15 #fed597 selection_foreground #1d1808 ================================================ FILE: .config/kitty/kitty-themes/themes/Misterioso.conf ================================================ background #2d3743 foreground #e1e1e0 cursor #000000 selection_background #2d37ff color0 #000000 color8 #545454 color1 #ff4141 color9 #ff3241 color2 #74ae68 color10 #74cc68 color3 #ffac28 color11 #ffb928 color4 #338e86 color12 #23d6d6 color5 #9413e5 color13 #ff37ff color6 #23d6d6 color14 #00ece1 color7 #e1e1df color15 #ffffff selection_foreground #2d3743 ================================================ FILE: .config/kitty/kitty-themes/themes/Molokai.conf ================================================ background #121212 foreground #bbbbbb cursor #bbbbbb selection_background #b4d5ff color0 #121212 color8 #545454 color1 #fa2573 color9 #f5669c color2 #97e123 color10 #b0e05e color3 #dfd460 color11 #fef26c color4 #0f7fcf color12 #00afff color5 #8700ff color13 #af87ff color6 #42a7cf color14 #50cdfe color7 #bbbbbb color15 #ffffff selection_foreground #121212 ================================================ FILE: .config/kitty/kitty-themes/themes/MonaLisa.conf ================================================ background #110b0d foreground #f6d56a cursor #c36c32 selection_background #f6d56a color0 #341a0d color8 #874227 color1 #9b281b color9 #ff4230 color2 #626132 color10 #b3b163 color3 #c26e27 color11 #ff9565 color4 #515b5c color12 #9eb2b3 color5 #9b1d29 color13 #ff5b6a color6 #588056 color14 #89cc8e color7 #f6d75c color15 #ffe597 selection_foreground #110b0d ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai.conf ================================================ # Monokai background #272822 foreground #f8f8f2 cursor #f8f8f2 selection_background #f8f8f2 selection_foreground #272822 active_tab_background #75715e active_tab_foreground #272822 active_border_color #75715e inactive_tab_background #272822 inactive_tab_foreground #75715e inactive_border_color #75715e url_color #f8f8f2 # 16 Color Space # black color0 #272822 color8 #75715e # red color1 #f92672 color9 #f92672 # green color2 #a6e22e color10 #a6e22e # yellow color3 #e6db74 color11 #e6db74 # blue color4 #66d9ef color12 #66d9ef # magenta color5 #fd971f color13 #fd971f # cyan color6 #ae81ff color14 #ae81ff # white color7 #f8f8f2 color15 #f8f8f2 ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Classic.conf ================================================ background #3b3c35 foreground #fdfff1 cursor #fdfff1 cursor_text_color #000000 selection_foreground #3b3c35 selection_background #fdfff1 # dull black color0 #3b3c35 # light black color8 #6e7066 # dull red color1 #f82570 # light red color9 #f82570 # dull green color2 #a6e12d # light green color10 #a6e12d # yellow color3 #e4db73 # light yellow color11 #e4db73 # blue color4 #fc961f # light blue color12 #fc961f # magenta color5 #ae81ff # light magenta color13 #ae81ff # cyan color6 #66d9ee # light cyan color14 #66d9ee # dull white color7 #fdfff1 # bright white color15 #fdfff1 ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Pro.conf ================================================ background #403e41 foreground #fcfcfa cursor #fcfcfa cursor_text_color #000000 selection_foreground #403e41 selection_background #fcfcfa # dull black color0 #403e41 # light black color8 #727072 # dull red color1 #ff6188 # light red color9 #ff6188 # dull green color2 #a9dc76 # light green color10 #a9dc76 # yellow color3 #ffd866 # light yellow color11 #ffd866 # blue color4 #fc9867 # light blue color12 #fc9867 # magenta color5 #ab9df2 # light magenta color13 #ab9df2 # cyan color6 #78dce8 # light cyan color14 #78dce8 # dull white color7 #fcfcfa # bright white color15 #fcfcfa ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Machine).conf ================================================ background #3a4449 foreground #f2fffc cursor #f2fffc cursor_text_color #000000 selection_foreground #3a4449 selection_background #f2fffc # dull black color0 #3a4449 # light black color8 #6b7678 # dull red color1 #ff6d7e # light red color9 #ff6d7e # dull green color2 #a2e57b # light green color10 #a2e57b # yellow color3 #ffed72 # light yellow color11 #ffed72 # blue color4 #ffb270 # light blue color12 #ffb270 # magenta color5 #baa0f8 # light magenta color13 #baa0f8 # cyan color6 #7cd5f1 # light cyan color14 #7cd5f1 # dull white color7 #f2fffc # bright white color15 #f2fffc ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Octagon).conf ================================================ background #3a3d4b foreground #eaf2f1 cursor #eaf2f1 cursor_text_color #000000 selection_foreground #3a3d4b selection_background #eaf2f1 # dull black color0 #3a3d4b # light black color8 #696d77 # dull red color1 #ff657a # light red color9 #ff657a # dull green color2 #bad761 # light green color10 #bad761 # yellow color3 #ffd76d # light yellow color11 #ffd76d # blue color4 #ff9b5e # light blue color12 #ff9b5e # magenta color5 #c39ac9 # light magenta color13 #c39ac9 # cyan color6 #9cd1bb # light cyan color14 #9cd1bb # dull white color7 #eaf2f1 # bright white color15 #eaf2f1 ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Ristretto).conf ================================================ background #403838 foreground #fff1f3 cursor #fff1f3 cursor_text_color #000000 selection_foreground #403838 selection_background #fff1f3 # dull black color0 #403838 # light black color8 #72696a # dull red color1 #fd6883 # light red color9 #fd6883 # dull green color2 #adda78 # light green color10 #adda78 # yellow color3 #f9cc6c # light yellow color11 #f9cc6c # blue color4 #f38d70 # light blue color12 #f38d70 # magenta color5 #a8a9eb # light magenta color13 #a8a9eb # cyan color6 #85dacc # light cyan color14 #85dacc # dull white color7 #fff1f3 # bright white color15 #fff1f3 ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Spectrum).conf ================================================ background #363537 foreground #f7f1ff cursor #f7f1ff cursor_text_color #000000 selection_foreground #363537 selection_background #f7f1ff # dull black color0 #363537 # light black color8 #69676c # dull red color1 #fc618d # light red color9 #fc618d # dull green color2 #7bd88f # light green color10 #7bd88f # yellow color3 #fce566 # light yellow color11 #fce566 # blue color4 #fd9353 # light blue color12 #fd9353 # magenta color5 #948ae3 # light magenta color13 #948ae3 # cyan color6 #5ad4e6 # light cyan color14 #5ad4e6 # dull white color7 #f7f1ff # bright white color15 #f7f1ff ================================================ FILE: .config/kitty/kitty-themes/themes/Monokai_Soda.conf ================================================ background #191919 foreground #c4c4b5 cursor #f6f6ec selection_background #343434 color0 #191919 color8 #615e4b color1 #f3005f color9 #f3005f color2 #97e023 color10 #97e023 color3 #fa8419 color11 #dfd561 color4 #9c64fe color12 #9c64fe color5 #f3005f color13 #f3005f color6 #57d1ea color14 #57d1ea color7 #c4c4b5 color15 #f6f6ee selection_foreground #191919 ================================================ FILE: .config/kitty/kitty-themes/themes/N0tch2k.conf ================================================ background #222222 foreground #a0a0a0 cursor #a99075 selection_background #4d4d4d color0 #383838 color8 #474747 color1 #a95551 color9 #a97775 color2 #666666 color10 #8c8c8c color3 #a98051 color11 #a99175 color4 #657d3e color12 #98bd5e color5 #767676 color13 #a3a3a3 color6 #c9c9c9 color14 #dcdcdc color7 #d0b8a3 color15 #d8c8bb selection_foreground #222222 ================================================ FILE: .config/kitty/kitty-themes/themes/Neopolitan.conf ================================================ background #271f19 foreground #ffffff cursor #ffffff selection_background #253b76 color0 #000000 color8 #000000 color1 #800000 color9 #800000 color2 #61ce3c color10 #61ce3c color3 #fbde2d color11 #fbde2d color4 #253b76 color12 #253b76 color5 #ff0080 color13 #ff0080 color6 #8da6ce color14 #8da6ce color7 #f8f8f8 color15 #f8f8f8 selection_foreground #271f19 ================================================ FILE: .config/kitty/kitty-themes/themes/Neutron.conf ================================================ background #1b1d22 foreground #e6e8ee cursor #f6f6ec selection_background #2e353d color0 #22252b color8 #22252b color1 #b53f36 color9 #b53f36 color2 #5ab977 color10 #5ab977 color3 #ddb566 color11 #ddb566 color4 #6a7b92 color12 #6a7b92 color5 #a3799d color13 #a3799d color6 #3f93a8 color14 #3f93a8 color7 #e6e8ee color15 #ebedf2 selection_foreground #1b1d22 ================================================ FILE: .config/kitty/kitty-themes/themes/NightLion_v1.conf ================================================ background #000000 foreground #bbbbbb cursor #bbbbbb selection_background #b4d5ff color0 #4c4c4c color8 #545454 color1 #bb0000 color9 #ff5555 color2 #5ede8f color10 #55ff55 color3 #f2f067 color11 #ffff55 color4 #266ad7 color12 #5555ff color5 #bb00bb color13 #ff55ff color6 #00d9df color14 #55ffff color7 #bbbbbb color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/NightLion_v2.conf ================================================ background #171717 foreground #bbbbbb cursor #bbbbbb selection_background #b4d5ff color0 #4c4c4c color8 #545454 color1 #bb0000 color9 #ff5555 color2 #03f622 color10 #7df61c color3 #f2f067 color11 #ffff55 color4 #63d0f0 color12 #62cae7 color5 #ce6fda color13 #ff9af5 color6 #00d9df color14 #00ccd7 color7 #bbbbbb color15 #ffffff selection_foreground #171717 ================================================ FILE: .config/kitty/kitty-themes/themes/Nova.conf ================================================ background #3c4c54 foreground #8798a3 cursor #7fc1c9 color0 #8799a4 color8 #c4d3dc color1 #efc08d color9 #ef8358 color2 #a6cb91 color10 #a8ce93 color3 #d7d690 color11 #e5e77f color4 #83afe4 color12 #69c8ff color5 #d460da color13 #d18ec2 color6 #7fc1b6 color14 #00e59f color7 #c4d3dc color15 #e6eef3 selection_foreground #3c4c54 selection_background #7fc1ca ================================================ FILE: .config/kitty/kitty-themes/themes/Novel.conf ================================================ # Theme ported from the Mac Terminal application. background #dfdbc3 foreground #3b2322 cursor #73635a selection_background #a4a390 color0 #000000 color8 #7f7f7f color1 #cc0000 color9 #cc0000 color2 #009600 color10 #009600 color3 #d06b00 color11 #d06b00 color4 #0000cc color12 #0000cc color5 #cc00cc color13 #cc00cc color6 #0087cc color14 #0086cb color7 #cccccc color15 #ffffff selection_foreground #dfdbc3 ================================================ FILE: .config/kitty/kitty-themes/themes/Obsidian.conf ================================================ background #273032 foreground #cccccc cursor #c0cad0 selection_background #3d4b4e color0 #000000 color8 #545454 color1 #a50001 color9 #ff0003 color2 #00bb00 color10 #92c763 color3 #fecc22 color11 #fef773 color4 #399bda color12 #a0d6ff color5 #bb00bb color13 #ff55ff color6 #00bbbb color14 #55ffff color7 #bbbbbb color15 #ffffff selection_foreground #273032 ================================================ FILE: .config/kitty/kitty-themes/themes/Ocean.conf ================================================ # Theme ported from the Mac Terminal application. background #214fbc foreground #ffffff cursor #7f7f7f selection_background #216dff color0 #000000 color8 #666666 color1 #990000 color9 #e50000 color2 #00a600 color10 #00d900 color3 #999900 color11 #e5e500 color4 #0000b2 color12 #0000ff color5 #b200b2 color13 #e500e5 color6 #00a6b2 color14 #00e5e5 color7 #bebebe color15 #e5e5e5 selection_foreground #214fbc ================================================ FILE: .config/kitty/kitty-themes/themes/OceanicMaterial.conf ================================================ background #1c262b foreground #c1c8d6 cursor #b2b8c3 selection_background #6dc1b8 color0 #000000 color8 #767676 color1 #ee2a29 color9 #dc5b60 color2 #3fa33f color10 #70be71 color3 #fee92e color11 #fef063 color4 #1d80ef color12 #53a4f3 color5 #8800a0 color13 #a94dbb color6 #16aec9 color14 #42c6d9 color7 #a4a4a4 color15 #fffefe selection_foreground #1c262b ================================================ FILE: .config/kitty/kitty-themes/themes/Ollie.conf ================================================ background #212024 foreground #8a8dae cursor #5b6da7 selection_background #1e3965 color0 #000000 color8 #5a3625 color1 #ab2e30 color9 #ff3d48 color2 #31ab60 color10 #3bff99 color3 #ab4200 color11 #ff5e1e color4 #2c56ab color12 #4487ff color5 #af8427 color13 #ffc21c color6 #1fa5ab color14 #1efaff color7 #8a8dab color15 #5b6da7 selection_foreground #212024 ================================================ FILE: .config/kitty/kitty-themes/themes/OneDark.conf ================================================ # One Dark by Giuseppe Cesarano, https://github.com/GiuseppeCesarano # This work is licensed under the terms of the GPL-2.0 license. # For a copy, see https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html. foreground #979eab background #282c34 cursor #cccccc color0 #282c34 color1 #e06c75 color2 #98c379 color3 #e5c07b color4 #61afef color5 #be5046 color6 #56b6c2 color7 #979eab color8 #393e48 color9 #d19a66 color10 #56b6c2 color11 #e5c07b color12 #61afef color13 #be5046 color14 #56b6c2 color15 #abb2bf selection_foreground #282c34 selection_background #979eab ================================================ FILE: .config/kitty/kitty-themes/themes/Parasio_Dark.conf ================================================ background #2f1d2e foreground #a39d9b cursor #a39d9b selection_background #4f414c color0 #2f1d2e color8 #776d70 color1 #ef6154 color9 #ef6154 color2 #48b685 color10 #48b685 color3 #fec418 color11 #fec418 color4 #05b6ef color12 #05b6ef color5 #805ba3 color13 #805ba3 color6 #5bc4be color14 #5bc4be color7 #a39d9b color15 #e6e9da selection_foreground #2f1d2e ================================================ FILE: .config/kitty/kitty-themes/themes/PaulMillr.conf ================================================ background #000000 foreground #f1f1f1 cursor #4c4c4c selection_background #414141 color0 #2a2a2a color8 #666666 color1 #ff0000 color9 #ff007f color2 #78ff0e color10 #66ff66 color3 #e6be00 color11 #f3d64d color4 #396ad6 color12 #7099ec color5 #b348bd color13 #da66e5 color6 #66ccff color14 #79def1 color7 #bababa color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/PencilDark.conf ================================================ background #202020 foreground #f0f0f0 cursor #20bafb selection_background #b6d6fc color0 #202020 color8 #414141 color1 #c30670 color9 #fb0079 color2 #10a778 color10 #5ed6ae color3 #a79c14 color11 #f3e42f color4 #008ec4 color12 #20bafb color5 #523b78 color13 #6854de color6 #20a4b9 color14 #4fb8cc color7 #d9d9d9 color15 #f0f0f0 selection_foreground #202020 ================================================ FILE: .config/kitty/kitty-themes/themes/PencilLight.conf ================================================ background #f0f0f0 foreground #414141 cursor #20bafb selection_background #b6d6fc color0 #202020 color8 #414141 color1 #c30670 color9 #fb0079 color2 #10a778 color10 #5ed6ae color3 #a79c14 color11 #f3e42f color4 #008ec4 color12 #20bafb color5 #523b78 color13 #6854de color6 #20a4b9 color14 #4fb8cc color7 #d9d9d9 color15 #f0f0f0 selection_foreground #f0f0f0 ================================================ FILE: .config/kitty/kitty-themes/themes/Piatto_Light.conf ================================================ background #ffffff foreground #414141 cursor #5e76c7 selection_background #6f6a4e color0 #414141 color8 #3e3e3e color1 #b23670 color9 #da3365 color2 #66781d color10 #829428 color3 #cc6e33 color11 #cc6e33 color4 #3b5ea7 color12 #3b5ea7 color5 #a353b2 color13 #a353b2 color6 #66781d color14 #829428 color7 #ffffff color15 #f1f1f1 selection_foreground #ffffff ================================================ FILE: .config/kitty/kitty-themes/themes/Pnevma.conf ================================================ background #1c1c1c foreground #d0d0d0 cursor #e3c8ae selection_background #4d4d4d color0 #2f2e2d color8 #4a4845 color1 #a36666 color9 #d78787 color2 #90a57d color10 #afbea2 color3 #d7af87 color11 #e4c9af color4 #7fa5bd color12 #a1bdce color5 #c79ec4 color13 #d7beda color6 #8adbb4 color14 #b1e7dd color7 #d0d0d0 color15 #efefef selection_foreground #1c1c1c ================================================ FILE: .config/kitty/kitty-themes/themes/Pro.conf ================================================ # Theme ported from the Mac Terminal application. background #000000 foreground #f2f2f2 cursor #4d4d4d selection_background #414141 color0 #000000 color8 #666666 color1 #990000 color9 #e50000 color2 #00a600 color10 #00d900 color3 #999900 color11 #e5e500 color4 #1f08db color12 #0000ff color5 #b200b2 color13 #e500e5 color6 #00a6b2 color14 #00e5e5 color7 #bfbfbf color15 #e5e5e5 selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Red_Alert.conf ================================================ background #762423 foreground #ffffff cursor #ffffff selection_background #073642 color0 #000000 color8 #262626 color1 #d52e4d color9 #e02453 color2 #71be6b color10 #aff08b color3 #beb86b color11 #dfddb7 color4 #479bed color12 #65a9f0 color5 #e878d6 color13 #ddb7df color6 #6bbeb8 color14 #b7dfdd color7 #d6d6d6 color15 #ffffff selection_foreground #762423 ================================================ FILE: .config/kitty/kitty-themes/themes/Red_Sands.conf ================================================ # Theme ported from the Mac Terminal application. background #79241d foreground #d6c8a7 cursor #ffffff selection_background #a4a390 color0 #000000 color8 #545454 color1 #ff3e00 color9 #ba0000 color2 #00ba00 color10 #00ba00 color3 #e6af00 color11 #e6af00 color4 #0071ff color12 #0071ae color5 #ba00ba color13 #ff54ff color6 #00baba color14 #54ffff color7 #bababa color15 #ffffff selection_foreground #79241d ================================================ FILE: .config/kitty/kitty-themes/themes/Relaxed_Afterglow.conf ================================================ # Relaxed Afterglow by Michael Kühnel , https://github.com/Relaxed-Theme/relaxed-terminal-themes # This work is licensed under the terms of the MIT license. # For a copy, see https://opensource.org/licenses/MIT. background #353a44 foreground #d9d9d9 cursor #d9d9d9 selection_foreground #d8d8d8 selection_background #6a7984 color0 #151515 color1 #bc5653 color2 #909d63 color3 #ebc17a color4 #6a8799 color5 #b06698 color6 #c9dfff color7 #d9d9d9 color8 #636363 color9 #bc5653 color10 #a0ac77 color11 #ebc17a color12 #7eaac7 color13 #b06698 color14 #acbbd0 color15 #f7f7f7 ================================================ FILE: .config/kitty/kitty-themes/themes/Renault_Style.conf ================================================ background #3a3a3a foreground #e9cb7b cursor #7f7f7f selection_background #958553 color0 #000000 color1 #990000 color2 #00A600 color3 #999900 color4 #0000B2 color5 #B200B2 color6 #00A6B2 color7 #BFBFBF color8 #666666 color9 #E50000 color10 #00d800 color11 #E5E500 color12 #0000FF color13 #E500E5 color14 #00e5e5 color15 #E5E5E5 selection_foreground #3a3a3a ================================================ FILE: .config/kitty/kitty-themes/themes/Renault_Style_Light.conf ================================================ background #3a3a3a foreground #e9cb7b cursor #7f7f7f selection_background #958553 color0 #000000 color8 #323232 color1 #da4839 color9 #ff7b6a color2 #509f50 color10 #83d082 color3 #ffd249 color11 #ffff7b color4 #46657d color12 #9fcef0 color5 #cfcfff color13 #ffffff color6 #87c1f1 color14 #a4d4f8 color7 #ffffff color15 #ffffff selection_foreground #3a3a3a ================================================ FILE: .config/kitty/kitty-themes/themes/Rippedcasts.conf ================================================ background #2b2b2b foreground #ffffff cursor #7f7f7f selection_background #5a637e color0 #000000 color8 #666666 color1 #ccae95 color9 #edcbac color2 #a7ff60 color10 #bced68 color3 #beba1f color11 #e5e500 color4 #74a4af color12 #86bdc8 color5 #ff73fd color13 #e500e5 color6 #5a637e color14 #8b9bc4 color7 #bebebe color15 #e5e5e5 selection_foreground #2b2b2b ================================================ FILE: .config/kitty/kitty-themes/themes/Royal.conf ================================================ background #100814 foreground #504868 cursor #514965 selection_background #1e1d2a color0 #241f2a color8 #312d3c color1 #90274b color9 #d4346c color2 #23801c color10 #2cd845 color3 #b49d27 color11 #fde83a color4 #6480af color12 #8fb9f9 color5 #664d96 color13 #a479e2 color6 #8aaabd color14 #abd3eb color7 #514965 color15 #9d8bbd selection_foreground #100814 ================================================ FILE: .config/kitty/kitty-themes/themes/SeaShells.conf ================================================ background #08131a foreground #deb88d cursor #fba02f selection_background #1e4862 color0 #17384c color8 #424b52 color1 #d05023 color9 #d38677 color2 #027b9b color10 #618c98 color3 #fba02f color11 #fdd29e color4 #1d4850 color12 #1abcdd color5 #68d3f0 color13 #bbe3ee color6 #50a3b5 color14 #86abb3 color7 #deb88d color15 #fee3cd selection_foreground #08131a ================================================ FILE: .config/kitty/kitty-themes/themes/Seafoam_Pastel.conf ================================================ background #243335 foreground #d3e6d3 cursor #576379 selection_background #ffffff color0 #747474 color8 #8a8a8a color1 #825d4c color9 #cf9279 color2 #718b62 color10 #98d9aa color3 #aca06d color11 #fae69c color4 #4c7b82 color12 #79c3cf color5 #8a7166 color13 #d6b2a0 color6 #719494 color14 #acdfdf color7 #dfdfdf color15 #dfdfdf selection_foreground #243335 ================================================ FILE: .config/kitty/kitty-themes/themes/Seti.conf ================================================ background #111213 foreground #cacecd cursor #e2be21 selection_background #303233 color0 #323232 color8 #323232 color1 #c22832 color9 #c22832 color2 #8ec43d color10 #8ec43d color3 #e0c64f color11 #e0c64f color4 #43a5d5 color12 #43a5d5 color5 #8b57b5 color13 #8b57b5 color6 #8ec43d color14 #8ec43d color7 #eeeeee color15 #ffffff selection_foreground #111213 ================================================ FILE: .config/kitty/kitty-themes/themes/Shaman.conf ================================================ background #001014 foreground #405555 cursor #49fcd5 selection_background #415554 color0 #012026 color8 #374350 color1 #b12f2c color9 #ff4242 color2 #00a940 color10 #2aea5e color3 #5d8aa9 color11 #8dd3fd color4 #449985 color12 #61d4b9 color5 #00599c color13 #1298ff color6 #5c7e19 color14 #98cf28 color7 #405554 color15 #58fad6 selection_foreground #001014 ================================================ FILE: .config/kitty/kitty-themes/themes/Slate.conf ================================================ background #212121 foreground #34b0d2 cursor #87d2c3 selection_background #0f3754 color0 #212121 color8 #ffffff color1 #e1a7bf color9 #ffccd8 color2 #80d778 color10 #bdffa8 color3 #c4c9bf color11 #d0cbc9 color4 #254a49 color12 #79afd2 color5 #a380d3 color13 #c4a7d8 color6 #14ab9c color14 #8bdee0 color7 #02c4e0 color15 #e0e0e0 selection_foreground #212121 ================================================ FILE: .config/kitty/kitty-themes/themes/Smyck.conf ================================================ background #1b1b1b foreground #f7f7f7 cursor #bbbbbb selection_background #207383 color0 #000000 color8 #7a7a7a color1 #b74131 color9 #d6837b color2 #7da900 color10 #c4f036 color3 #c4a400 color11 #fee14d color4 #62a3c4 color12 #8dcff0 color5 #b98acc color13 #f799ff color6 #207383 color14 #69d9cf color7 #a0a0a0 color15 #f7f7f7 selection_foreground #1b1b1b ================================================ FILE: .config/kitty/kitty-themes/themes/SoftServer.conf ================================================ background #242626 foreground #99a3a2 cursor #d1dfde selection_background #7f8786 color0 #000000 color8 #666c6b color1 #a16869 color9 #dc5b5f color2 #99a569 color10 #bfde54 color3 #a29069 color11 #deb35f color4 #6a8fa3 color12 #62b1df color5 #6971a3 color13 #5f6ede color6 #6ba48f color14 #64e39c color7 #99a3a2 color15 #d1dfde selection_foreground #242626 ================================================ FILE: .config/kitty/kitty-themes/themes/Solarized_Darcula.conf ================================================ background #3d3f41 foreground #d2d8d9 cursor #708183 selection_background #214283 color0 #25292a color8 #25292a color1 #f24840 color9 #f24840 color2 #629655 color10 #629655 color3 #b68800 color11 #b68800 color4 #2074c7 color12 #2074c7 color5 #797fd4 color13 #797fd4 color6 #15968d color14 #15968d color7 #d2d8d9 color15 #d2d8d9 selection_foreground #3d3f41 ================================================ FILE: .config/kitty/kitty-themes/themes/Solarized_Dark.conf ================================================ background #001e26 foreground #708183 cursor #708183 selection_background #002731 color0 #002731 color8 #001e26 color1 #d01b24 color9 #bd3612 color2 #728905 color10 #465a61 color3 #a57705 color11 #52676f color4 #2075c7 color12 #708183 color5 #c61b6e color13 #5856b9 color6 #259185 color14 #81908f color7 #e9e2cb color15 #fcf4dc selection_foreground #001e26 ================================================ FILE: .config/kitty/kitty-themes/themes/Solarized_Dark_-_Patched.conf ================================================ background #001e26 foreground #708183 cursor #708183 selection_background #002731 color0 #002731 color8 #465a61 color1 #d01b24 color9 #bd3612 color2 #728905 color10 #465a61 color3 #a57705 color11 #52676f color4 #2075c7 color12 #708183 color5 #c61b6e color13 #5856b9 color6 #259185 color14 #81908f color7 #e9e2cb color15 #fcf4dc selection_foreground #001e26 ================================================ FILE: .config/kitty/kitty-themes/themes/Solarized_Dark_Higher_Contrast.conf ================================================ background #001e26 foreground #9bc1c2 cursor #f34a00 selection_background #003747 color0 #002731 color8 #006388 color1 #d01b24 color9 #f4153b color2 #6bbe6c color10 #50ee84 color3 #a57705 color11 #b17e28 color4 #2075c7 color12 #178dc7 color5 #c61b6e color13 #e14d8e color6 #259185 color14 #00b29e color7 #e9e2cb color15 #fcf4dc selection_foreground #001e26 ================================================ FILE: .config/kitty/kitty-themes/themes/Solarized_Light.conf ================================================ background #fdf6e3 foreground #52676f cursor #52676f selection_background #e9e2cb color0 #e4e4e4 color8 #ffffd7 color1 #d70000 color9 #d75f00 color2 #5f8700 color10 #585858 color3 #af8700 color11 #626262 color4 #0087ff color12 #808080 color5 #af005f color13 #5f5faf color6 #00afaf color14 #8a8a8a color7 #262626 color15 #1c1c1c selection_foreground #fcf4dc ================================================ FILE: .config/kitty/kitty-themes/themes/Source_Code_X.conf ================================================ foreground #000000 background #1f1f24 cursor #7F7F7F color0 #4e596b color8 #91a0b1 color1 #fb695d color7 #BFBFBF color9 #fb695d color2 #74b391 color10 #aef37c color3 #fc8e3e color11 #fc8e3e color4 #9586f4 color12 #53a4fb color5 #fb5ea3 color13 #fb5ea3 color6 #79c8b6 color14 #83d2c0 color15 #91a0b1 selection_foreground #1f1f24 selection_background #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/SpaceGray.conf ================================================ background #20232c foreground #b2b8c2 cursor #b2b8c2 selection_background #15171e color0 #000000 color8 #000000 color1 #af4b57 color9 #af4b57 color2 #87b279 color10 #87b279 color3 #e5c078 color11 #e5c078 color4 #7c8fa3 color12 #7c8fa3 color5 #a37996 color13 #a37996 color6 #84a6a4 color14 #84a6a4 color7 #b2b8c2 color15 #fffefe selection_foreground #20232c ================================================ FILE: .config/kitty/kitty-themes/themes/SpaceGray_Eighties.conf ================================================ background #212121 foreground #bdb9ae cursor #bbbbbb selection_background #262e35 color0 #15171c color8 #545454 color1 #ec5f67 color9 #ff6973 color2 #80a763 color10 #93d393 color3 #fdc253 color11 #ffd156 color4 #5485c0 color12 #4d83d0 color5 #bf83c0 color13 #ff55ff color6 #57c2c0 color14 #83e8e4 color7 #eeece7 color15 #ffffff selection_foreground #212121 ================================================ FILE: .config/kitty/kitty-themes/themes/SpaceGray_Eighties_Dull.conf ================================================ background #212121 foreground #c8c5bc cursor #bbbbbb selection_background #262e36 color0 #15171c color8 #545454 color1 #b14956 color9 #ec5f67 color2 #91b377 color10 #88e985 color3 #c6725a color11 #fdc253 color4 #7b8fa4 color12 #5485c0 color5 #a5779e color13 #bf83c0 color6 #7fcccb color14 #58c2c0 color7 #b2b8c2 color15 #ffffff selection_foreground #212121 ================================================ FILE: .config/kitty/kitty-themes/themes/Spacedust.conf ================================================ background #0a1e24 foreground #ecefc1 cursor #708183 selection_background #0a385c color0 #6e5246 color8 #674c31 color1 #e35a00 color9 #ff8a39 color2 #5cab96 color10 #adcab8 color3 #e3cd7b color11 #ffc777 color4 #0e548b color12 #67a0cd color5 #e35a00 color13 #ff8a39 color6 #06afc7 color14 #83a6b3 color7 #f0f1ce color15 #fefff0 selection_foreground #0a1e24 ================================================ FILE: .config/kitty/kitty-themes/themes/Spiderman.conf ================================================ background #1b1d1e foreground #e2e2e2 cursor #2b3fff selection_background #070e4f color0 #1b1d1e color8 #505354 color1 #e60712 color9 #ff0325 color2 #e22828 color10 #ff3238 color3 #e24655 color11 #fe3935 color4 #2b3fff color12 #1d4fff color5 #2435db color13 #737bff color6 #3255ff color14 #6083ff color7 #fffef6 color15 #fefff9 selection_foreground #1b1d1e ================================================ FILE: .config/kitty/kitty-themes/themes/Spring.conf ================================================ background #ffffff foreground #4d4d4c cursor #4d4d4c selection_background #d6d6d6 color0 #000000 color8 #000000 color1 #ff4c83 color9 #ff0021 color2 #1f8c3a color10 #1fc231 color3 #1fc95a color11 #d4b706 color4 #1cd2ee color12 #15a9fd color5 #8959a8 color13 #8959a8 color6 #3e999f color14 #3e999f color7 #fffefe color15 #fffefe selection_foreground #ffffff ================================================ FILE: .config/kitty/kitty-themes/themes/Square.conf ================================================ background #1a1a1a foreground #acacab cursor #fbfacc selection_background #4d4d4d color0 #050505 color8 #141414 color1 #e9897c color9 #f99286 color2 #b6377d color10 #c3f786 color3 #ecebbe color11 #fcfbcc color4 #a9cdeb color12 #b6defb color5 #75507b color13 #ad7fa8 color6 #c9caec color14 #d7d9fc color7 #f2f2f2 color15 #e2e2e2 selection_foreground #1a1a1a ================================================ FILE: .config/kitty/kitty-themes/themes/Sundried.conf ================================================ background #1a1818 foreground #c8c8c8 cursor #fffefe selection_background #302b2a color0 #302b2a color8 #4d4d47 color1 #a6463d color9 #aa000c color2 #577644 color10 #128c20 color3 #9c5f2a color11 #fc6a20 color4 #485a98 color12 #7898f7 color5 #854551 color13 #fc89a0 color6 #9c814e color14 #fad384 color7 #c8c8c8 color15 #fffefe selection_foreground #1a1818 ================================================ FILE: .config/kitty/kitty-themes/themes/Symfonic.conf ================================================ background #000000 foreground #ffffff cursor #dc322f selection_background #073642 color0 #000000 color8 #1b1d21 color1 #dc322f color9 #dc322f color2 #56db3a color10 #56db3a color3 #ff8400 color11 #ff8400 color4 #0084d4 color12 #0084d4 color5 #b729d9 color13 #b729d9 color6 #ccccff color14 #ccccff color7 #ffffff color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Tango_Dark.conf ================================================ background #000000 foreground #ffffff cursor #ffffff selection_background #b4d5ff color0 #000000 color8 #545753 color1 #cc0000 color9 #ef2828 color2 #4e9a05 color10 #8ae234 color3 #c4a000 color11 #fce94e color4 #3464a4 color12 #719ecf color5 #74507a color13 #ad7ea7 color6 #05989a color14 #34e2e2 color7 #d3d7cf color15 #ededec selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Tango_Light.conf ================================================ background #ffffff foreground #000000 cursor #000000 selection_background #b4d5ff color0 #000000 color8 #545753 color1 #cc0000 color9 #ef2828 color2 #4e9a05 color10 #8ae234 color3 #c4a000 color11 #fce94e color4 #3464a4 color12 #719ecf color5 #74507a color13 #ad7ea7 color6 #05989a color14 #34e2e2 color7 #d3d7cf color15 #ededec selection_foreground #ffffff ================================================ FILE: .config/kitty/kitty-themes/themes/Teerb.conf ================================================ background #262626 foreground #d0d0d0 cursor #e3c8ae selection_background #4d4d4d color0 #1c1c1c color8 #1c1c1c color1 #d68686 color9 #d68686 color2 #aed686 color10 #aed686 color3 #d7af87 color11 #e4c9af color4 #86aed6 color12 #86aed6 color5 #d6aed6 color13 #d6aed6 color6 #8adbb4 color14 #b1e7dd color7 #d0d0d0 color15 #efefef selection_foreground #262626 ================================================ FILE: .config/kitty/kitty-themes/themes/Thayer_Bright.conf ================================================ background #1b1d1e foreground #f8f8f8 cursor #fc971e selection_background #4d4d4d color0 #1b1d1e color8 #505354 color1 #f92672 color9 #ff5995 color2 #4df740 color10 #b6e354 color3 #f3fd21 color11 #feed6c color4 #2656d6 color12 #3f78ff color5 #8c54fe color13 #9e6ffe color6 #37c8b4 color14 #23ced4 color7 #ccccc6 color15 #f8f8f2 selection_foreground #1b1d1e ================================================ FILE: .config/kitty/kitty-themes/themes/The_Hulk.conf ================================================ background #1b1d1e foreground #b4b4b4 cursor #15b61a selection_background #4d4f4c color0 #1b1d1e color8 #505354 color1 #259d1a color9 #8dff2a color2 #13ce2f color10 #48ff76 color3 #62e456 color11 #3afe15 color4 #2424f4 color12 #4f6a95 color5 #641e73 color13 #72579d color6 #378ca9 color14 #3f85a5 color7 #d8d8d0 color15 #e5e5e0 selection_foreground #1b1d1e ================================================ FILE: .config/kitty/kitty-themes/themes/Tomorrow.conf ================================================ background #ffffff foreground #4c4c4c cursor #4c4c4c selection_background #d6d6d6 color0 #000000 color8 #000000 color1 #c82828 color9 #c82828 color2 #708b00 color10 #708b00 color3 #e9b600 color11 #e9b600 color4 #4170ae color12 #4170ae color5 #8958a7 color13 #8958a7 color6 #3d999f color14 #3d999f color7 #fffefe color15 #fffefe selection_foreground #ffffff ================================================ FILE: .config/kitty/kitty-themes/themes/Tomorrow_Night.conf ================================================ background #1d1f21 foreground #c4c8c5 cursor #c4c8c5 selection_background #363a41 color0 #000000 color8 #000000 color1 #cc6666 color9 #cc6666 color2 #b5bd68 color10 #b5bd68 color3 #f0c574 color11 #f0c574 color4 #80a1bd color12 #80a1bd color5 #b294ba color13 #b294ba color6 #8abdb6 color14 #8abdb6 color7 #fffefe color15 #fffefe selection_foreground #1d1f21 ================================================ FILE: .config/kitty/kitty-themes/themes/Tomorrow_Night_Blue.conf ================================================ background #002450 foreground #fffefe cursor #fffefe selection_background #003e8e color0 #000000 color8 #000000 color1 #ff9ca3 color9 #ff9ca3 color2 #d0f0a8 color10 #d0f0a8 color3 #ffedac color11 #ffedac color4 #badaff color12 #badaff color5 #ebbaff color13 #ebbaff color6 #99ffff color14 #99ffff color7 #fffefe color15 #fffefe selection_foreground #002450 ================================================ FILE: .config/kitty/kitty-themes/themes/Tomorrow_Night_Bright.conf ================================================ background #000000 foreground #e9e9e9 cursor #e9e9e9 selection_background #424242 color0 #000000 color8 #000000 color1 #d44d53 color9 #d44d53 color2 #b9c949 color10 #b9c949 color3 #e6c446 color11 #e6c446 color4 #79a6da color12 #79a6da color5 #c396d7 color13 #c396d7 color6 #70c0b1 color14 #70c0b1 color7 #fffefe color15 #fffefe selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/Tomorrow_Night_Eighties.conf ================================================ background #2c2c2c foreground #cccccc cursor #cccccc selection_background #505050 color0 #000000 color8 #000000 color1 #f17779 color9 #f17779 color2 #99cc99 color10 #99cc99 color3 #ffcc66 color11 #ffcc66 color4 #6699cc color12 #6699cc color5 #cc99cc color13 #cc99cc color6 #66cccc color14 #66cccc color7 #fffefe color15 #fffefe selection_foreground #2c2c2c ================================================ FILE: .config/kitty/kitty-themes/themes/ToyChest.conf ================================================ background #23364a foreground #30cf7b cursor #d4d4d4 selection_background #5f207a color0 #2c3f57 color8 #326889 color1 #be2d26 color9 #dd5943 color2 #199171 color10 #30cf7b color3 #da8e26 color11 #e7d74b color4 #325d96 color12 #33a5d9 color5 #8a5ddb color13 #ad6bdc color6 #35a08f color14 #41c3ad color7 #23d082 color15 #d4d4d4 selection_foreground #23364a ================================================ FILE: .config/kitty/kitty-themes/themes/Treehouse.conf ================================================ background #191919 foreground #776b53 cursor #fac814 selection_background #776b53 color0 #321200 color8 #423625 color1 #b1270e color9 #ed5c20 color2 #44a900 color10 #55f237 color3 #a9810b color11 #f1b731 color4 #578499 color12 #85cfec color5 #96363c color13 #e04b5a color6 #b2591d color14 #f07c14 color7 #776b53 color15 #ffc800 selection_foreground #191919 ================================================ FILE: .config/kitty/kitty-themes/themes/Twilight.conf ================================================ background #141414 foreground #feffd3 cursor #ffffff selection_background #303030 color0 #141414 color8 #262626 color1 #c06c43 color9 #dd7c4c color2 #afb979 color10 #cbd88c color3 #c2a86c color11 #e1c47d color4 #444649 color12 #5a5d61 color5 #b4be7b color13 #d0db8e color6 #778284 color14 #8a989a color7 #feffd3 color15 #feffd3 selection_foreground #141414 ================================================ FILE: .config/kitty/kitty-themes/themes/Ubuntu.conf ================================================ background #300a24 foreground #eeeeec cursor #bbbbbb selection_background #b4d5ff color0 #2e3436 color8 #555753 color1 #cc0000 color9 #ef2929 color2 #4e9a06 color10 #8ae234 color3 #c4a000 color11 #fce94f color4 #3465a4 color12 #729fcf color5 #75507b color13 #ad7fa8 color6 #06989a color14 #34e2e2 color7 #d3d7cf color15 #eeeeec selection_foreground #300a24 ================================================ FILE: .config/kitty/kitty-themes/themes/Urple.conf ================================================ background #1b1b23 foreground #86799a cursor #a062ea selection_background #a062ea color0 #000000 color8 #5c3125 color1 #af425b color9 #ff6387 color2 #37a315 color10 #28e51f color3 #ac5b41 color11 #f08061 color4 #554d9a color12 #8579ed color5 #6c3ba1 color13 #a05dee color6 #808080 color14 #eaeaea color7 #87799c color15 #bfa3ff selection_foreground #1b1b23 ================================================ FILE: .config/kitty/kitty-themes/themes/Vaughn.conf ================================================ background #25234e foreground #dcdccc cursor #ff5555 selection_background #b5d5ff color0 #24234f color8 #709080 color1 #705050 color9 #dca3a3 color2 #60b48a color10 #60b48a color3 #dfaf8f color11 #f0dfaf color4 #5454ff color12 #5454ff color5 #f08cc3 color13 #ec93d3 color6 #8cd0d3 color14 #93e0e3 color7 #709080 color15 #ffffff selection_foreground #25234e ================================================ FILE: .config/kitty/kitty-themes/themes/VibrantInk.conf ================================================ background #000000 foreground #ffffff cursor #ffffff selection_background #b4d5ff color0 #868686 color8 #545454 color1 #ff6600 color9 #ff0000 color2 #ccff04 color10 #00ff00 color3 #ffcc00 color11 #ffff00 color4 #44b3cc color12 #0000ff color5 #9933cc color13 #ff00ff color6 #44b3cc color14 #00ffff color7 #f4f4f4 color15 #e5e5e5 selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/WarmNeon.conf ================================================ background #3f3f3f foreground #afdab6 cursor #2fff24 selection_background #b0ad21 color0 #000000 color8 #fdfcfc color1 #e24345 color9 #e86f71 color2 #38b139 color10 #9bc08f color3 #dae145 color11 #ddd979 color4 #4260c5 color12 #7a90d5 color5 #f81ffb color13 #f674b9 color6 #29bad3 color14 #5ed1e4 color7 #d0b8a3 color15 #d8c8bb selection_foreground #3f3f3f ================================================ FILE: .config/kitty/kitty-themes/themes/Wez.conf ================================================ background #000000 foreground #b3b3b3 cursor #52ad70 selection_background #4c52f8 color0 #000000 color8 #555555 color1 #cc5555 color9 #ff5555 color2 #55cc55 color10 #55ff55 color3 #cdcd55 color11 #ffff55 color4 #5455cb color12 #5555ff color5 #cc55cc color13 #ff55ff color6 #7acaca color14 #55ffff color7 #cccccc color15 #ffffff selection_foreground #000000 ================================================ FILE: .config/kitty/kitty-themes/themes/WildCherry.conf ================================================ background #1f1626 foreground #d9faff cursor #dd00ff selection_background #002731 color0 #000506 color8 #009cc9 color1 #d94085 color9 #da6bab color2 #2ab250 color10 #f4dba5 color3 #ffd06e color11 #eac066 color4 #873bdb color12 #2f8bb9 color5 #ececec color13 #ae636b color6 #c1b8b6 color14 #ff919d color7 #fff8dd color15 #e4838d selection_foreground #1f1626 ================================================ FILE: .config/kitty/kitty-themes/themes/Wombat.conf ================================================ background #171717 foreground #ded9ce cursor #bbbbbb selection_background #453a39 color0 #000000 color8 #313131 color1 #ff605a color9 #f58b7f color2 #b1e869 color10 #dcf88f color3 #ead89c color11 #eee5b2 color4 #5da9f6 color12 #a5c7ff color5 #e86aff color13 #ddaaff color6 #82fff6 color14 #b6fff9 color7 #ded9ce color15 #fefffe selection_foreground #171717 ================================================ FILE: .config/kitty/kitty-themes/themes/Wryan.conf ================================================ background #101010 foreground #999993 cursor #9d9eca selection_background #4d4d4d color0 #333333 color8 #3d3d3d color1 #8c4665 color9 #bf4d80 color2 #287373 color10 #53a6a6 color3 #7c7c99 color11 #9e9ecb color4 #395573 color12 #477ab3 color5 #5e468c color13 #7e62b3 color6 #31658c color14 #6096bf color7 #899ca1 color15 #c0c0c0 selection_foreground #101010 ================================================ FILE: .config/kitty/kitty-themes/themes/Zenburn.conf ================================================ # Zenburn by jnurmine, https://github.com/jnurmine/Zenburn # This work is licensed under the terms of the GNU GPL license. # For a copy, see http://www.gnu.org/licenses/gpl.html. background #3f3f3f foreground #dcdccc cursor #73635a selection_background #21322f color0 #4d4d4d color8 #709080 color1 #705050 color9 #dca3a3 color2 #60b48a color10 #c3bf9f color3 #f0deae color11 #dfcf9f color4 #506070 color12 #94bff3 color5 #dc8cc3 color13 #ec93d3 color6 #8cd0d3 color14 #93e0e3 color7 #dcdccc color15 #ffffff selection_foreground #3f3f3f ================================================ FILE: .config/kitty/kitty-themes/themes/ayu.conf ================================================ background #0e1419 foreground #e5e1cf cursor #f19618 selection_background #243340 color0 #000000 color8 #323232 color1 #ff3333 color9 #ff6565 color2 #b8cc52 color10 #e9fe83 color3 #e6c446 color11 #fff778 color4 #36a3d9 color12 #68d4ff color5 #f07078 color13 #ffa3aa color6 #95e5cb color14 #c7fffc color7 #ffffff color15 #ffffff selection_foreground #0e1419 ================================================ FILE: .config/kitty/kitty-themes/themes/ayu_light.conf ================================================ background #fafafa foreground #5b6673 cursor #ff6900 selection_background #f0ede4 color0 #000000 color8 #323232 color1 #ff3333 color9 #ff6565 color2 #86b200 color10 #b8e532 color3 #f19618 color11 #ffc849 color4 #41a6d9 color12 #73d7ff color5 #f07078 color13 #ffa3aa color6 #4cbe99 color14 #7ff0cb color7 #ffffff color15 #ffffff selection_foreground #fafafa ================================================ FILE: .config/kitty/kitty-themes/themes/ayu_mirage.conf ================================================ background #212733 foreground #d9d7ce cursor #ffcc66 selection_background #343f4c color0 #191e2a color8 #686868 color1 #ed8274 color9 #f28779 color2 #a6cc70 color10 #bae67e color3 #fad07b color11 #ffd580 color4 #6dcbfa color12 #73d0ff color5 #cfbafa color13 #d4bfff color6 #90e1c6 color14 #95e6cb color7 #c7c7c7 color15 #ffffff selection_foreground #212733 ================================================ FILE: .config/kitty/kitty-themes/themes/gruvbox_dark.conf ================================================ # gruvbox dark by morhetz, https://github.com/morhetz/gruvbox # This work is licensed under the terms of the MIT license. # For a copy, see https://opensource.org/licenses/MIT. background #282828 foreground #ebdbb2 cursor #928374 selection_foreground #928374 selection_background #3c3836 color0 #282828 color8 #928374 # red color1 #cc241d # light red color9 #fb4934 # green color2 #98971a # light green color10 #b8bb26 # yellow color3 #d79921 # light yellow color11 #fabd2d # blue color4 #458588 # light blue color12 #83a598 # magenta color5 #b16286 # light magenta color13 #d3869b # cyan color6 #689d6a # lighy cyan color14 #8ec07c # light gray color7 #a89984 # dark gray color15 #928374 ================================================ FILE: .config/kitty/kitty-themes/themes/gruvbox_light.conf ================================================ # gruvbox light by morhetz, https://github.com/morhetz/gruvbox # This work is licensed under the terms of the MIT license. # For a copy, see https://opensource.org/licenses/MIT. background #fbf1c7 foreground #3c3836 cursor #928374 selection_foreground #3c3836 selection_background #928374 color0 #fbf1c7 color8 #282828 # red color1 #cc241d # light red color9 #9d0006 # green color2 #98971a # light green color10 #79740e # yellow color3 #d79921 # light yellow color11 #b57614 # blue color4 #458588 # light blue color12 #076678 # magenta color5 #b16286 # light magenta color13 #8f3f71 # cyan color6 #689d6a # lighy cyan color14 #427b58 # light gray color7 #7c6f64 # dark gray color15 #928374 ================================================ FILE: .config/kitty/kitty-themes/themes/idleToes.conf ================================================ background #323232 foreground #ffffff cursor #d6d6d6 selection_background #5b5b5b color0 #323232 color8 #535353 color1 #d25252 color9 #f07070 color2 #7fe173 color10 #9dff90 color3 #ffc66d color11 #ffe48b color4 #4098ff color12 #5eb7f7 color5 #f57fff color13 #ff9dff color6 #bed6ff color14 #dcf4ff color7 #eeeeec color15 #ffffff selection_foreground #323232 ================================================ FILE: .config/kitty/kitty-themes/themes/rose-pine-moon.conf ================================================ ## name: Rosé Pine Moon ## author: mvllow ## license: MIT ## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf ## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist foreground #e0def4 background #232136 selection_foreground #e0def4 selection_background #44415a cursor #56526e cursor_text_color #e0def4 url_color #c4a7e7 active_tab_foreground #e0def4 active_tab_background #393552 inactive_tab_foreground #6e6a86 inactive_tab_background #232136 active_border_color #3e8fb0 inactive_border_color #44415a # black color0 #393552 color8 #6e6a86 # red color1 #eb6f92 color9 #eb6f92 # green color2 #3e8fb0 color10 #3e8fb0 # yellow color3 #f6c177 color11 #f6c177 # blue color4 #9ccfd8 color12 #9ccfd8 # magenta color5 #c4a7e7 color13 #c4a7e7 # cyan color6 #ea9a97 color14 #ea9a97 # white color7 #e0def4 color15 #e0def4 ================================================ FILE: .config/kitty/kitty-themes/themes/snazzy.conf ================================================ # snazzy by Connor Holyday (holyday.me) # This work is licensed under the terms of the MIT license. # For a copy, see https://opensource.org/licenses/MIT. # Snazzy Colorscheme for Kitty # Based on https://github.com/sindresorhus/hyper-snazzy foreground #eff0eb background #282a36 selection_foreground #000000 selection_background #FFFACD url_color #0087BD cursor #97979B cursor_text_color #282A36 # black color0 #282a36 color8 #686868 # red color1 #FF5C57 color9 #FF5C57 # green color2 #5AF78E color10 #5AF78E # yellow color3 #F3F99D color11 #F3F99D # blue color4 #57C7FF color12 #57C7FF # magenta color5 #FF6AC1 color13 #FF6AC1 # cyan color6 #9AEDFE color14 #9AEDFE # white color7 #F1F1F0 color15 #EFF0EB ================================================ FILE: .config/kitty/kitty.conf ================================================ # vim:ft=kitty ## name: Catppuccin Kitty Macchiato ## author: Catppuccin Org ## license: MIT ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/macchiato.conf ## blurb: Soothing pastel theme for the high-spirited! remember_window_size no initial_window_width 850 initial_window_height 500 # font_family SpaceMono Nerd Font # font_family VictorMono Nerd Font # font_family CaskaydiaCove Nerd Font # font_family Fira Code font_family JetBrainsMono Nerd Font bold_font auto italic_font auto bold_italic_font auto font_size 11.0 font_features FiraCode-Regular +cv02 +cv05 +cv09 +cv14 +ss04 +cv16 +cv31 +cv25 +cv26 +cv32 +cv28 +ss10 +zero +onum transparent background #hide_window_decorations no linux_display_server x11 #background_opacity # background_blur 1 dynamic_background_opacity yes shell_integration no-cursor cursor_shape block cursor_blink_interval -1 cursor_stop_blinking_after 15.0 cursor_trail 0 cursor_trail_decay 0.5 0.8 cursor_trail_start_threshold 1 # Kitty window border colors # OS Window titlebar colors wayland_titlebar_color system macos_titlebar_color system include ./current-theme.conf ================================================ FILE: .config/qt5ct/qt5ct.conf ================================================ [Appearance] color_scheme_path=/usr/share/qt5ct/colors/darker.conf custom_palette=false icon_theme=WhiteSur-purple-dark standard_dialogs=gtk2 style=gtk2 [Fonts] fixed="JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0" general="Segoe UI,11,-1,5,50,0,0,0,0,0,Regular" [Interface] activate_item_on_single_click=1 buttonbox_layout=0 cursor_flash_time=1000 dialog_buttons_have_icons=1 double_click_interval=400 gui_effects=General keyboard_scheme=2 menus_have_icons=true show_shortcuts_in_context_menus=true stylesheets=@Invalid() toolbutton_style=4 underline_shortcut=1 wheel_scroll_lines=3 [SettingsWindow] geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\x1a\0\0\x3\xe6\0\0\0\0\0\0\0\0\0\0\x2\xfd\0\0\x3\x1d\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\x1a\0\0\x3\xe6) [Troubleshooting] force_raster_widgets=1 ignored_applications=@Invalid() ================================================ FILE: .config/qt6ct/colors/Catppuccin-Latte.conf ================================================ [ColorScheme] active_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff1e66f5, #ffeff1f5, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 disabled_colors=#ff6c6f85, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff6c6f85, #ff6c6f85, #ff6c6f85, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff9ca0b0, #ff5c5f77, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 inactive_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ffccd0da, #ff6c6f85, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 ================================================ FILE: .config/qt6ct/colors/Catppuccin-Mocha.conf ================================================ [ColorScheme] active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c ================================================ FILE: .config/qt6ct/qt6ct.conf ================================================ [Appearance] color_scheme_path=/home/chiko/.config/qt6ct/colors/Catppuccin-Mocha.conf custom_palette=true icon_theme=Tokyonight-Dark standard_dialogs=default style=kvantum [Fonts] fixed="Fira Code Medium,12,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Regular" general="Fira Code Medium,14,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Regular" [Interface] activate_item_on_single_click=1 buttonbox_layout=0 cursor_flash_time=1000 dialog_buttons_have_icons=1 double_click_interval=400 gui_effects=General, AnimateMenu, AnimateCombo, AnimateTooltip, AnimateToolBox keyboard_scheme=2 menus_have_icons=true show_shortcuts_in_context_menus=true stylesheets=@Invalid() toolbutton_style=4 underline_shortcut=1 wheel_scroll_lines=3 [SettingsWindow] geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2P\0\0\0\xe2\0\0\x5.\0\0\x3l\0\0\x2P\0\0\x1\x6\0\0\x5.\0\0\x3l\0\0\0\0\0\0\0\0\a\x80\0\0\x2P\0\0\x1\x6\0\0\x5.\0\0\x3l) [Troubleshooting] force_raster_widgets=1 ignored_applications=@Invalid() ================================================ FILE: .config/rofi/applets/bin/appasroot.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Run Applications as Root # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Theme Elements prompt='Applications' mesg='Run Applications as Root' if [[ "$theme" == *'type-1'* ]]; then list_col='1' list_row='5' win_width='400px' elif [[ "$theme" == *'type-3'* ]]; then list_col='1' list_row='5' win_width='120px' elif [[ "$theme" == *'type-5'* ]]; then list_col='1' list_row='5' win_width='520px' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='5' list_row='1' win_width='670px' fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Alacritty" option_2=" Thunar" option_3=" Geany" option_4=" Ranger" option_5=" Vim" else option_1="" option_2="" option_3="" option_4="" option_5="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "window {width: $win_width;}" \ -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd } # Execute Command run_cmd() { polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" if [[ "$1" == '--opt1' ]]; then ${polkit_cmd} alacritty elif [[ "$1" == '--opt2' ]]; then ${polkit_cmd} dbus-run-session thunar elif [[ "$1" == '--opt3' ]]; then ${polkit_cmd} geany elif [[ "$1" == '--opt4' ]]; then ${polkit_cmd} alacritty -e ranger elif [[ "$1" == '--opt5' ]]; then ${polkit_cmd} alacritty -e vim fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; esac ================================================ FILE: .config/rofi/applets/bin/apps.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Favorite Applications # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Theme Elements prompt='Applications' mesg="Installed Packages : `pacman -Q | wc -l` (pacman)" if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then list_col='1' list_row='6' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='6' list_row='1' fi # CMDs (add your apps here) term_cmd='alacritty' file_cmd='thunar' text_cmd='geany' web_cmd='firefox' music_cmd='alacritty -e ncmpcpp' setting_cmd='xfce4-settings-manager' # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Terminal ($term_cmd)" option_2=" Files ($file_cmd)" option_3=" Editor ($text_cmd)" option_4=" Browser ($web_cmd)" option_5=" Music ($music_cmd)" option_6=" Settings ($setting_cmd)" else option_1="" option_2="" option_3="" option_4="" option_5="" option_6="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then ${term_cmd} elif [[ "$1" == '--opt2' ]]; then ${file_cmd} elif [[ "$1" == '--opt3' ]]; then ${text_cmd} elif [[ "$1" == '--opt4' ]]; then ${web_cmd} elif [[ "$1" == '--opt5' ]]; then ${music_cmd} elif [[ "$1" == '--opt6' ]]; then ${setting_cmd} fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; $option_6) run_cmd --opt6 ;; esac ================================================ FILE: .config/rofi/applets/bin/battery.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Battery # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Battery Info battery="`acpi -b | cut -d',' -f1 | cut -d':' -f1`" status="`acpi -b | cut -d',' -f1 | cut -d':' -f2 | tr -d ' '`" percentage="`acpi -b | cut -d',' -f2 | tr -d ' ',\%`" time="`acpi -b | cut -d',' -f3`" if [[ -z "$time" ]]; then time=' Fully Charged' fi # Theme Elements prompt="$status" mesg="${battery}: ${percentage}%,${time}" if [[ "$theme" == *'type-1'* ]]; then list_col='1' list_row='4' win_width='400px' elif [[ "$theme" == *'type-3'* ]]; then list_col='1' list_row='4' win_width='120px' elif [[ "$theme" == *'type-5'* ]]; then list_col='1' list_row='4' win_width='500px' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='4' list_row='1' win_width='550px' fi # Charging Status active="" urgent="" if [[ $status = *"Charging"* ]]; then active="-a 1" ICON_CHRG="" elif [[ $status = *"Full"* ]]; then active="-u 1" ICON_CHRG="" else urgent="-u 1" ICON_CHRG="" fi # Discharging if [[ $percentage -ge 5 ]] && [[ $percentage -le 19 ]]; then ICON_DISCHRG="" elif [[ $percentage -ge 20 ]] && [[ $percentage -le 39 ]]; then ICON_DISCHRG="" elif [[ $percentage -ge 40 ]] && [[ $percentage -le 59 ]]; then ICON_DISCHRG="" elif [[ $percentage -ge 60 ]] && [[ $percentage -le 79 ]]; then ICON_DISCHRG="" elif [[ $percentage -ge 80 ]] && [[ $percentage -le 100 ]]; then ICON_DISCHRG="" fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Remaining ${percentage}%" option_2=" $status" option_3=" Power Manager" option_4=" Diagnose" else option_1="$ICON_DISCHRG" option_2="$ICON_CHRG" option_3="" option_4="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "window {width: $win_width;}" \ -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str "textbox-prompt-colon {str: \"$ICON_DISCHRG\";}" \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ ${active} ${urgent} \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4" | rofi_cmd } # Execute Command run_cmd() { polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" if [[ "$1" == '--opt1' ]]; then notify-send -u low " Remaining : ${percentage}%" elif [[ "$1" == '--opt2' ]]; then notify-send -u low "$ICON_CHRG Status : $status" elif [[ "$1" == '--opt3' ]]; then xfce4-power-manager-settings elif [[ "$1" == '--opt4' ]]; then ${polkit_cmd} alacritty -e powertop fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; esac ================================================ FILE: .config/rofi/applets/bin/brightness.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Brightness # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Brightness Info backlight="$(printf "%.0f\n" `light -G`)" card="`light -L | grep 'backlight' | head -n1 | cut -d'/' -f3`" if [[ $backlight -ge 0 ]] && [[ $backlight -le 29 ]]; then level="Low" elif [[ $backlight -ge 30 ]] && [[ $backlight -le 49 ]]; then level="Optimal" elif [[ $backlight -ge 50 ]] && [[ $backlight -le 69 ]]; then level="High" elif [[ $backlight -ge 70 ]] && [[ $backlight -le 100 ]]; then level="Peak" fi # Theme Elements prompt="${backlight}%" mesg="Device: ${card}, Level: $level" if [[ "$theme" == *'type-1'* ]]; then list_col='1' list_row='4' win_width='400px' elif [[ "$theme" == *'type-3'* ]]; then list_col='1' list_row='4' win_width='120px' elif [[ "$theme" == *'type-5'* ]]; then list_col='1' list_row='4' win_width='425px' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='4' list_row='1' win_width='550px' fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Increase" option_2=" Optimal" option_3=" Decrease" option_4=" Settings" else option_1="" option_2="" option_3="" option_4="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "window {width: $win_width;}" \ -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4" | rofi_cmd } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then light -A 5 elif [[ "$1" == '--opt2' ]]; then light -S 25 elif [[ "$1" == '--opt3' ]]; then light -U 5 elif [[ "$1" == '--opt4' ]]; then xfce4-power-manager-settings fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; esac ================================================ FILE: .config/rofi/applets/bin/mpd.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : MPD (music) # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Theme Elements status="`mpc status`" if [[ -z "$status" ]]; then prompt='Offline' mesg="MPD is Offline" else prompt="`mpc -f "%artist%" current`" mesg="`mpc -f "%title%" current` :: `mpc status | grep "#" | awk '{print $3}'`" fi if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then list_col='1' list_row='6' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='6' list_row='1' fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then if [[ ${status} == *"[playing]"* ]]; then option_1=" Pause" else option_1=" Play" fi option_2=" Stop" option_3=" Previous" option_4=" Next" option_5=" Repeat" option_6=" Random" else if [[ ${status} == *"[playing]"* ]]; then option_1="" else option_1="" fi option_2="" option_3="" option_4="" option_5="" option_6="" fi # Toggle Actions active='' urgent='' # Repeat if [[ ${status} == *"repeat: on"* ]]; then active="-a 4" elif [[ ${status} == *"repeat: off"* ]]; then urgent="-u 4" else option_5=" Parsing Error" fi # Random if [[ ${status} == *"random: on"* ]]; then [ -n "$active" ] && active+=",5" || active="-a 5" elif [[ ${status} == *"random: off"* ]]; then [ -n "$urgent" ] && urgent+=",5" || urgent="-u 5" else option_6=" Parsing Error" fi # Rofi CMD rofi_cmd() { rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ ${active} ${urgent} \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then mpc -q toggle && notify-send -u low -t 1000 " `mpc current`" elif [[ "$1" == '--opt2' ]]; then mpc -q stop elif [[ "$1" == '--opt3' ]]; then mpc -q prev && notify-send -u low -t 1000 " `mpc current`" elif [[ "$1" == '--opt4' ]]; then mpc -q next && notify-send -u low -t 1000 " `mpc current`" elif [[ "$1" == '--opt5' ]]; then mpc -q repeat elif [[ "$1" == '--opt6' ]]; then mpc -q random fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; $option_6) run_cmd --opt6 ;; esac ================================================ FILE: .config/rofi/applets/bin/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Power Menu # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Theme Elements prompt="`hostname`" mesg="Uptime : `uptime -p | sed -e 's/up //g'`" if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then list_col='1' list_row='6' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='6' list_row='1' fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Lock" option_2=" Logout" option_3=" Suspend" option_4=" Hibernate" option_5=" Reboot" option_6=" Shutdown" yes=' Yes' no=' No' else option_1="" option_2="" option_3="" option_4="" option_5="" option_6="" yes='' no='' fi # Rofi CMD rofi_cmd() { rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd } # Confirmation CMD confirm_cmd() { rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ -theme-str 'mainbox {orientation: vertical; children: [ "message", "listview" ];}' \ -theme-str 'listview {columns: 2; lines: 1;}' \ -theme-str 'element-text {horizontal-align: 0.5;}' \ -theme-str 'textbox {horizontal-align: 0.5;}' \ -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${theme} } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Confirm and execute confirm_run () { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then ${1} && ${2} && ${3} else exit fi } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then betterlockscreen -l elif [[ "$1" == '--opt2' ]]; then confirm_run 'kill -9 -1' elif [[ "$1" == '--opt3' ]]; then confirm_run 'mpc -q pause' 'amixer set Master mute' 'systemctl suspend' elif [[ "$1" == '--opt4' ]]; then confirm_run 'systemctl hibernate' elif [[ "$1" == '--opt5' ]]; then confirm_run 'systemctl reboot' elif [[ "$1" == '--opt6' ]]; then confirm_run 'systemctl poweroff' fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; $option_6) run_cmd --opt6 ;; esac ================================================ FILE: .config/rofi/applets/bin/quicklinks.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Quick Links # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Theme Elements prompt='Quick Links' mesg="Using '$BROWSER' as web browser" if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then list_col='1' list_row='6' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='6' list_row='1' fi if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-5'* ) ]]; then efonts="JetBrains Mono Nerd Font 10" else efonts="JetBrains Mono Nerd Font 28" fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Google" option_2=" Gmail" option_3=" Youtube" option_4=" Github" option_5=" Reddit" option_6=" Twitter" else option_1="" option_2="" option_3="" option_4="" option_5="" option_6="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -theme-str "element-text {font: \"$efonts\";}" \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then xdg-open 'https://www.google.com/' elif [[ "$1" == '--opt2' ]]; then xdg-open 'https://mail.google.com/' elif [[ "$1" == '--opt3' ]]; then xdg-open 'https://www.youtube.com/' elif [[ "$1" == '--opt4' ]]; then xdg-open 'https://www.github.com/' elif [[ "$1" == '--opt5' ]]; then xdg-open 'https://www.reddit.com/' elif [[ "$1" == '--opt6' ]]; then xdg-open 'https://www.twitter.com/' fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; $option_6) run_cmd --opt6 ;; esac ================================================ FILE: .config/rofi/applets/bin/screenshot.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Screenshot # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Theme Elements prompt='Screenshot' mesg="DIR: `xdg-user-dir PICTURES`/Screenshots" if [[ "$theme" == *'type-1'* ]]; then list_col='1' list_row='5' win_width='400px' elif [[ "$theme" == *'type-3'* ]]; then list_col='1' list_row='5' win_width='120px' elif [[ "$theme" == *'type-5'* ]]; then list_col='1' list_row='5' win_width='520px' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='5' list_row='1' win_width='670px' fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Capture Desktop" option_2=" Capture Area" option_3=" Capture Window" option_4=" Capture in 5s" option_5=" Capture in 10s" else option_1="" option_2="" option_3="" option_4="" option_5="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "window {width: $win_width;}" \ -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd } # Screenshot time=`date +%Y-%m-%d-%H-%M-%S` geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'` dir="`xdg-user-dir PICTURES`/Screenshots" file="Screenshot_${time}_${geometry}.png" if [[ ! -d "$dir" ]]; then mkdir -p "$dir" fi # notify and view screenshot notify_view() { notify_cmd_shot='dunstify -u low --replace=699' ${notify_cmd_shot} "Copied to clipboard." viewnior ${dir}/"$file" if [[ -e "$dir/$file" ]]; then ${notify_cmd_shot} "Screenshot Saved." else ${notify_cmd_shot} "Screenshot Deleted." fi } # Copy screenshot to clipboard copy_shot () { tee "$file" | xclip -selection clipboard -t image/png } # countdown countdown () { for sec in `seq $1 -1 1`; do dunstify -t 1000 --replace=699 "Taking shot in : $sec" sleep 1 done } # take shots shotnow () { cd ${dir} && sleep 0.5 && maim -u -f png | copy_shot notify_view } shot5 () { countdown '5' sleep 1 && cd ${dir} && maim -u -f png | copy_shot notify_view } shot10 () { countdown '10' sleep 1 && cd ${dir} && maim -u -f png | copy_shot notify_view } shotwin () { cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot notify_view } shotarea () { cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot notify_view } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then shotnow elif [[ "$1" == '--opt2' ]]; then shotarea elif [[ "$1" == '--opt3' ]]; then shotwin elif [[ "$1" == '--opt4' ]]; then shot5 elif [[ "$1" == '--opt5' ]]; then shot10 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; esac ================================================ FILE: .config/rofi/applets/bin/volume.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Applets : Volume # Import Current Theme source "$HOME"/.config/rofi/applets/shared/theme.bash theme="$type/$style" # Volume Info mixer="`amixer info Master | grep 'Mixer name' | cut -d':' -f2 | tr -d \',' '`" speaker="`amixer get Master | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`" mic="`amixer get Capture | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`" active="" urgent="" # Speaker Info amixer get Master | grep '\[on\]' &>/dev/null if [[ "$?" == 0 ]]; then active="-a 1" stext='Unmute' sicon='' else urgent="-u 1" stext='Mute' sicon='' fi # Microphone Info amixer get Capture | grep '\[on\]' &>/dev/null if [[ "$?" == 0 ]]; then [ -n "$active" ] && active+=",3" || active="-a 3" mtext='Unmute' micon='' else [ -n "$urgent" ] && urgent+=",3" || urgent="-u 3" mtext='Mute' micon='' fi # Theme Elements prompt="S:$stext, M:$mtext" mesg="$mixer - Speaker: $speaker, Mic: $mic" if [[ "$theme" == *'type-1'* ]]; then list_col='1' list_row='5' win_width='400px' elif [[ "$theme" == *'type-3'* ]]; then list_col='1' list_row='5' win_width='120px' elif [[ "$theme" == *'type-5'* ]]; then list_col='1' list_row='5' win_width='520px' elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then list_col='5' list_row='1' win_width='670px' fi # Options layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2` if [[ "$layout" == 'NO' ]]; then option_1=" Increase" option_2="$sicon $stext" option_3=" Decrese" option_4="$micon $mtext" option_5=" Settings" else option_1="" option_2="$sicon" option_3="" option_4="$micon" option_5="" fi # Rofi CMD rofi_cmd() { rofi -theme-str "window {width: $win_width;}" \ -theme-str "listview {columns: $list_col; lines: $list_row;}" \ -theme-str 'textbox-prompt-colon {str: "";}' \ -dmenu \ -p "$prompt" \ -mesg "$mesg" \ ${active} ${urgent} \ -markup-rows \ -theme ${theme} } # Pass variables to rofi dmenu run_rofi() { echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd } # Execute Command run_cmd() { if [[ "$1" == '--opt1' ]]; then amixer -Mq set Master,0 5%+ unmute elif [[ "$1" == '--opt2' ]]; then amixer set Master toggle elif [[ "$1" == '--opt3' ]]; then amixer -Mq set Master,0 5%- unmute elif [[ "$1" == '--opt4' ]]; then amixer set Capture toggle elif [[ "$1" == '--opt5' ]]; then pavucontrol fi } # Actions chosen="$(run_rofi)" case ${chosen} in $option_1) run_cmd --opt1 ;; $option_2) run_cmd --opt2 ;; $option_3) run_cmd --opt3 ;; $option_4) run_cmd --opt4 ;; $option_5) run_cmd --opt5 ;; esac ================================================ FILE: .config/rofi/applets/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/catppuccin.rasi" ================================================ FILE: .config/rofi/applets/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "JetBrains Mono Nerd Font 10"; } ================================================ FILE: .config/rofi/applets/shared/theme.bash ================================================ ## Current Theme type="$HOME/.config/rofi/applets/type-1" style='style-1.rasi' @import "~/.config/rofi/colors/catppuccin.rasi" ================================================ FILE: .config/rofi/applets/type-1/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=NO */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 1px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; scrollbar: false; layout: vertical; spacing: 5px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element normal.normal, element alternate.normal { background-color: var(background); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-1/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=NO */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 1px solid; border-radius: 12px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 12px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 12px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; scrollbar: false; layout: vertical; spacing: 5px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 10px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element normal.normal, element alternate.normal { background-color: var(background); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-1/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=NO */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 1px solid; border-radius: 30px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 100%; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; scrollbar: false; layout: vertical; spacing: 5px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element normal.normal, element alternate.normal { background-color: var(background); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-2/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 28"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-2/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 12px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 12px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 12px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 28"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-2/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 30px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 100%; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 28"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-3/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: east; anchor: east; fullscreen: false; width: 120px; x-offset: -20px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 15px; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 23px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-3/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: east; anchor: east; fullscreen: false; width: 120px; x-offset: -20px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 15px; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 23px 10px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-3/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "../shared/colors.rasi" @import "../shared/fonts.rasi" /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: east; anchor: east; fullscreen: false; width: 120px; x-offset: -20px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 100%; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 15px; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 23px 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-4/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 20px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 25px; padding: 100px 50px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; background-image: url("~/.config/rofi/images/a.png", width); text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy{ background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 20px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 28"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-4/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #2D1B14; background-alt: #462D23; foreground: #FFFFFF; selected: #E25F3E; active: #716251; urgent: #934A1C; } /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 20px; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 25px; padding: 100px 50px; border: 0px; border-radius: 20px; border-color: @selected; background-color: transparent; background-image: url("~/.config/rofi/images/d.png", width); text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy{ background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 10px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 10px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 20px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 28"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-4/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #131D1F; background-alt: #183A43; foreground: #FFFFFF; selected: #649094; active: #E9CC9D; urgent: #FEA861; } /* USE_ICON=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 50px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 20px; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 25px; padding: 100px 50px; border: 0px; border-radius: 40px; border-color: @selected; background-color: transparent; background-image: url("~/.config/rofi/images/i.jpg", width); text-color: @foreground; children: [ "textbox-prompt-colon", "dummy", "prompt"]; } dummy{ background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 100%; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 20px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: "feather 28"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element normal.normal, element alternate.normal { background-color: var(background-alt); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-5/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #231419; background-alt: #2D1E23; foreground: #FFFFFF; selected: #426647; active: #2E3F34; urgent: #D08261; } /* USE_ICON=NO */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { background-color: transparent; background-image: url("~/.config/rofi/images/e.jpg", height); children: [ "dummy", "inputbar", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; background-color: transparent; text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy{ background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 0px; background-color: @active; text-color: @foreground; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 5px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element normal.normal, element alternate.normal { background-color: var(background); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(foreground); } ================================================ FILE: .config/rofi/applets/type-5/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /* USE_ICON=NO */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { border-radius: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/j.jpg", height); children: [ "dummy", "inputbar", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; background-color: transparent; text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy{ background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border-radius: 15px; background-color: @urgent; text-color: @foreground; } prompt { enabled: true; padding: 10px; border-radius: 15px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 5px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 10px; border: 0px solid; border-radius: 15px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element normal.normal, element alternate.normal { background-color: var(background); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/applets/type-5/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #101010; background-alt: #252525; foreground: #FFFFFF; selected: #505050; active: #909090; urgent: #707070; } /* USE_ICON=NO */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 30px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { border: 2px solid; border-radius: 100%; border-color: @selected; background-color: transparent; background-image: url("~/.config/rofi/images/g.png", height); children: [ "dummy", "inputbar", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; background-color: transparent; text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy{ background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 13px; border: 2px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; } prompt { enabled: true; padding: 10px; border: 2px solid; border-radius: 100%; border-color: @foreground; background-color: @foreground; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; scrollbar: false; layout: vertical; spacing: 5px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 11px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element normal.normal, element alternate.normal { background-color: var(background); text-color: var(foreground); } element normal.urgent, element alternate.urgent, element selected.active { background-color: var(urgent); text-color: var(background); } element normal.active, element alternate.active, element selected.urgent { background-color: var(active); text-color: var(background); } element selected.normal { border: 2px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: var(foreground); } ================================================ FILE: .config/rofi/colors/adapta.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #222D32FF; background-alt: #29353BFF; foreground: #B8C2C6FF; selected: #00BCD4FF; active: #21FF90FF; urgent: #FF4B60FF; } ================================================ FILE: .config/rofi/colors/arc.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #2F343FFF; background-alt: #383C4AFF; foreground: #BAC5D0FF; selected: #5294E2FF; active: #98C379FF; urgent: #E06B74FF; } ================================================ FILE: .config/rofi/colors/black.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #000000FF; background-alt: #101010FF; foreground: #FFFFFFFF; selected: #62AEEFFF; active: #98C379FF; urgent: #E06B74FF; } ================================================ FILE: .config/rofi/colors/catppuccin.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #1E1D2FFF; background-alt: #282839FF; foreground: #D9E0EEFF; selected: #7AA2F7FF; active: #ABE9B3FF; urgent: #F28FADFF; } ================================================ FILE: .config/rofi/colors/cyberpunk.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #000B1EFF; background-alt: #0A1528FF; foreground: #0ABDC6FF; selected: #0ABDC6FF; active: #00FF00FF; urgent: #FF0000FF; } ================================================ FILE: .config/rofi/colors/dracula.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #1E1F29FF; background-alt: #282A36FF; foreground: #FFFFFFFF; selected: #BD93F9FF; active: #50FA7BFF; urgent: #FF5555FF; } ================================================ FILE: .config/rofi/colors/everforest.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #323D43FF; background-alt: #3C474DFF; foreground: #DAD1BEFF; selected: #7FBBB3FF; active: #A7C080FF; urgent: #E67E80FF; } ================================================ FILE: .config/rofi/colors/gruvbox.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #bdae93FF; background-alt: #a89984FF; foreground: #32302fFF; selected: #83A598FF; active: #B8BB26FF; urgent: #FB4934FF; } ================================================ FILE: .config/rofi/colors/lovelace.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #1D1F28FF; background-alt: #282A36FF; foreground: #FDFDFDFF; selected: #79E6F3FF; active: #5ADECDFF; urgent: #F37F97FF; } ================================================ FILE: .config/rofi/colors/navy.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #021B21FF; background-alt: #0C252BFF; foreground: #F2F1B9FF; selected: #44B5B1FF; active: #7CBF9EFF; urgent: #C2454EFF; } ================================================ FILE: .config/rofi/colors/nord.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #2E3440FF; background-alt: #383E4AFF; foreground: #E5E9F0FF; selected: #81A1C1FF; active: #A3BE8CFF; urgent: #BF616AFF; } ================================================ FILE: .config/rofi/colors/onedark.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #1E2127FF; background-alt: #282B31FF; foreground: #FFFFFFFF; selected: #61AFEFFF; active: #98C379FF; urgent: #E06C75FF; } ================================================ FILE: .config/rofi/colors/paper.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #F1F1F1FF; background-alt: #E0E0E0FF; foreground: #252525FF; selected: #008EC4FF; active: #10A778FF; urgent: #C30771FF; } ================================================ FILE: .config/rofi/colors/solarized.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #002B36FF; background-alt: #073642FF; foreground: #EEE8D5FF; selected: #268BD2FF; active: #859900FF; urgent: #DC322FFF; } ================================================ FILE: .config/rofi/colors/tokyonight.rasi ================================================ /** * * Author : Levi Lacoss (fishyfishfish55) * Github : @fishyfishfish55 * * Colors **/ * { background: #15161EFF; background-alt: #1A1B26FF; foreground: #C0CAF5FF; selected: #33467CFF; active: #414868FF; urgent: #F7768EFF; } ================================================ FILE: .config/rofi/colors/yousai.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors **/ * { background: #F5E7DEFF; background-alt: #EBDCD2FF; foreground: #34302DFF; selected: #D97742FF; active: #BF8F60FF; urgent: #B23636FF; } ================================================ FILE: .config/rofi/config.rasi ================================================ @import "~/.cache/wal/colors-rofi-dark" /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Configuration For Rofi Version: 1.7.3 **/ configuration { /*---------- General setting ----------*/ modi: "drun,run,filebrowser,window"; case-sensitive: false; cycle: true; filter: ""; scroll-method: 0; normalize-match: true; show-icons: true; icon-theme: "Papirus"; /* cache-dir: ;*/ steal-focus: false; /* dpi: -1;*/ /*---------- Matching setting ----------*/ matching: "normal"; tokenize: true; /*---------- SSH settings ----------*/ ssh-client: "ssh"; ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]"; parse-hosts: true; parse-known-hosts: true; /*---------- Drun settings ----------*/ drun-categories: ""; drun-match-fields: "name,generic,exec,categories,keywords"; drun-display-format: "{name} [({generic})]"; drun-show-actions: false; drun-url-launcher: "xdg-open"; drun-use-desktop-cache: false; drun-reload-desktop-cache: false; drun { /** Parse user desktop files. */ parse-user: true; /** Parse system desktop files. */ parse-system: true; } /*---------- Run settings ----------*/ run-command: "{cmd}"; run-list-command: ""; run-shell-command: "{terminal} -e {cmd}"; /*---------- Fallback Icon ----------*/ run,drun { fallback-icon: "application-x-addon"; } /*---------- Window switcher settings ----------*/ window-match-fields: "title,class,role,name,desktop"; window-command: "wmctrl -i -R {window}"; window-format: "{w} - {c} - {t:0}"; window-thumbnail: false; /*---------- Combi settings ----------*/ /* combi-modi: "window,run";*/ /* combi-hide-mode-prefix: false;*/ /* combi-display-format: "{mode} {text}";*/ /*---------- History and Sorting ----------*/ disable-history: false; sorting-method: "normal"; max-history-size: 25; /*---------- Display setting ----------*/ display-window: "Windows"; display-windowcd: "Window CD"; display-run: "Run"; display-ssh: "SSH"; display-drun: "Apps"; display-combi: "Combi"; display-keys: "Keys"; display-filebrowser: "Files"; /*---------- Misc setting ----------*/ terminal: "rofi-sensible-terminal"; font: "Mono 12"; sort: false; threads: 0; click-to-exit: true; /* ignored-prefixes: "";*/ /* pid: "/run/user/1000/rofi.pid";*/ /*---------- File browser settings ----------*/ filebrowser { /* directory: "/home";*/ directories-first: true; sorting-method: "name"; } /*---------- Other settings ----------*/ timeout { action: "kb-cancel"; delay: 0; } /*---------- Keybindings ----------*/ /* kb-primary-paste: "Control+V,Shift+Insert"; kb-secondary-paste: "Control+v,Insert"; kb-clear-line: "Control+w"; kb-move-front: "Control+a"; kb-move-end: "Control+e"; kb-move-word-back: "Alt+b,Control+Left"; kb-move-word-forward: "Alt+f,Control+Right"; kb-move-char-back: "Left,Control+b"; kb-move-char-forward: "Right,Control+f"; kb-remove-word-back: "Control+Alt+h,Control+BackSpace"; kb-remove-word-forward: "Control+Alt+d"; kb-remove-char-forward: "Delete,Control+d"; kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h"; kb-remove-to-eol: "Control+k"; kb-remove-to-sol: "Control+u"; kb-accept-entry: "Control+j,Control+m,Return,KP_Enter"; kb-accept-custom: "Control+Return"; kb-accept-custom-alt: "Control+Shift+Return"; kb-accept-alt: "Shift+Return"; kb-delete-entry: "Shift+Delete"; kb-mode-next: "Shift+Right,Control+Tab"; kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; kb-mode-complete: "Control+l"; kb-row-left: "Control+Page_Up"; kb-row-right: "Control+Page_Down"; kb-row-down: "Down,Control+n"; kb-page-prev: "Page_Up"; kb-page-next: "Page_Down"; kb-row-first: "Home,KP_Home"; kb-row-last: "End,KP_End"; kb-row-select: "Control+space"; kb-screenshot: "Alt+S"; kb-ellipsize: "Alt+period"; kb-toggle-case-sensitivity: "grave,dead_grave"; kb-toggle-sort: "Alt+grave"; kb-cancel: "Escape,Control+g,Control+bracketleft"; kb-custom-1: "Alt+1"; kb-custom-2: "Alt+2"; kb-custom-3: "Alt+3"; kb-custom-4: "Alt+4"; kb-custom-5: "Alt+5"; kb-custom-6: "Alt+6"; kb-custom-7: "Alt+7"; kb-custom-8: "Alt+8"; kb-custom-9: "Alt+9"; kb-custom-10: "Alt+0"; kb-custom-11: "Alt+exclam"; kb-custom-12: "Alt+at"; kb-custom-13: "Alt+numbersign"; kb-custom-14: "Alt+dollar"; kb-custom-15: "Alt+percent"; kb-custom-16: "Alt+dead_circumflex"; kb-custom-17: "Alt+ampersand"; kb-custom-18: "Alt+asterisk"; kb-custom-19: "Alt+parenleft"; kb-select-1: "Super+1"; kb-select-2: "Super+2"; kb-select-3: "Super+3"; kb-select-4: "Super+4"; kb-select-5: "Super+5"; kb-select-6: "Super+6"; kb-select-7: "Super+7"; kb-select-8: "Super+8"; kb-select-9: "Super+9"; kb-select-10: "Super+0"; ml-row-left: "ScrollLeft"; ml-row-right: "ScrollRight"; ml-row-up: "ScrollUp"; ml-row-down: "ScrollDown"; me-select-entry: "MousePrimary"; me-accept-entry: "MouseDPrimary"; me-accept-custom: "Control+MouseDPrimary"; */ } ================================================ FILE: .config/rofi/launchers/type-1/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 ## style-11 style-12 style-13 style-14 style-15 dir="$HOME/.config/rofi/launchers/type-1" theme='style-5' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-1/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/launchers/type-1/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "JetBrains Mono Nerd Font 10"; } ================================================ FILE: .config/rofi/launchers/type-1/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser"; show-icons: false; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 10; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 10px ; handle-color: @handle-colour; border-radius: 10px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px 10px; border: 0px solid; border-radius: 20px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 5px 10px; border: 0px solid; border-radius: 20px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 5px 10px; border: 0px solid; border-radius: 20px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 2px solid; border-radius: 20px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(foreground); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: north; anchor: north; fullscreen: false; width: 100%; x-offset: 0px; y-offset: 0px; children: [ horibox ]; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Horizontal Box -----*****/ horibox { spacing: 0px; background-color: @background-colour; text-color: @foreground-colour; orientation: horizontal; children: [ "prompt", "textbox-prompt-colon","entry", "listview" ]; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 10px; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; padding: 10px 0px 10px 0px; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 10px; expand: false; width: 20em; background-color: inherit; text-color: inherit; cursor: text; placeholder: "search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 100; cycle: true; dynamic: true; scrollbar: false; layout: horizontal; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 8px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 8px; margin: 0px; padding: 10px 8px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; } button { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: transparent; text-color: inherit; cursor: pointer; } button selected { background-color: var(normal-foreground); text-color: var(normal-background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 8px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-11.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser"; show-icons: false; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 2px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-12.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser"; show-icons: false; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); /* For Screens with 1920x1080 resolution */ screen-margin: 310px 400px; box-spacing: 20px; element-padding: 15px; element-radius: 100%; element-spacing: 15px; /* For Screens with 1366x768 resolution */ /* screen-margin: 190px 250px; box-spacing: 20px; element-padding: 10px; element-radius: 100%; element-spacing: 10px; */ /* Use this as reference and create for your screen resolution */ } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: @box-spacing; margin: @screen-margin; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: @element-spacing; margin: 0px; padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 10; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 10px ; handle-color: @handle-colour; border-radius: @element-radius; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: @element-spacing; margin: 0px; padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: @element-padding; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-13.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: false; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); /* For Screens with 1920x1080 resolution */ screen-margin: 310px 500px; box-spacing: 20px; element-padding: 15px; element-radius: 8px; element-spacing: 15px; /* For Screens with 1366x768 resolution */ /* screen-margin: 190px 350px; box-spacing: 20px; element-padding: 10px; element-radius: 6px; element-spacing: 10px; */ /* Use this as reference and create for your screen resolution */ } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: @box-spacing; margin: @screen-margin; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: @element-spacing; margin: 0px; padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: ":"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 8px ; handle-color: @handle-colour; border-radius: @element-radius; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: @element-spacing; margin: 0px; padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: @element-padding; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-14.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); /* For Screens with 1920x1080 resolution */ screen-margin: 275px 400px; box-spacing: 20px; list-padding: 8px; element-padding: 15px; element-radius: 8px; element-spacing: 15px; /* For Screens with 1366x768 resolution */ /* screen-margin: 120px 225px; box-spacing: 20px; list-padding: 4px; element-padding: 10px; element-radius: 6px; element-spacing: 10px; */ /* Use this as reference and create for your screen resolution */ } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: @box-spacing; margin: @screen-margin; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry", "mode-switcher" ]; } prompt { enabled: true; padding: @element-padding; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; padding: @element-padding; str: ""; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; } entry { enabled: true; expand: true; padding: @element-padding; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 8px ; handle-color: @handle-colour; border-radius: @element-radius; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: @element-spacing; margin: 0px; padding: @list-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: @element-padding; width: 125px; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: @element-padding; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-15.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); /* For Screens with 1920x1080 resolution */ screen-margin: 275px 400px; box-spacing: 20px; list-padding: 8px; element-padding: 15px; element-radius: 8px; element-spacing: 15px; /* For Screens with 1366x768 resolution */ /* screen-margin: 180px 225px; box-spacing: 20px; list-padding: 4px; element-padding: 10px; element-radius: 6px; element-spacing: 10px; */ /* Use this as reference and create for your screen resolution */ } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: @box-spacing; margin: @screen-margin; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "custombox" ]; } /*****----- A Custom Box -----*****/ custombox { spacing: @box-spacing; background-color: @background-colour; text-color: @foreground-colour; orientation: horizontal; children: [ "mode-switcher", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; padding: @element-padding; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; padding: @element-padding; str: ""; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; } entry { enabled: true; expand: true; padding: @element-padding; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 8px ; handle-color: @handle-colour; border-radius: @element-radius; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: @element-spacing; margin: 0px; padding: @list-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; orientation: vertical; spacing: @box-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: @element-padding; width: 125px; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: @element-padding; border: 0px solid; border-radius: @element-radius; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: @element-padding; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(foreground); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 8px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 12; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 8px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 8px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(normal-foreground); text-color: var(normal-background); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(foreground); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 8px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 8px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 8px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(normal-foreground); text-color: var(normal-background); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(normal-foreground); text-color: var(normal-background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(foreground); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: west; anchor: west; fullscreen: false; width: 450px; height: 100%; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 8px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 8px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(normal-foreground); text-color: var(normal-background); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; } button { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: transparent; text-color: inherit; cursor: pointer; } button selected { background-color: var(normal-foreground); text-color: var(normal-background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 8px; border: 0px solid; border-radius: 4px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry", "mode-switcher" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; padding: 5px 0px; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 5px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 10px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px 10px; border: 0px solid; border-radius: 10px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 5px 10px; border: 0px solid; border-radius: 10px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 8px 10px; border: 0px solid; border-radius: 10px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 2px solid; border-radius: 10px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "mode-switcher", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; padding: 5px 0px; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 5px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 10px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 12px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 12px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 0px; border: 2px solid; border-radius: 8px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "mode-switcher", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px 0px 10px 0px; padding: 5px 10px; border: 0px solid; border-radius: 10px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; padding: 5px 0px; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 5px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 10px; border: 0px 2px 2px 2px ; border-radius: 0px 0px 10px 10px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 10px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 6px; border: 0px solid; border-radius: 6px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px 0px 2px 0px ; border-radius: 10px 10px 0px 0px; border-color: @border-colour; background-color: @background-colour; text-color: inherit; cursor: pointer; } button selected { border: 2px 2px 0px 2px ; border-radius: 10px 10px 0px 0px; border-color: @border-colour; background-color: var(normal-background); text-color: var(normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px 0px 10px 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 10px; border: 0px solid; border-radius: 10px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 2px solid; border-radius: 10px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,ssh,window"; show-icons: false; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; display-ssh: " SSH"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "custombox" ]; } /*****----- A Custom Box -----*****/ custombox { spacing: 10px; background-color: @background-colour; text-color: @foreground-colour; orientation: horizontal; children: [ "mode-switcher", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 8px 12px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; padding: 5px 0px; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 5px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 10px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; orientation: vertical; spacing: 10px; margin: 0px; padding: 0px 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 0px 20px 0px 20px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 12px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 2px solid; border-radius: 8px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-1/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,ssh,window"; show-icons: false; display-drun: " Apps"; display-run: " Run"; display-filebrowser: " Files"; display-window: " Windows"; display-ssh: " SSH"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 700px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @border-colour; cursor: "default"; /* Backgroud Colors */ background-color: @background-colour; /* Backgroud Image */ //background-image: url("/path/to/image.png", none); /* Simple Linear Gradient */ //background-image: linear-gradient(red, orange, pink, purple); /* Directional Linear Gradient */ //background-image: linear-gradient(to bottom, pink, yellow, magenta); /* Angle Linear Gradient */ //background-image: linear-gradient(45, cyan, purple, indigo); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "custombox" ]; } /*****----- A Custom Box -----*****/ custombox { spacing: 0px; background-color: @background-colour; text-color: @foreground-colour; orientation: horizontal; children: [ "mode-switcher", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 8px 12px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; padding: 5px 0px; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 5px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: inherit; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: inherit; text-color: inherit; } case-indicator { enabled: true; background-color: inherit; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 10px; border: 2px 2px 2px 0px; border-radius: 0px 8px 8px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 10px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; orientation: vertical; spacing: 0px; margin: 0px; padding: 0px 0px; border: 0px solid; border-radius: 8px 0px 0px 8px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; } button { padding: 0px 20px 0px 20px; border: 0px 2px 0px 0px; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; cursor: pointer; } button selected { border: 2px 0px 2px 2px; border-radius: 8px 0px 0px 8px; border-color: @border-colour; background-color: var(selected-normal-foreground); text-color: var(selected-normal-background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 12px; border: 0px solid; border-radius: 8px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 2px solid; border-radius: 8px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-2/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 ## style-11 style-12 style-13 style-14 style-15 dir="$HOME/.config/rofi/launchers/type-2" theme='style-1' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-2/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/launchers/type-2/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "Iosevka Nerd Font 10"; } ================================================ FILE: .config/rofi/launchers/type-2/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @selected; text-color: @background; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 12px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { /* For Screens with 1920x1080 resolution */ screen-margin: 180px 150px; box-spacing: 40px; icon-size: 96px; element-padding: 30px; element-spacing: 15px; /* For Screens with 1366x768 resolution */ /* screen-margin: 120px 60px; box-spacing: 40px; icon-size: 64px; element-padding: 20px; element-spacing: 10px; */ /* Use this as reference and create for your screen resolution */ } /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: @box-spacing; margin: @screen-margin; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px 50% 0px 0px; padding: 15px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @selected; text-color: @background; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 8; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: @element-spacing; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: @element-spacing; margin: 0px; padding: @element-padding; border: 0px solid; border-radius: 30px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { border: 0px 0px 4px 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: @icon-size; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 150px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-11.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: "Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 150px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px 0px 2px 0px; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 12px; border-radius: 100%; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 12px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 20px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background-alt; text-color: @foreground; } element alternate.normal { background-color: @background-alt; text-color: @foreground; } element selected.normal { border: 0px 0px 2px 2px; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @selected; } element-icon { padding: 0px 0px 0px 0px; background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 100px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-12.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: " Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 200px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 20px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 15px; border-radius: 100%; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; expand: false; width: 350px; padding: 15px 20px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 4; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { padding: 0px 0px 0px 0px; background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 100px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-13.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: " Apps"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 100%; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 50px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 20px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 15px; border-radius: 15px; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; expand: false; width: 350px; padding: 15px 20px; border-radius: 15px; background-color: @background-alt; text-color: @foreground; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 10; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 20px; margin: 0px; padding: 30px 10px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: @background; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { padding: 0px 0px 0px 0px; background-color: transparent; text-color: inherit; size: 96px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 50px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-14.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: " Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1200px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; orientation: horizontal; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; children: [ "prompt", "entry" ]; orientation: vertical; } prompt { enabled: true; expand: false; padding: 15px 50px; border-radius: 10px; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; expand: false; padding: 15px 20px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 4; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: @background; text-color: @foreground; orientation: horizontal; cursor: pointer; } element normal.normal { background-color: @background-alt; text-color: @foreground; } element alternate.normal { background-color: @background-alt; text-color: @foreground; } element selected.normal { border: 0px 2px 0px 2px; border-radius: 10px; border-color: @selected; background-color: @background-alt; text-color: @selected; } element-icon { padding: 0px; background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-15.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: " Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 450px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "listview", "entry" ]; } /*****----- Inputbar -----*****/ entry { enabled: true; expand: false; padding: 20px 0px; background-color: @selected; text-color: @background; cursor: text; placeholder: "Search..."; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 20px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 700px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @background; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 12px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @foreground; text-color: @background; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 6px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @background; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: "Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 12px; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 12px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background-alt; text-color: @foreground; } element alternate.normal { background-color: @background-alt; text-color: @foreground; } element selected.normal { border: 0px 0px 0px 4px; border-color: @selected; background-color: @background-alt; text-color: @selected; } element-icon { padding: 0px 0px 0px 10px; background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: "Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 700px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 16px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 16px; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 12px; border-radius: 16px; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 12px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 7; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 16px; border-color: @selected; background-color: @background; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background-alt; text-color: @foreground; } element alternate.normal { background-color: @background-alt; text-color: @foreground; } element selected.normal { border: 0px 5px 0px 5px; border-radius: 16px; border-color: @selected; background-color: @background-alt; text-color: @selected; } element-icon { padding: 0px 0px 0px 10px; background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 16px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: west; anchor: west; fullscreen: false; width: 450px; height: 100%; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @selected; text-color: @background; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 6px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 750px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @selected; text-color: @background; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 20px 10px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: @background; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 12px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: " Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 40px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; padding: 15px; border-radius: 100%; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; padding: 15px; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 15px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 20px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 20px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { background-color: transparent; text-color: @foreground; } element-icon { padding: 30px; border-radius: 20px; background-color: @background-alt; text-color: inherit; size: 64px; cursor: inherit; } element-text { padding: 10px; background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element-text selected { border-radius: 100%; background-color: @selected; text-color: @background; } /*****----- Message -----*****/ error-message { padding: 20px; border: 2px solid; border-radius: 20px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-2/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: " Applications"; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 40px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; padding: 15px; border-radius: 100%; background-color: @selected; text-color: @background; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; padding: 15px; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 15px 0px; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 6; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: horizontal; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border-radius: 100%; background-color: @background-alt; text-color: @selected; } element-icon { padding: 10px; border-radius: 100%; background-color: @selected; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 20px; border: 2px solid; border-radius: 20px; border-color: @selected; background-color: @background; text-color: @foreground; } textbox { background-color: @background; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 dir="$HOME/.config/rofi/launchers/type-3" theme='style-5' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-3/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/launchers/type-3/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "Iosevka Nerd Font 10"; } ================================================ FILE: .config/rofi/launchers/type-3/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 750px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; background-color: black / 10%; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: white / 5%; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: transparent; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: transparent; text-color: inherit; } entry { enabled: true; background-color: transparent; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 20px 10px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { background-color: white / 5%; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 15px; border: 2px solid; border-radius: 10px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px 500px 0px 0px; padding: 12px; border: 0px 0px 0px 4px; border-radius: 0px 100% 100% 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 7; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 15px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border: 0px 0px 0px 4px; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 40px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 100px; margin: 0px; padding: 100px 225px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0% 25%; padding: 18px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: white / 5%; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: transparent; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: transparent; text-color: inherit; } entry { enabled: true; background-color: transparent; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 8; lines: 4; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 35px 10px; border: 0px solid; border-radius: 15px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { background-color: white / 5%; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 72px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 100px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 100px; margin: 0px; padding: 100px 225px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0% 28%; padding: 10px; border: 1px solid; border-radius: 6px; border-color: white / 25%; background-color: white / 5%; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: transparent; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: transparent; text-color: inherit; } entry { enabled: true; background-color: transparent; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 7; lines: 4; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 35px 10px; border: 0px solid; border-radius: 15px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { background-color: white / 5%; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 72px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 100px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 750px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 12px; border: 1px solid; border-radius: 4px; border-color: @selected; background-color: @background; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 20px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border: 1px solid; border-radius: 4px; border-color: @selected; background-color: @background; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 10px; border: 1px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: north; anchor: north; fullscreen: false; width: 750px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 1px solid; border-radius: 4px; border-color: @selected; background-color: @background; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 7; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: horizontal; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border: 1px solid; border-radius: 4px; border-color: @selected; background-color: @background; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 500px; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; children: [ "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; margin: 0px; padding: 20px 10px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 128px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: west; anchor: west; fullscreen: false; width: 600px; height: 100%; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 40px 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 12px 16px; border: 0px 0px 2px 0px; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search Apps"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border: 0px 0px 2px 0px; border-radius: 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: west; anchor: west; fullscreen: false; width: 500px; x-offset: 20px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 30px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 12px 16px; border: 0px 0px 2px 0px; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search Apps"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 4; lines: 4; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border: 0px 0px 2px 0px; border-radius: 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-3/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; drun-display-format: "{name}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { transparency: "real"; location: east; anchor: east; fullscreen: false; width: 180px; height: 100%; x-offset: 0px; y-offset: 0px; enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; cursor: "default"; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 30px 20px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 12px 16px; border: 0px 0px 2px 0px; border-radius: 4px; border-color: @selected; background-color: @background-alt; text-color: @foreground; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @selected; border-radius: 0px; background-color: @background-alt; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 20px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; orientation: vertical; cursor: pointer; } element normal.normal { background-color: transparent; text-color: @foreground; } element selected.normal { border: 0px 0px 2px 0px; border-radius: 4px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: black / 10%; text-color: @foreground; } textbox { background-color: transparent; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; } ================================================ FILE: .config/rofi/launchers/type-4/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 dir="$HOME/.config/rofi/launchers/type-4" theme='style-3' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-4/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/catppuccin.rasi" ================================================ FILE: .config/rofi/launchers/type-4/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "Iosevka Nerd Font 10"; } ================================================ FILE: .config/rofi/launchers/type-4/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 1px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px 0px 1px 0px; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: false; display-drun: " Apps"; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: north; anchor: north; fullscreen: false; width: 100%; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 5px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "prompt", "entry", "listview" ]; orientation: horizontal; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 5px 10px; border: 0px; border-radius: 100%; border-color: @border-colour; background-color: @border-colour; text-color: @background-colour; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; expand: false; padding: 5px 10px; width: 200px; border-radius: 100%; background-color: @alternate-background; text-color: @foreground-colour; cursor: text; placeholder: "Search..."; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; lines: 100; cycle: true; dynamic: true; scrollbar: false; layout: horizontal; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px 10px; border: 0px solid; border-radius: 100%; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 1px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 5px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px 0px 1px dash 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 12; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 50px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px 0px 2px dash 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 12; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(alternate-background); text-color: var(selected-normal-background); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px 0px 10px 10px; border: 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: ""; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 12; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(alternate-background); text-color: var(foreground-colour); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: "drun"; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px 0px 1px 0px; border-radius: 0px; border-color: @alternate-background; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; padding: 15px; border: 0px 1px 0px 0px; border-radius: 0px; border-color: @alternate-background; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; padding: 15px; background-color: inherit; text-color: inherit; cursor: text; placeholder: ""; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 8px 15px; border: 0px 0px 1px 0px; border-radius: 0px; border-color: @alternate-background; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(alternate-background); text-color: var(foreground-colour); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: "drun :"; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 35%; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: ""; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 12; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(alternate-background); text-color: var(foreground-colour); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 100px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: "drun :"; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; height: 768px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 0px; padding: 25% 35%; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px; border-radius: 20px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; children: [ "entry" ]; } prompt { enabled: true; background-color: transparent; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: "::"; background-color: transparent; text-color: inherit; } entry { enabled: true; background-color: transparent; text-color: inherit; cursor: text; placeholder: "Type here to search for apps"; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 12; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 20px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 12px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: transparent; text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: white / 5%; text-color: var(foreground-colour); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: transparent; text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 100px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @alternate-background; text-color: @foreground-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser"; show-icons: false; display-drun: "drun"; display-run: "run"; display-filebrowser: "files"; display-window: "windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px 5px; border: 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "prompt", "textbox-prompt-colon", "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: ":"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-background); text-color: var(urgent-foreground); } element normal.active { background-color: var(active-background); text-color: var(active-foreground); } element selected.normal { background-color: var(selected-normal-foreground); text-color: var(selected-normal-background); } element selected.urgent { background-color: var(selected-urgent-background); text-color: var(selected-urgent-foreground); } element selected.active { background-color: var(selected-active-background); text-color: var(selected-active-foreground); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-background); text-color: var(alternate-urgent-foreground); } element alternate.active { background-color: var(alternate-active-background); text-color: var(alternate-active-foreground); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: inherit; cursor: pointer; } button selected { background-color: var(alternate-background); text-color: var(selected-normal-background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @border-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-4/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: false; display-drun: "drun"; display-run: "run"; display-filebrowser: "files"; display-window: "windows"; drun-display-format: "{name} [({generic})]"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { border-colour: var(selected); handle-colour: var(selected); background-colour: var(background); foreground-colour: var(foreground); alternate-background: var(background-alt); normal-background: var(background); normal-foreground: var(foreground); urgent-background: var(urgent); urgent-foreground: var(background); active-background: var(active); active-foreground: var(background); selected-normal-background: var(selected); selected-normal-foreground: var(background); selected-urgent-background: var(active); selected-urgent-foreground: var(background); selected-active-background: var(urgent); selected-active-foreground: var(background); alternate-normal-background: var(background); alternate-normal-foreground: var(foreground); alternate-urgent-background: var(urgent); alternate-urgent-foreground: var(background); alternate-active-background: var(active); alternate-active-foreground: var(background); } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; cursor: "default"; background-color: @background-colour; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 40px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; children: [ "inputbar", "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 10px 5px; border: 0px 0px 1px 0px; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; children: [ "entry" ]; } prompt { enabled: true; background-color: inherit; text-color: inherit; } textbox-prompt-colon { enabled: true; expand: false; str: ":"; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "search..."; placeholder-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: true; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: "default"; } scrollbar { handle-width: 1px ; handle-color: @handle-colour; border-radius: 0px; background-color: @alternate-background; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 2px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; cursor: pointer; } element normal.normal { background-color: var(normal-background); text-color: var(normal-foreground); } element normal.urgent { background-color: var(urgent-foreground); text-color: var(urgent-background); } element normal.active { background-color: var(active-foreground); text-color: var(active-background); } element selected.normal { background-color: var(selected-normal-foreground); text-color: var(selected-normal-background); } element selected.urgent { background-color: var(selected-urgent-foreground); text-color: var(selected-urgent-background); } element selected.active { background-color: var(selected-active-foreground); text-color: var(selected-active-background); } element alternate.normal { background-color: var(alternate-normal-background); text-color: var(alternate-normal-foreground); } element alternate.urgent { background-color: var(alternate-urgent-foreground); text-color: var(alternate-urgent-background); } element alternate.active { background-color: var(alternate-active-foreground); text-color: var(alternate-active-background); } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } button { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: inherit; cursor: pointer; } button selected { background-color: var(selected-normal-background); text-color: var(selected-normal-foreground); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: @border-colour; background-color: transparent; text-color: @foreground-colour; } textbox { padding: 5px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @border-colour; vertical-align: 0.5; horizontal-align: 0.0; highlight: none; placeholder-color: @foreground-colour; blink: true; markup: true; } error-message { padding: 30px; border: 0px solid; border-radius: 0px; border-color: @border-colour; background-color: @background-colour; text-color: @foreground-colour; } ================================================ FILE: .config/rofi/launchers/type-5/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 dir="$HOME/.config/rofi/launchers/type-5" theme='style-1' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-5/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: false; display-drun: "Applications"; drun-display-format: ">> {name} [({generic})]"; } /*****----- Global Properties -----*****/ * { font: "Grape Nuts 14"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 860px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: black; cursor: "default"; background-image: url("~/.config/rofi/images/paper.png", none); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 8px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px 0px 0px 0px; border-color: black; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 95px 0px 0px 0px; padding: 0px 30px; border: 0px; border-radius: 0px; border-color: #D79290; background-color: transparent; text-color: black; children: [ "prompt", "entry", "num-filtered-rows", "textbox-num-sep", "num-rows" ]; } prompt { enabled: true; font: "Grape Nuts Bold 14"; background-color: transparent; text-color: inherit; } entry { enabled: true; expand: true; padding: 0px 10px 0px 40px; background-color: transparent; text-color: inherit; cursor: text; placeholder: "Search..."; placeholder-color: inherit; } num-filtered-rows { enabled: true; expand: false; background-color: transparent; text-color: inherit; } textbox-num-sep { enabled: true; expand: false; str: "/"; background-color: transparent; text-color: inherit; } num-rows { enabled: true; expand: false; background-color: transparent; text-color: inherit; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 15; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 4px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: black; background-color: transparent; text-color: black; cursor: "default"; } scrollbar { handle-width: 5px ; handle-color: black; border-radius: 0px; background-color: transparent; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 0px 0px 0px 100px; border: 0px solid; border-radius: 0px; border-color: black; background-color: transparent; text-color: black; cursor: pointer; } element normal.normal { background-color: transparent; text-color: black; } element selected.normal { background-color: transparent; text-color: #D76A67; } element alternate.normal { background-color: transparent; text-color: black; } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; highlight: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 20px; border: 0px solid; border-radius: 0px; border-color: black; background-color: white; text-color: black; } textbox { vertical-align: 0.5; horizontal-align: 0.0; } ================================================ FILE: .config/rofi/launchers/type-5/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}\n[({generic})]"; window-format: "Class : {c}\nWorkspace : {w}"; } /*****----- Global Properties -----*****/ * { font: "Iosevka Nerd Font 10"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border-radius: 12px; cursor: "default"; background-image: url("~/.config/rofi/images/gradient.png", width); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; margin: 40px; padding: 40px; border-radius: 12px; background-color: white/50%; children: [ "inputbar", "mode-switcher", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px 10%; padding: 0px 0px 10px 0px; border: 0px 0px 2px 0px; border-radius: 0px; border-color: gray/20%; background-color: transparent; children: [ "entry" ]; } entry { enabled: true; background-color: transparent; text-color: gray; cursor: text; placeholder: "Type to filter"; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 40px; margin: 0px; padding: 20px 0px 0px 0px; border: 0px solid; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 15px; border: 1px solid; border-radius: 8px; border-color: gray/30%; background-color: white; text-color: black; cursor: pointer; } element normal.active { background-color: #67FF80; text-color: black; } element selected.normal { background-color: #FDD66F; text-color: black; } element selected.active { background-color: #FF7F7C; text-color: black; } element-icon { background-color: transparent; size: 48px; cursor: inherit; } element-text { background-color: inherit; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; spacing: 20px; margin: 0px 10%; background-color: transparent; text-color: white; } button { font: "Iosevka Nerd Font Bold 10"; padding: 6px; border: 0px solid; border-radius: 100%; background-color: #719DF9; text-color: inherit; cursor: pointer; } button selected { background-color: #F37277; text-color: inherit; } /*****----- Message -----*****/ error-message { padding: 20px; background-color: transparent; text-color: black; } textbox { padding: 20px; border-radius: 12px; background-color: white/30%; text-color: black; vertical-align: 0.5; horizontal-align: 0.0; } ================================================ FILE: .config/rofi/launchers/type-5/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,filebrowser,window"; show-icons: true; display-drun: "Apps"; display-run: "Run"; display-filebrowser: "Files"; display-window: "Windows"; drun-display-format: "{name}\n[({generic})]"; window-format: "Class : {c}\nWorkspace : {w}"; } /*****----- Global Properties -----*****/ * { font: "Iosevka Nerd Font 10"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 500px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border-radius: 10px; cursor: "default"; background-color: white; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; padding: 30px; background-color: transparent; children: [ "inputbar", "mode-switcher", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; background-color: transparent; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; padding: 12px 16px; border: 0px; border-radius: 10px; border-color: gray/30%; background-color: gray/15%; text-color: black; str: ""; } entry { enabled: true; padding: 12px 16px; border: 0px; border-radius: 10px; border-color: gray/30%; background-color: gray/15%; text-color: black; cursor: text; placeholder: "Search..."; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 10px; background-color: transparent; text-color: black; cursor: pointer; } element normal.active { background-image: linear-gradient(to right, #19B466, #7BF4B7); text-color: black; } element selected.normal { border-radius: 10px; background-image: linear-gradient(to right, #FF9030, #FFC99B); text-color: black; } element selected.active { background-image: linear-gradient(to right, #EA5553, #EAACAB); text-color: black; } element-icon { background-color: transparent; size: 48px; cursor: inherit; } element-text { background-color: inherit; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; spacing: 15px; background-color: transparent; } button { font: "Iosevka Nerd Font Bold 10"; padding: 10px; border-radius: 100%; background-image: linear-gradient(to right, #C03FF2, #EEC2FF); text-color: white; cursor: pointer; } button selected { background-image: linear-gradient(to right, #44A2F0, #BDDDF8); text-color: black; } /*****----- Message -----*****/ error-message { padding: 20px; background-color: white; text-color: black; } textbox { padding: 0px; border-radius: 0px; text-color: black; vertical-align: 0.5; horizontal-align: 0.0; } ================================================ FILE: .config/rofi/launchers/type-5/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} {c} {t}"; } /*****----- Global Properties -----*****/ * { font: "Iosevka Nerd Font 10"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border-radius: 20px; cursor: "default"; background-color: #22272C; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 25px; padding: 50px; background-color: transparent; children: [ "inputbar", "message","listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px 200px; padding: 5px; border: 1px; border-radius: 100%; border-color: gray/25%; background-color: transparent; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; padding: 8px 11px; border-radius: 100%; background-color: white; text-color: black; str: ""; } entry { enabled: true; padding: 8px 12px; border: 0px; background-color: transparent; text-color: white; cursor: text; placeholder: "Search..."; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px; border: 0px; border-radius: 100%; border-color: gray/15%; background-color: transparent; text-color: gray; cursor: pointer; } element normal.active { background-image: linear-gradient(to right, #4C4F52, #2E343B); text-color: #19B466; } element selected.normal { background-image: linear-gradient(to right, #4C4F52, #2E343B); text-color: #FF9030; } element selected.active { background-image: linear-gradient(to right, #4C4F52, #2E343B); text-color: #EA5553; } element-icon { background-color: transparent; size: 24px; cursor: inherit; } element-text { background-color: inherit; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; expand: false; spacing: 0px; margin: 0px 200px; padding: 12px; border-radius: 100%; background-color: #2E343B; } button { background-color: inherit; text-color: white; cursor: pointer; } button selected { background-color: inherit; text-color: #FF9030; } /*****----- Message -----*****/ error-message { padding: 20px; background-color: #22272C; text-color: white; } message { padding: 0px; background-color: inherit; text-color: #FF9030; } textbox { padding: 0px; border-radius: 0px; background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } ================================================ FILE: .config/rofi/launchers/type-5/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name} [({generic})]"; window-format: "{w} {c} {t}"; } /*****----- Global Properties -----*****/ * { font: "Iosevka Nerd Font 10"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border-radius: 20px; cursor: "default"; background-color: #162022; background-image: url("~/.config/rofi/images/flowers-1.png", width); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 20px; padding: 40px; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px 200px 0px 0px; padding: 25px; border: 2px; border-radius: 20px; border-color: white; background-image: url("~/.config/rofi/images/flowers-3.png", none); children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; padding: 8px 11px; border-radius: 8px; background-color: white; text-color: black; str: ""; } entry { enabled: true; padding: 8px 12px; border: 0px; background-color: transparent; text-color: white; cursor: text; placeholder: "Search..."; placeholder-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px 200px 0px 0px; padding: 10px; border: 2px; border-radius: 20px; border-color: white; background-image: url("~/.config/rofi/images/flowers-2.png", width); cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; margin: 0px; padding: 5px 10px; border: 0px; border-radius: 18px; border-color: white; background-color: transparent; text-color: #162022; cursor: pointer; } element selected.normal { background-color: #162022; text-color: white; } element-icon { background-color: transparent; size: 32px; cursor: inherit; } element-text { background-color: inherit; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ error-message { padding: 20px; background-color: transparent; text-color: white; } message { padding: 0px; background-color: inherit; text-color: #FF9030; } textbox { padding: 0px; border-radius: 0px; background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; } ================================================ FILE: .config/rofi/launchers/type-6/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 dir="$HOME/.config/rofi/launchers/type-6" theme='style-7' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-6/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #201A41; background-alt: #392684; foreground: #FFFFFF; selected: #F801E8; active: #00CCF5; urgent: #8D0083; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/a.png", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/j.jpg", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #180F39; background-alt: #32197D; foreground: #FFFFFF; selected: #FF00F1; active: #9878FF; urgent: #7D0075; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/b.png", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #09164C; background-alt: #102886; foreground: #FFFFFF; selected: #FA00E9; active: #3860FF; urgent: #BB00AF; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/c.png", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #2D1B14; background-alt: #462D23; foreground: #FFFFFF; selected: #E25F3E; active: #7B6C5B; urgent: #934A1C; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/d.png", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #231419; background-alt: #2D1E23; foreground: #FFFFFF; selected: #426647; active: #2E3F34; urgent: #D08261; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/e.jpg", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #1E1D2FFF; background-alt: #282839FF; foreground: #D9E0EEFF; selected: #7AA2F7FF; active: #ABE9B3FF; urgent: #F28FADFF; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/f.png", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "SF Pro 10"; background: #1E1D2FFF; background-alt: #282839FF; foreground: #D9E0EEFF; selected: #7AA2F7FF; active: #ABE9B3FF; urgent: #F28FADFF; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 0px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/g.png", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 8px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #030B16; background-alt: #0A1B37; foreground: #FFFFFF; selected: #CB43A6; active: #095873; urgent: #2FC6D8; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/h.jpg", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-6/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOW"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #131D1F; background-alt: #183A43; foreground: #FFFFFF; selected: #649094; active: #E9CC9D; urgent: #FEA861; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: horizontal; children: [ "imagebox", "listbox" ]; } imagebox { padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/i.jpg", height); orientation: vertical; children: [ "inputbar", "dummy", "mode-switcher" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } dummy { background-color: transparent; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; background-color: inherit; text-color: inherit; } entry { enabled: true; background-color: inherit; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 20px; background-color: transparent; text-color: @foreground; } button { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 8px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/launcher.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Launcher (Modi Drun, Run, File Browser, Window) # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 dir="$HOME/.config/rofi/launchers/type-7" theme='style-1' ## Run rofi \ -show drun \ -theme ${dir}/${theme}.rasi ================================================ FILE: .config/rofi/launchers/type-7/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 700px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 80px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/a.png", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 100%; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 250px; padding: 12px 16px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 45px; padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 7; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 4px; border-radius: 100%; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 12px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: west; anchor: west; fullscreen: false; width: 400px; x-offset: 20px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 0px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 10px; padding: 10px; background-color: transparent; orientation: vertical; children: [ "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; padding: 100px 40px; background-color: transparent; background-image: url("~/.config/rofi/images/j.jpg", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 8px 12px; border: 0px 2px 2px 2px; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: true; padding: 8px 12px; border: 2px 2px 0px 0px; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { padding: 8px; border-radius: 0px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 8px; border-radius: 0px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 8px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 8px; border-radius: 0px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "Apps"; display-run: "Run"; display-filebrowser: "Files"; display-window: "Windows"; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #180F39; background-alt: #32197D; foreground: #FFFFFF; selected: #FF00F1; active: #9878FF; urgent: #7D0075; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 80px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/b.png", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 100%; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 300px; padding: 12px 16px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 80px; padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 4px; border-radius: 100%; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 12px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #09164C; background-alt: #102886; foreground: #FFFFFF; selected: #FA00E9; active: #3860FF; urgent: #BB00AF; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 10px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 15px; padding: 15px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 100px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/c.png", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 12px; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 150px; padding: 12px 16px; border-radius: 12px; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 40px; padding: 12px; border-radius: 12px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 6px; border-radius: 10px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 10px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 10px; border-radius: 10px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #2D1B14; background-alt: #462D23; foreground: #FFFFFF; selected: #E25F3E; active: #7B6C5B; urgent: #934A1C; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: west; anchor: west; fullscreen: false; width: 500px; height: 100%; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 0px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox", "mode-switcher" ]; } listbox { spacing: 15px; padding: 15px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 40px 40px 155px; background-color: transparent; background-image: url("~/.config/rofi/images/d.png", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 0px; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: true; padding: 12px 16px; border-radius: 0px; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; padding: 15px; spacing: 10px; background-color: transparent; text-color: @foreground; } button { padding: 12px; border-radius: 0px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 10; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 8px; border-radius: 0px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 24px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 12px; border-radius: 0px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #231419; background-alt: #2D1E23; foreground: #FFFFFF; selected: #426647; active: #2E3F34; urgent: #D08261; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 600px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 80px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/e.jpg", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 100%; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 250px; padding: 12px 16px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 45px; padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 7; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 4px; border-radius: 100%; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 12px; border-radius: 20px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: true; display-drun: "APPS"; display-run: "RUN"; display-filebrowser: "FILES"; display-window: "WINDOWS"; drun-display-format: "{name}"; window-format: "{w} · {c}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #D0D0D0; background-alt: #E9E9E9; foreground: #161616; selected: #BEBEBE; active: #999999; urgent: #808080; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 15px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 100px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/f.png", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 100%; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 300px; padding: 12px 16px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 80px; padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 10px; border-radius: 15px; background-color: transparent; text-color: @foreground; cursor: pointer; orientation: vertical; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 64px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 15px; border-radius: 15px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 15px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #101010; background-alt: #252525; foreground: #FFFFFF; selected: #505050; active: #909090; urgent: #707070; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview", "mode-switcher" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 100px 40px; background-color: transparent; background-image: url("~/.config/rofi/images/g.png", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 100%; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: true; padding: 12px 16px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 12px; border-radius: 100%; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 15px; border-radius: 0px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,run,filebrowser,window"; show-icons: false; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w} · {c} · {t}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #030B16; background-alt: #0A1B37; foreground: #FFFFFF; selected: #CB43A6; active: #095873; urgent: #2FC6D8; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 30px 5px 30px 5px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 100px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/h.jpg", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 15px 5px 15px 5px; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 250px; padding: 12px 16px; border-radius: 5px 15px 5px 15px; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 45px; padding: 12px; border-radius: 15px 5px 15px 5px; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 8; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 10px; padding: 12px; border-radius: 15px 5px 15px 5px; background-color: transparent; text-color: @foreground; cursor: pointer; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 32px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 15px 5px 15px 5px; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 12px; border-radius: 0px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/launchers/type-7/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { modi: "drun,filebrowser,window"; show-icons: true; display-drun: ""; display-run: ""; display-filebrowser: ""; display-window: ""; drun-display-format: "{name}"; window-format: "{w}: {c}"; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #131D1F; background-alt: #183A43; foreground: #FFFFFF; selected: #649094; active: #E9CC9D; urgent: #FEA861; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 700px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; background-color: transparent; orientation: vertical; children: [ "inputbar", "listbox" ]; } listbox { spacing: 20px; padding: 20px; background-color: transparent; orientation: vertical; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; padding: 80px 60px; background-color: transparent; background-image: url("~/.config/rofi/images/i.jpg", width); text-color: @foreground; orientation: horizontal; children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 15px; border-radius: 100%; background-color: @background-alt; text-color: inherit; } entry { enabled: true; expand: false; width: 250px; padding: 12px 16px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: text; placeholder: "Search"; placeholder-color: inherit; } dummy { expand: true; background-color: transparent; } /*****----- Mode Switcher -----*****/ mode-switcher{ enabled: true; spacing: 10px; background-color: transparent; text-color: @foreground; } button { width: 45px; padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: inherit; cursor: pointer; } button selected { background-color: @selected; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 15px; padding: 35px 10px; border-radius: 20px; background-color: transparent; text-color: @foreground; cursor: pointer; orientation: vertical; } element normal.normal { background-color: inherit; text-color: inherit; } element normal.urgent { background-color: @urgent; text-color: @foreground; } element normal.active { background-color: @active; text-color: @foreground; } element selected.normal { background-color: @selected; text-color: @foreground; } element selected.urgent { background-color: @urgent; text-color: @foreground; } element selected.active { background-color: @urgent; text-color: @foreground; } element-icon { background-color: transparent; text-color: inherit; size: 96px; cursor: inherit; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Message -----*****/ message { background-color: transparent; } textbox { padding: 12px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; vertical-align: 0.5; horizontal-align: 0.0; } error-message { padding: 12px; border-radius: 0px; background-color: @background; text-color: @foreground; } ================================================ FILE: .config/rofi/powermenu/type-1/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Power Menu # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 # Current Theme dir="$HOME/.config/rofi/powermenu/type-1" theme='style-1' # CMDs uptime="`uptime -p | sed -e 's/up //g'`" host=`hostname` # Options shutdown=' Shutdown' reboot=' Reboot' lock=' Lock' suspend=' Suspend' logout=' Logout' yes=' Yes' no=' No' # Rofi CMD rofi_cmd() { rofi -dmenu \ -p "$host" \ -mesg "Uptime: $uptime" \ -theme ${dir}/${theme}.rasi } # Confirmation CMD confirm_cmd() { rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 250px;}' \ -theme-str 'mainbox {children: [ "message", "listview" ];}' \ -theme-str 'listview {columns: 2; lines: 1;}' \ -theme-str 'element-text {horizontal-align: 0.5;}' \ -theme-str 'textbox {horizontal-align: 0.5;}' \ -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${dir}/${theme}.rasi } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Pass variables to rofi dmenu run_rofi() { echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd } # Execute Command run_cmd() { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then if [[ $1 == '--shutdown' ]]; then systemctl poweroff elif [[ $1 == '--reboot' ]]; then systemctl reboot elif [[ $1 == '--suspend' ]]; then mpc -q pause amixer set Master mute systemctl suspend elif [[ $1 == '--logout' ]]; then if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then openbox --exit elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then bspc quit elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then i3-msg exit elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then qdbus org.kde.ksmserver /KSMServer logout 0 0 0 fi fi else exit 0 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $shutdown) run_cmd --shutdown ;; $reboot) run_cmd --reboot ;; $lock) if [[ -x '/usr/bin/betterlockscreen' ]]; then betterlockscreen -l elif [[ -x '/usr/bin/i3lock' ]]; then i3lock fi ;; $suspend) run_cmd --suspend ;; $logout) run_cmd --logout ;; esac ================================================ FILE: .config/rofi/powermenu/type-1/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/powermenu/type-1/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "JetBrains Mono Nerd Font 10"; } ================================================ FILE: .config/rofi/powermenu/type-1/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 400px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 14px; border-radius: 10px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 10px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 10px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-1/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 500px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 2px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 100%; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 12px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-1/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 350px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 1px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 8px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 8px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 8px 12px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 8px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 8px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 8px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 8px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-1/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 500px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 30px 10px 30px 10px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 14px; border-radius: 15px 10px 15px 10px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 10px 15px 10px 15px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 15px 10px 15px 10px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.0; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 5px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 15px 10px 15px 10px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.0; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-1/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 605px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 4px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 10px; margin: 0px; padding: 20px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", dummy, "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 10px 14px; border-radius: 4px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 10px; border-radius: 4px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 10px; border: 0px solid; border-radius: 4px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 10px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 10px; border: 0px solid; border-radius: 4px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { border: 0px 2px 0px 2px; border-radius: 4px; background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Power Menu # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 ## style-6 style-7 style-8 style-9 style-10 # Current Theme dir="$HOME/.config/rofi/powermenu/type-2" theme='style-1' # CMDs uptime="`uptime -p | sed -e 's/up //g'`" host=`hostname` # Options shutdown='' reboot='' lock='' suspend='' logout='' yes='' no='' # Rofi CMD rofi_cmd() { rofi -dmenu \ -p "Uptime: $uptime" \ -mesg "Uptime: $uptime" \ -theme ${dir}/${theme}.rasi } # Confirmation CMD confirm_cmd() { rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ -theme-str 'mainbox {children: [ "message", "listview" ];}' \ -theme-str 'listview {columns: 2; lines: 1;}' \ -theme-str 'element-text {horizontal-align: 0.5;}' \ -theme-str 'textbox {horizontal-align: 0.5;}' \ -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${dir}/${theme}.rasi } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Pass variables to rofi dmenu run_rofi() { echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd } # Execute Command run_cmd() { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then if [[ $1 == '--shutdown' ]]; then systemctl poweroff elif [[ $1 == '--reboot' ]]; then systemctl reboot elif [[ $1 == '--suspend' ]]; then mpc -q pause amixer set Master mute systemctl suspend elif [[ $1 == '--logout' ]]; then if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then openbox --exit elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then bspc quit elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then i3-msg exit elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then qdbus org.kde.ksmserver /KSMServer logout 0 0 0 fi fi else exit 0 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $shutdown) run_cmd --shutdown ;; $reboot) run_cmd --reboot ;; $lock) if [[ -x '/usr/bin/betterlockscreen' ]]; then betterlockscreen -l elif [[ -x '/usr/bin/i3lock' ]]; then i3lock fi ;; $suspend) run_cmd --suspend ;; $logout) run_cmd --logout ;; esac ================================================ FILE: .config/rofi/powermenu/type-2/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/powermenu/type-2/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "JetBrains Mono Nerd Font 10"; } ================================================ FILE: .config/rofi/powermenu/type-2/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 40px 10px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-10.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1200px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: transparent; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 25px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 20px 24px; border-radius: 100% 0px 0px 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 20px; border-radius: 0px 100% 100% 0px; background-color: @background; text-color: @active; } /*****----- Message -----*****/ message { enabled: true; margin: 0px 50px; padding: 15px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 70px 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 48"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 100%; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 40px 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 30px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 15px 15px 0px 15px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 15px 15px 15px 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px solid; border-radius: 15px 5px 15px 5px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 40px 10px; border: 0px solid; border-radius: 50px 20px 50px 20px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { border: 0px 0px 2px 2px ; border-color: @selected; background-color: var(background-alt); text-color: var(selected); } ================================================ FILE: .config/rofi/powermenu/type-2/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: east; anchor: east; fullscreen: false; width: 115px; x-offset: -15px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 20px 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: west; anchor: west; fullscreen: false; width: 115px; x-offset: 15px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 20px 0px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-6.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: south; anchor: south; fullscreen: false; width: 500px; x-offset: 0px; y-offset: -15px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 12px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 15px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 12px; border: 0px 2px dash 0px 2px dash; border-radius: 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 20px 0px; border: 0px; border-radius: 30px 12px 30px 12px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { border: 0px 10px dash 0px 10px dash; border-color: @selected; background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-7.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: transparent; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px 100px; padding: 15px; border: 0px solid; border-radius: 15px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 45px 10px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-8.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: east; anchor: east; fullscreen: false; width: 95px; x-offset: -20px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: transparent; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 5; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 25px 10px; border: 0px solid; border-radius: 100%; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-2/style-9.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: north; anchor: north; fullscreen: false; width: 530px; x-offset: 0px; y-offset: 20px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: transparent; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: ""; padding: 12px 16px; border-radius: 0px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border: 0px solid; border-radius: 15px; border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: 12px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: 25px 10px; border: 0px solid; border-radius: 20px; border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 24"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-3/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Power Menu # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 # Current Theme dir="$HOME/.config/rofi/powermenu/type-3" theme='style-1' # CMDs uptime="`uptime -p | sed -e 's/up //g'`" host=`hostname` # Options shutdown='' reboot='' lock='' suspend='' logout='' yes='' no='' # Rofi CMD rofi_cmd() { rofi -dmenu \ -p "Uptime: $uptime" \ -mesg "Uptime: $uptime" \ -theme ${dir}/${theme}.rasi } # Confirmation CMD confirm_cmd() { rofi -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${dir}/shared/confirm.rasi } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Pass variables to rofi dmenu run_rofi() { echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd } # Execute Command run_cmd() { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then if [[ $1 == '--shutdown' ]]; then systemctl poweroff elif [[ $1 == '--reboot' ]]; then systemctl reboot elif [[ $1 == '--suspend' ]]; then mpc -q pause amixer set Master mute systemctl suspend elif [[ $1 == '--logout' ]]; then if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then openbox --exit elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then bspc quit elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then i3-msg exit elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then qdbus org.kde.ksmserver /KSMServer logout 0 0 0 fi fi else exit 0 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $shutdown) run_cmd --shutdown ;; $reboot) run_cmd --reboot ;; $lock) if [[ -x '/usr/bin/betterlockscreen' ]]; then betterlockscreen -l elif [[ -x '/usr/bin/i3lock' ]]; then i3lock fi ;; $suspend) run_cmd --suspend ;; $logout) run_cmd --logout ;; esac ================================================ FILE: .config/rofi/powermenu/type-3/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/powermenu/type-3/shared/confirm.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "colors.rasi" @import "fonts.rasi" /*****----- Main Window -----*****/ window { location: center; anchor: center; fullscreen: false; width: 500px; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { spacing: 30px; padding: 30px; background-color: transparent; children: [ "message", "listview" ]; } /*****----- Message -----*****/ message { margin: 0px; padding: 20px; border-radius: 20px; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } /*****----- Listview -----*****/ listview { columns: 2; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { padding: 60px 10px; border-radius: 20px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather 48"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-3/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "JetBrains Mono Nerd Font 12"; } ================================================ FILE: .config/rofi/powermenu/type-3/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { /* Resolution : 1920x1080 */ box-spacing: 30px; box-margin: 300px 100px; inputbar-spacing: 30px; list-spacing: 30px; general-padding: 20px; element-padding: 100px 10px; element-radius: 0px; general-radius: 0px; element-font: "feather 64"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(box-spacing); margin: 0px; padding: var(box-margin); border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: var(inputbar-spacing); margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: "SYSTEM"; padding: var(general-padding); border-radius: var(general-radius); background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: var(general-padding); border-radius: var(general-radius); background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(list-spacing); margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: var(element-padding); border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: var(element-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-3/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { /* Resolution : 1920x1080 */ box-spacing: 50px; box-margin: 300px 200px; inputbar-spacing: 0px; list-spacing: 30px; general-padding: 20px; element-padding: 80px 10px; element-radius: 100%; general-radius: 100%; element-font: "feather 64"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(box-spacing); margin: 0px; padding: var(box-margin); border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: var(inputbar-spacing); margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: "SYSTEM"; padding: var(general-padding); border-radius: 100% 0px 0px 100%; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: var(general-padding); border-radius: 0px 100% 100% 0px; background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(list-spacing); margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: var(element-padding); border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: var(element-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-3/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { /* Resolution : 1920x1080 */ box-spacing: 50px; box-margin: 370px 350px; message-margin: 0px 350px; inputbar-spacing: 0px; list-spacing: 50px; general-padding: 20px; element-padding: 55px 10px; element-radius: 20px; general-radius: 100%; element-font: "feather 48"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(box-spacing); margin: 0px; padding: var(box-margin); border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "message", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: var(inputbar-spacing); margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "dummy", "textbox-prompt-colon", "prompt", "dummy"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: "SYSTEM"; padding: var(general-padding); border-radius: var(general-radius); background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: var(general-padding); border-radius: var(general-radius); background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(general-padding); border: 0px; border-radius: var(general-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(list-spacing); margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: var(element-padding); border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: var(element-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-3/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { /* Resolution : 1920x1080 */ box-spacing: 70px; box-margin: 300px 350px; message-margin: 0px 400px; inputbar-spacing: 0px; list-spacing: 40px; general-padding: 20px; element-padding: 60px 10px; element-radius: 80px; general-radius: 100%; element-font: "feather 48"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(box-spacing); margin: 0px; padding: var(box-margin); border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: var(inputbar-spacing); margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon" ]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: "SYSTEM"; padding: var(general-padding); border-radius: var(general-radius); background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: var(general-padding); border-radius: var(general-radius); background-color: @active; text-color: @background; } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(general-padding); border: 0px; border-radius: var(general-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(list-spacing); margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: var(element-padding); border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: var(element-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-3/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "shared/colors.rasi" @import "shared/fonts.rasi" * { /* Resolution : 1920x1080 */ box-spacing: 50px; box-margin: 300px 250px; box-padding: 50px; message-margin: 0px 400px; inputbar-spacing: 0px; list-spacing: 0px; general-padding: 20px; element-padding: 90px 10px; element-radius: 80px; general-radius: 100%; element-font: "feather 48"; } /*****----- Main Window -----*****/ window { /* properties for window widget */ transparency: "real"; location: center; anchor: center; fullscreen: true; width: 1366px; x-offset: 0px; y-offset: 0px; /* properties for all widgets */ enabled: true; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(box-spacing); margin: var(box-margin); padding: var(box-padding); border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: @background-alt; children: [ "inputbar", "listview" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: var(inputbar-spacing); margin: 0px; padding: 0px; border: 0px; border-radius: 0px; border-color: @selected; background-color: transparent; text-color: @foreground; children: [ "textbox-prompt-colon", "dummy", "prompt" ]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: "SYSTEM"; padding: var(general-padding); border-radius: var(general-radius); background-color: @background; text-color: @urgent; } prompt { enabled: true; padding: var(general-padding); border-radius: var(general-radius); background-color: @background; text-color: @active; } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(general-padding); border: 0px; border-radius: var(general-radius); border-color: @selected; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } error-message { padding: var(general-padding); border: 0px solid; border-radius: var(general-radius); border-color: @selected; background-color: @background; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(list-spacing); margin: 0px; padding: 0px; border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: @background; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; spacing: 0px; margin: 0px; padding: var(element-padding); border: 0px solid; border-radius: var(element-radius); border-color: @selected; background-color: transparent; text-color: @foreground; cursor: pointer; } element-text { font: var(element-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-4/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Power Menu # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 # Current Theme dir="$HOME/.config/rofi/powermenu/type-4" theme='style-2' # CMDs uptime="`uptime -p | sed -e 's/up //g'`" host=`hostname` # Options shutdown='' reboot='' lock='' suspend='' logout='' yes='' no='' # Rofi CMD rofi_cmd() { rofi -dmenu \ -p "Goodbye ${USER}" \ -mesg "Uptime: $uptime" \ -theme ${dir}/${theme}.rasi } # Confirmation CMD confirm_cmd() { rofi -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${dir}/shared/confirm.rasi } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Pass variables to rofi dmenu run_rofi() { echo -e "$lock\n$suspend\n$logout\n$reboot\n$shutdown" | rofi_cmd } # Execute Command run_cmd() { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then if [[ $1 == '--shutdown' ]]; then systemctl poweroff elif [[ $1 == '--reboot' ]]; then systemctl reboot elif [[ $1 == '--suspend' ]]; then mpc -q pause amixer set Master mute systemctl suspend elif [[ $1 == '--logout' ]]; then if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then openbox --exit elif [[ "$DESKTOP_SESSION" == 'hyprland' ]]; then hyprctl dispatch exit elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then bspc quit elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then i3-msg exit elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then qdbus org.kde.ksmserver /KSMServer logout 0 0 0 fi fi else exit 0 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $shutdown) run_cmd --shutdown ;; $reboot) run_cmd --reboot ;; $lock) if [[ -x '/usr/bin/betterlockscreen' ]]; then betterlockscreen -l elif [[ -x '/usr/bin/i3lock' ]]; then i3lock fi ;; $suspend) run_cmd --suspend ;; $logout) run_cmd --logout ;; esac ================================================ FILE: .config/rofi/powermenu/type-4/shared/colors.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Colors * * Available Colors Schemes * * adapta catppuccin everforest navy paper * arc cyberpunk gruvbox nord solarized * black dracula lovelace onedark yousai * **/ /* Import color-scheme from `colors` directory */ @import "~/.config/rofi/colors/onedark.rasi" ================================================ FILE: .config/rofi/powermenu/type-4/shared/confirm.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ @import "colors.rasi" @import "fonts.rasi" /*****----- Main Window -----*****/ window { location: center; anchor: center; fullscreen: false; width: 500px; border-radius: 20px; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { spacing: 30px; padding: 30px; background-color: transparent; children: [ "message", "listview" ]; } /*****----- Message -----*****/ message { margin: 0px; padding: 20px; border-radius: 20px; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; placeholder-color: @foreground; blink: true; markup: true; } /*****----- Listview -----*****/ listview { columns: 2; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; background-color: transparent; text-color: @foreground; cursor: "default"; } /*****----- Elements -----*****/ element { padding: 60px 10px; border-radius: 20px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather 48"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-4/shared/fonts.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Fonts * **/ * { font: "JetBrains Mono Nerd Font 12"; } ================================================ FILE: .config/rofi/powermenu/type-4/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { /* Resolution : 1920x1080 */ mainbox-spacing: 100px; mainbox-margin: 100px 300px; message-margin: 0px 400px; message-padding: 15px; message-border-radius: 100%; listview-spacing: 50px; element-padding: 55px 60px; element-border-radius: 100%; prompt-font: "JetBrains Mono Nerd Font Bold Italic 64"; textbox-font: "JetBrains Mono Nerd Font 16"; element-text-font: "feather 64"; background-window: black/5%; background-normal: white/5%; background-selected: white/15%; foreground-normal: white; foreground-selected: white; } /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; cursor: "default"; background-color: var(background-window); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(mainbox-spacing); margin: var(mainbox-margin); background-color: transparent; children: [ "dummy", "inputbar", "listview", "message", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; background-color: transparent; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { enabled: true; font: var(prompt-font); background-color: transparent; text-color: var(foreground-normal); } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(message-padding); border-radius: var(message-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); } textbox { font: var(textbox-font); background-color: transparent; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; expand: false; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(listview-spacing); background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: var(element-padding); border-radius: var(element-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); cursor: pointer; } element-text { font: var(element-text-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(background-selected); text-color: var(foreground-selected); } ================================================ FILE: .config/rofi/powermenu/type-4/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { /* Resolution : 1920x1080 */ mainbox-spacing: 100px; mainbox-margin: 150px 400px; message-margin: 0px 350px; message-padding: 15px; message-border-radius: 15px; listview-spacing: 50px; element-padding: 35px 40px; element-border-radius: 20px; prompt-font: "Iosevka Nerd Font Bold 72"; textbox-font: "Iosevka Nerd Font 14"; element-text-font: "feather 64"; background-window: black/80%; background-normal: white/5%; background-selected: white/15%; foreground-normal: white; foreground-selected: white; } /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; cursor: "default"; background-color: var(background-window); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(mainbox-spacing); margin: var(mainbox-margin); background-color: transparent; children: [ "dummy", "inputbar", "listview", "message", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; background-color: transparent; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { enabled: true; font: var(prompt-font); background-color: transparent; text-color: var(foreground-normal); } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(message-padding); border-radius: var(message-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); } textbox { font: var(textbox-font); background-color: transparent; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; expand: false; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(listview-spacing); background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: var(element-padding); border-radius: var(element-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); cursor: pointer; } element-text { font: var(element-text-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(background-selected); text-color: var(foreground-selected); } ================================================ FILE: .config/rofi/powermenu/type-4/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { /* Resolution : 1920x1080 */ mainbox-spacing: 50px; mainbox-margin: 50px; message-margin: 0px 300px; message-padding: 12px; message-border-radius: 12px; listview-spacing: 25px; element-padding: 35px 0px; element-border-radius: 60px; prompt-font: "Iosevka Nerd Font Bold 48"; textbox-font: "Iosevka Nerd Font 12"; element-text-font: "feather 48"; background-window: black/20%; background-normal: white/5%; background-selected: white/15%; foreground-normal: white; foreground-selected: white; } /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; border-radius: 50px; cursor: "default"; background-color: var(background-window); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(mainbox-spacing); margin: var(mainbox-margin); background-color: transparent; children: [ "dummy", "inputbar", "listview", "message", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; background-color: transparent; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { enabled: true; font: var(prompt-font); background-color: transparent; text-color: var(foreground-normal); } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(message-padding); border-radius: var(message-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); } textbox { font: var(textbox-font); background-color: transparent; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; expand: false; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(listview-spacing); background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: var(element-padding); border-radius: var(element-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); cursor: pointer; } element-text { font: var(element-text-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(background-selected); text-color: var(foreground-selected); } ================================================ FILE: .config/rofi/powermenu/type-4/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { /* Resolution : 1920x1080 */ mainbox-spacing: 100px; mainbox-margin: 150px 400px; message-margin: 0px 350px; message-padding: 20px; message-border-radius: 100%; listview-spacing: 50px; element-padding: 35px 40px; element-border-radius: 80px; prompt-font: "Iosevka Nerd Font Bold Italic 72"; textbox-font: "Iosevka Nerd Font 16"; element-text-font: "feather Bold 64"; /* Gradients */ gradient-1: linear-gradient(45, #1E98FD, #06FDA5); gradient-2: linear-gradient(0, #F971C6, #7A72EC); gradient-3: linear-gradient(70, #FFD56F, #FF6861); gradient-4: linear-gradient(135, #44C6FA, #3043A1); gradient-5: linear-gradient(to left, #bdc3c7, #2c3e50); gradient-6: linear-gradient(to right, #0F2027, #203A43, #2C5364); gradient-7: linear-gradient(to top, #12c2e9, #c471ed, #f64f59); gradient-8: linear-gradient(to bottom, #FF0099, #493240); gradient-9: linear-gradient(0, #1a2a6c, #b21f1f, #fdbb2d); gradient-10: linear-gradient(0, #283c86, #45a247); gradient-11: linear-gradient(0, #77A1D3, #79CBCA, #E684AE); gradient-12: linear-gradient(0, #ff6e7f, #bfe9ff); gradient-13: linear-gradient(0, #D31027, #EA384D); gradient-14: linear-gradient(0, #DA22FF, #9733EE); gradient-15: linear-gradient(0, #1D976C, #93F9B9); gradient-16: linear-gradient(0, #232526, #414345); gradient-17: linear-gradient(0, #833ab4, #fd1d1d, #fcb045); gradient-18: linear-gradient(0, #667db6, #0082c8, #0082c8, #667db6); gradient-19: linear-gradient(0, #03001e, #7303c0, #ec38bc, #fdeff9); gradient-20: linear-gradient(0, #780206, #061161); background-window: var(gradient-19); background-normal: white/10%; background-selected: white/20%; foreground-normal: white; foreground-selected: white; } /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; cursor: "default"; background-image: var(background-window); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(mainbox-spacing); margin: var(mainbox-margin); background-color: transparent; children: [ "dummy", "inputbar", "listview", "message", "dummy" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; background-color: transparent; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { enabled: true; font: var(prompt-font); background-color: transparent; text-color: var(foreground-normal); } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(message-padding); border-radius: var(message-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); } textbox { font: var(textbox-font); background-color: transparent; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; expand: false; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(listview-spacing); background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: var(element-padding); border-radius: var(element-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); cursor: pointer; } element-text { font: var(element-text-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(background-selected); text-color: var(foreground-selected); } ================================================ FILE: .config/rofi/powermenu/type-4/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { /* Resolution : 1920x1080 */ mainbox-spacing: 50px; mainbox-margin: 0px 470px; message-margin: 0px 350px; message-padding: 15px; message-border-radius: 100%; listview-spacing: 25px; element-padding: 45px 40px; element-border-radius: 100%; prompt-font: "Iosevka Nerd Font Bold 32"; textbox-font: "Iosevka Nerd Font 12"; element-text-font: "feather Bold 48"; /* Gradients */ gradient-1: linear-gradient(45, #1E98FD, #06FDA5); gradient-2: linear-gradient(0, #F971C6, #7A72EC); gradient-3: linear-gradient(70, #FFD56F, #FF6861); gradient-4: linear-gradient(135, #44C6FA, #3043A1); gradient-5: linear-gradient(to left, #bdc3c7, #2c3e50); gradient-6: linear-gradient(to right, #0F2027, #203A43, #2C5364); gradient-7: linear-gradient(to top, #12c2e9, #c471ed, #f64f59); gradient-8: linear-gradient(to bottom, #FF0099, #493240); gradient-9: linear-gradient(0, #1a2a6c, #b21f1f, #fdbb2d); gradient-10: linear-gradient(0, #283c86, #45a247); gradient-11: linear-gradient(0, #77A1D3, #79CBCA, #E684AE); gradient-12: linear-gradient(0, #ff6e7f, #bfe9ff); gradient-13: linear-gradient(0, #D31027, #EA384D); gradient-14: linear-gradient(0, #DA22FF, #9733EE); gradient-15: linear-gradient(0, #1D976C, #93F9B9); gradient-16: linear-gradient(0, #232526, #414345); gradient-17: linear-gradient(0, #833ab4, #fd1d1d, #fcb045); gradient-18: linear-gradient(0, #667db6, #0082c8, #0082c8, #667db6); gradient-19: linear-gradient(0, #03001e, #7303c0, #ec38bc, #fdeff9); gradient-20: linear-gradient(0, #780206, #061161); background-window: var(gradient-6); background-normal: white/10%; background-selected: white/20%; foreground-normal: white; foreground-selected: white; } /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: true; cursor: "default"; background-image: var(background-window); } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: var(mainbox-spacing); margin: var(mainbox-margin); background-color: transparent; children: [ "dummy", "userimage", "inputbar", "listview", "message", "dummy" ]; } /*****----- User -----*****/ userimage { margin: 0px 400px; border: 2px; border-radius: 100%; border-color: white; background-color: transparent; background-image: url("~/.config/rofi/images/user.jpeg", both); } /*****----- Inputbar -----*****/ inputbar { enabled: true; background-color: transparent; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { enabled: true; font: var(prompt-font); background-color: transparent; text-color: var(foreground-normal); } /*****----- Message -----*****/ message { enabled: true; margin: var(message-margin); padding: var(message-padding); border-radius: var(message-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); } textbox { font: var(textbox-font); background-color: transparent; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; expand: false; columns: 5; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: var(listview-spacing); background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: var(element-padding); border-radius: var(element-border-radius); background-color: var(background-normal); text-color: var(foreground-normal); cursor: pointer; } element-text { font: var(element-text-font); background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(background-selected); text-color: var(foreground-selected); } ================================================ FILE: .config/rofi/powermenu/type-5/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Power Menu # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 # Current Theme dir="$HOME/.config/rofi/powermenu/type-5" theme='style-5' # CMDs lastlogin="`last $USER | head -n1 | tr -s ' ' | cut -d' ' -f5,6,7`" uptime="`uptime -p | sed -e 's/up //g'`" host=`hostname` # Options hibernate='' shutdown='' reboot='' lock='' suspend='' logout='' yes='' no='' # Rofi CMD rofi_cmd() { rofi -dmenu \ -p " $USER@$host" \ -mesg " Last Login: $lastlogin |  Uptime: $uptime" \ -theme ${dir}/${theme}.rasi } # Confirmation CMD confirm_cmd() { rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ -theme-str 'mainbox {children: [ "message", "listview" ];}' \ -theme-str 'listview {columns: 2; lines: 1;}' \ -theme-str 'element-text {horizontal-align: 0.5;}' \ -theme-str 'textbox {horizontal-align: 0.5;}' \ -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${dir}/${theme}.rasi } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Pass variables to rofi dmenu run_rofi() { echo -e "$lock\n$suspend\n$logout\n$hibernate\n$reboot\n$shutdown" | rofi_cmd } # Execute Command run_cmd() { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then if [[ $1 == '--shutdown' ]]; then systemctl poweroff elif [[ $1 == '--reboot' ]]; then systemctl reboot elif [[ $1 == '--hibernate' ]]; then systemctl hibernate elif [[ $1 == '--suspend' ]]; then mpc -q pause amixer set Master mute systemctl suspend elif [[ $1 == '--logout' ]]; then if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then openbox --exit elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then bspc quit elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then i3-msg exit elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then qdbus org.kde.ksmserver /KSMServer logout 0 0 0 fi fi else exit 0 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $shutdown) run_cmd --shutdown ;; $reboot) run_cmd --reboot ;; $hibernate) run_cmd --hibernate ;; $lock) if [[ -x '/usr/bin/betterlockscreen' ]]; then betterlockscreen -l elif [[ -x '/usr/bin/i3lock' ]]; then i3lock fi ;; $suspend) run_cmd --suspend ;; $logout) run_cmd --logout ;; esac ================================================ FILE: .config/rofi/powermenu/type-5/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; padding: 100px 80px; background-color: transparent; background-image: url("~/.config/rofi/images/a.png", width); children: [ "textbox-prompt-colon", "dummy","prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: " System"; padding: 12px; border-radius: 12px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 12px; background-color: @active; text-color: @background; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border-radius: 12px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } ================================================ FILE: .config/rofi/powermenu/type-5/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #2D1B14; background-alt: #462D23; foreground: #FFFFFF; selected: #E25F3E; active: #716251; urgent: #934A1C; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 20px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; padding: 100px 80px; background-color: transparent; background-image: url("~/.config/rofi/images/d.png", width); children: [ "textbox-prompt-colon", "dummy","prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: " System"; padding: 12px; border-radius: 100%; background-color: @urgent; text-color: @foreground; } prompt { enabled: true; padding: 12px; border-radius: 100%; background-color: @active; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 28px 10px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px 15px 15px 15px; padding: 15px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } ================================================ FILE: .config/rofi/powermenu/type-5/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #231419; background-alt: #2D1E23; foreground: #FFFFFF; selected: #426647; active: #2E3F34; urgent: #D08261; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 550px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; padding: 100px 40px; background-color: transparent; background-image: url("~/.config/rofi/images/e.jpg", width); children: [ "textbox-prompt-colon", "dummy","prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: " System"; padding: 12px; border-radius: 5px; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 12px; border-radius: 5px; background-color: @active; text-color: @foreground; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 2; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 15px; margin: 15px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 30px 10px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } ================================================ FILE: .config/rofi/powermenu/type-5/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #131D1F; background-alt: #183A43; foreground: #FFFFFF; selected: #649094; active: #E9CC9D; urgent: #FEA861; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 0px; padding: 150px 40px; background-color: transparent; background-image: url("~/.config/rofi/images/i.jpg", width); children: [ "textbox-prompt-colon", "dummy","prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: " System"; padding: 15px; border: 0px 5px 5px 0px; border-radius: 15px 5px 15px 5px; border-color: @selected; background-color: @urgent; text-color: @background; } prompt { enabled: true; padding: 15px; border: 0px 0px 5px 5px; border-radius: 5px 15px 5px 15px; border-color: @selected; background-color: @active; text-color: @background; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 25px; margin: 25px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 40px 10px; border-radius: 15px 30px 15px 30px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { border: 0px 0px 5px 5px; border-color: @urgent; background-color: var(background-alt); text-color: var(urgent); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } ================================================ FILE: .config/rofi/powermenu/type-5/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #1E1D2FFF; background-alt: #282839FF; foreground: #D9E0EEFF; selected: #7AA2F7FF; active: #ABE9B3FF; urgent: #F28FADFF; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { enabled: true; spacing: 0px; margin: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; background-color: transparent; children: [ "inputbar", "listview", "message" ]; } /*****----- Inputbar -----*****/ inputbar { enabled: true; spacing: 20px; padding: 100px 40px; background-color: transparent; background-image: url("~/.config/rofi/images/j.jpg", width); children: [ "textbox-prompt-colon", "prompt"]; } dummy { background-color: transparent; } textbox-prompt-colon { enabled: true; expand: false; str: " System"; padding: 15px; border: 0px 0px 0px 10px; border-radius: 100% 100% 0px 100%; border-color: @selected; background-color: @urgent; text-color: @foreground; } prompt { enabled: true; padding: 15px; border: 0px; border-radius: 0px 100% 100% 100%; border-color: @selected; background-color: @active; text-color: @background; } /*****----- Listview -----*****/ listview { enabled: true; columns: 6; lines: 1; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; margin: 30px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 35px 10px; border-radius: 55px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } ================================================ FILE: .config/rofi/powermenu/type-6/powermenu.sh ================================================ #!/usr/bin/env bash ## Author : Aditya Shakya (adi1090x) ## Github : @adi1090x # ## Rofi : Power Menu # ## Available Styles # ## style-1 style-2 style-3 style-4 style-5 # Current Theme dir="$HOME/.config/rofi/powermenu/type-6" theme='style-1' # CMDs lastlogin="`last $USER | head -n1 | tr -s ' ' | cut -d' ' -f5,6,7`" uptime="`uptime -p | sed -e 's/up //g'`" host=`hostname` # Options hibernate='' shutdown='' reboot='' lock='' suspend='' logout='' yes='' no='' # Rofi CMD rofi_cmd() { rofi -dmenu \ -p " $USER@$host" \ -mesg " Uptime: $uptime" \ -theme ${dir}/${theme}.rasi } # Confirmation CMD confirm_cmd() { rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ -theme-str 'mainbox {orientation: vertical; children: [ "message", "listview" ];}' \ -theme-str 'listview {columns: 2; lines: 1;}' \ -theme-str 'element-text {horizontal-align: 0.5;}' \ -theme-str 'textbox {horizontal-align: 0.5;}' \ -dmenu \ -p 'Confirmation' \ -mesg 'Are you Sure?' \ -theme ${dir}/${theme}.rasi } # Ask for confirmation confirm_exit() { echo -e "$yes\n$no" | confirm_cmd } # Pass variables to rofi dmenu run_rofi() { echo -e "$lock\n$suspend\n$logout\n$hibernate\n$reboot\n$shutdown" | rofi_cmd } # Execute Command run_cmd() { selected="$(confirm_exit)" if [[ "$selected" == "$yes" ]]; then if [[ $1 == '--shutdown' ]]; then systemctl poweroff elif [[ $1 == '--reboot' ]]; then systemctl reboot elif [[ $1 == '--hibernate' ]]; then systemctl hibernate elif [[ $1 == '--suspend' ]]; then mpc -q pause amixer set Master mute systemctl suspend elif [[ $1 == '--logout' ]]; then if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then openbox --exit elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then bspc quit elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then i3-msg exit elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then qdbus org.kde.ksmserver /KSMServer logout 0 0 0 fi fi else exit 0 fi } # Actions chosen="$(run_rofi)" case ${chosen} in $shutdown) run_cmd --shutdown ;; $reboot) run_cmd --reboot ;; $hibernate) run_cmd --hibernate ;; $lock) if [[ -x '/usr/bin/betterlockscreen' ]]; then betterlockscreen -l elif [[ -x '/usr/bin/i3lock' ]]; then i3lock fi ;; $suspend) run_cmd --suspend ;; $logout) run_cmd --logout ;; esac ================================================ FILE: .config/rofi/powermenu/type-6/style-1.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 15px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { spacing: 30px; padding: 30px; background-color: transparent; background-image: url("~/.config/rofi/images/a.png", height); children: [ "inputbar", "dummy", "message" ]; } /*****----- User -----*****/ userimage { margin: 0px 0px; border: 10px; border-radius: 10px; border-color: @background-alt; background-color: transparent; background-image: url("~/.config/rofi/images/a.png", height); } /*****----- Inputbar -----*****/ inputbar { padding: 15px; border-radius: 10px; background-color: @urgent; text-color: @foreground; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { background-color: inherit; text-color: inherit; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 10px; background-color: @active; text-color: @background; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; margin: 30px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 40px 10px; border-radius: 10px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-6/style-2.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #2D1B14; background-alt: #462D23; foreground: #FFFFFF; selected: #E25F3E; active: #716251; urgent: #934A1C; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 1000px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 24px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { spacing: 20px; padding: 20px; background-color: transparent; background-image: url("~/.config/rofi/images/d.png", height); children: [ "inputbar", "dummy", "message" ]; } /*****----- User -----*****/ userimage { margin: 0px 0px; border: 10px; border-radius: 10px; border-color: @background-alt; background-color: transparent; background-image: url("~/.config/rofi/images/d.png", height); } /*****----- Inputbar -----*****/ inputbar { padding: 15px; border-radius: 100%; background-color: @urgent; text-color: @foreground; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { background-color: inherit; text-color: inherit; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 100%; background-color: @active; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 2; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 20px; margin: 20px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 40px 10px; border-radius: 100%; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-6/style-3.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #231419; background-alt: #2D1E23; foreground: #FFFFFF; selected: #426647; active: #2E3F34; urgent: #D08261; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 10px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { spacing: 0px; padding: 30px; background-color: transparent; background-image: url("~/.config/rofi/images/e.jpg", width); children: [ "inputbar", "dummy", "message" ]; } /*****----- User -----*****/ userimage { margin: 0px 0px; border: 10px; border-radius: 10px; border-color: @background-alt; background-color: transparent; background-image: url("~/.config/rofi/images/e.jpg", height); } /*****----- Inputbar -----*****/ inputbar { padding: 15px; border-radius: 10px; background-color: @urgent; text-color: @background; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { background-color: inherit; text-color: inherit; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 15px; border-radius: 10px; background-color: @active; text-color: @foreground; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 3; lines: 2; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; margin: 30px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 18px 10px; border-radius: 20px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-6/style-4.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #131D1F; background-alt: #183A43; foreground: #FFFFFF; selected: #649094; active: #E9CC9D; urgent: #FEA861; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { background-color: transparent; orientation: horizontal; children: [ "imagebox", "listview" ]; } /*****----- Imagebox -----*****/ imagebox { expand: false; width: 640px; spacing: 0px; padding: 100px; background-color: transparent; background-image: url("~/.config/rofi/images/i.jpg", height); children: [ "inputbar", "dummy", "message" ]; } /*****----- User -----*****/ userimage { margin: 0px 0px; border: 10px; border-radius: 0px; border-color: @background-alt; background-color: transparent; background-image: url("~/.config/rofi/images/i.jpg", height); } /*****----- Inputbar -----*****/ inputbar { padding: 20px; border-radius: 0px; background-color: @urgent; text-color: @background; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { background-color: inherit; text-color: inherit; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 20px; border-radius: 0px; background-color: @active; text-color: @background; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 1; lines: 6; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; margin: 30px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 20px 10px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/rofi/powermenu/type-6/style-5.rasi ================================================ /** * * Author : Aditya Shakya (adi1090x) * Github : @adi1090x * * Rofi Theme File * Rofi Version: 1.7.3 **/ /*****----- Configuration -----*****/ configuration { show-icons: false; } /*****----- Global Properties -----*****/ * { font: "JetBrains Mono Nerd Font 10"; background: #11092D; background-alt: #281657; foreground: #FFFFFF; selected: #DF5296; active: #6E77FF; urgent: #8E3596; } /* USE_BUTTONS=YES */ /*****----- Main Window -----*****/ window { transparency: "real"; location: center; anchor: center; fullscreen: false; width: 800px; x-offset: 0px; y-offset: 0px; padding: 0px; border: 0px solid; border-radius: 0px; border-color: @selected; cursor: "default"; background-color: @background; } /*****----- Main Box -----*****/ mainbox { background-color: transparent; orientation: horizontal; children: [ "listview", "imagebox" ]; } /*****----- Imagebox -----*****/ imagebox { expand: false; width: 500px; spacing: 0px; padding: 100px; background-color: transparent; background-image: url("~/.config/rofi/images/j.jpg", height); children: [ "inputbar", "dummy", "message" ]; } /*****----- User -----*****/ userimage { margin: 0px 0px; border: 10px; border-radius: 0px; border-color: @background-alt; background-color: transparent; background-image: url("~/.config/rofi/images/j.jpg", height); } /*****----- Inputbar -----*****/ inputbar { padding: 20px; border-radius: 0px; background-color: @urgent; text-color: @background; children: [ "dummy", "prompt", "dummy"]; } dummy { background-color: transparent; } prompt { background-color: inherit; text-color: inherit; } /*****----- Message -----*****/ message { enabled: true; margin: 0px; padding: 20px; border-radius: 0px; background-color: @active; text-color: @background; } textbox { background-color: inherit; text-color: inherit; vertical-align: 0.5; horizontal-align: 0.5; } /*****----- Listview -----*****/ listview { enabled: true; columns: 2; lines: 3; cycle: true; dynamic: true; scrollbar: false; layout: vertical; reverse: false; fixed-height: true; fixed-columns: true; spacing: 30px; margin: 30px; background-color: transparent; cursor: "default"; } /*****----- Elements -----*****/ element { enabled: true; padding: 20px 10px; border-radius: 0px; background-color: @background-alt; text-color: @foreground; cursor: pointer; } element-text { font: "feather bold 32"; background-color: transparent; text-color: inherit; cursor: inherit; vertical-align: 0.5; horizontal-align: 0.5; } element selected.normal { background-color: var(selected); text-color: var(background); } ================================================ FILE: .config/wlogout/layout ================================================ { "label" : "lock", "action" : "loginctl lock-session", "text" : "lock", "keybind" : "l" } { "label" : "hibernate", "action" : "systemctl hibernate || loginctl hibernate", "text" : "save", "keybind" : "h" } { "label" : "logout", "action" : "pkill Hyprland || pkill sway || pkill niri || loginctl terminate-user $USER", "text" : "logout", "keybind" : "e" } { "label" : "shutdown", "action" : "systemctl poweroff || loginctl poweroff", "text" : "power_settings_new", "keybind" : "s" } { "label" : "suspend", "action" : "systemctl suspend || loginctl suspend", "text" : "bedtime", "keybind" : "u" } { "label" : "reboot", "action" : "systemctl reboot || loginctl reboot", "text" : "restart_alt", "keybind" : "r" } ================================================ FILE: .config/wlogout/style.css ================================================ * { all: unset; background-image: none; transition: 400ms cubic-bezier(0.05, 0.7, 0.1, 1); } window { background: rgba(0, 0, 0, 0.5); } button { font-family: 'Material Symbols Outlined'; font-size: 10rem; background-color: rgba(11, 11, 11, 0.4); color: #FFFFFF; margin: 2rem; border-radius: 2rem; padding: 3rem; } button:focus, button:active, button:hover { background-color: rgba(51, 51, 51, 0.5); border-radius: 4rem; } ================================================ FILE: .config/zshrc.d/auto-Hypr.sh ================================================ # Auto start Hyprland on tty1 if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then mkdir -p ~/.cache exec Hyprland > ~/.cache/hyprland.log 2>&1 fi ================================================ FILE: .config/zshrc.d/dots-hyprland.zsh ================================================ # Use the generated color scheme if test -f ~/.cache/ags/user/generated/terminal/sequences.txt; then cat ~/.cache/ags/user/generated/terminal/sequences.txt fi ================================================ FILE: .config/zshrc.d/shortcuts.zsh ================================================ # Created by newuser for 5.9 bindkey '^H' backward-kill-word bindkey '^Z' undo ================================================ FILE: .fastfetch_conf.jsonc ================================================ { "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", "logo": { "type": "kitty", "source": "~/Pictures/pixelparadise.jpg", "width": 25, "padding": { "top": 2, "left": 5, "right": 3 } }, "modules": [ { "type": "title", "color": { "user": "1", "host": "4" } }, "separator", "os", "host", "bios", "kernel", "uptime", "shell", "display", "de", "wm", "cpu", "gpu", "memory", "localip", "break", "colors" ] } ================================================ FILE: .fonts/.uuid ================================================ c05df02d-5a3b-4f6e-8e19-af8d20c96ad4 ================================================ FILE: .gitattributes ================================================ # Auto detect text files and perform LF normalization * text=auto ================================================ FILE: .zprofile ================================================ #if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then # Hyprland #fi # Created by `pipx` on 2024-10-20 01:45:11 export PATH="$PATH:/home/chiko/.local/bin" ================================================ FILE: .zshenv ================================================ . "$HOME/.cargo/env" ================================================ FILE: .zshrc ================================================ # (cat ~/.cache/wal/sequences &) # source ~/.cache/wal/colors.sh # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. fastfetch -c ~/.fastfetch_conf.jsonc if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH # Path to your oh-my-zsh installation. export ZSH="$HOME/.oh-my-zsh" export PATH=$HOME/.config/rofi/scripts:$PATH # Set name of the theme to load --- if set to "random", it will # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes #ZSH_THEME="powerlevel10k/powerlevel10k" # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load # a theme from this variable instead of looking in $ZSH/themes/ # If set to an empty array, this variable will have no effect. # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) # Uncomment the following line to use case-sensitive completion. # CASE_SENSITIVE="true" # Uncomment the following line to use hyphen-insensitive completion. # Case-sensitive completion must be off. _ and - will be interchangeable. HYPHEN_INSENSITIVE="true" # Uncomment one of the following lines to change the auto-update behavior # zstyle ':omz:update' mode disabled # disable automatic updates # zstyle ':omz:update' mode auto # update automatically without asking # zstyle ':omz:update' mode reminder # just remind me to update when it's time # Uncomment the following line to change how often to auto-update (in days). # zstyle ':omz:update' frequency 13 # Uncomment the following line if pasting URLs and other text is messed up. # DISABLE_MAGIC_FUNCTIONS="true" # Uncomment the following line to disable colors in ls. # DISABLE_LS_COLORS="true" # Uncomment the following line to disable auto-setting terminal title. # DISABLE_AUTO_TITLE="true" # Uncomment the following line to enable command auto-correction. # ENABLE_CORRECTION="true" # Uncomment the following line to display red dots whilst waiting for completion. # You can also set it to another string to have that shown instead of the default red dots. # e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" # Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) # COMPLETION_WAITING_DOTS="true" # Uncomment the following line if you want to disable marking untracked files # under VCS as dirty. This makes repository status check for large repositories # much, much faster. # DISABLE_UNTRACKED_FILES_DIRTY="true" # Uncomment the following line if you want to change the command execution time # stamp shown in the history command output. # You can set one of the optional three formats: # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" # or set a custom format using the strftime function format specifications, # see 'man strftime' for details. # HIST_STAMPS="mm/dd/yyyy" # Would you like to use another custom folder than $ZSH/custom? # ZSH_CUSTOM=/path/to/new-custom-folder # Which plugins would you like to load? # Standard plugins can be found in $ZSH/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=( zsh-syntax-highlighting zsh-autosuggestions git ) source $ZSH/oh-my-zsh.sh # User configuration # export MANPATH="/usr/local/man:$MANPATH" # You may need to manually set your language environment # export LANG=en_US.UTF-8 # Preferred editor for local and remote sessions # if [[ -n $SSH_CONNECTION ]]; then # export EDITOR='vim' # else # export EDITOR='mvim' # fi # Compilation flags # export ARCHFLAGS="-arch x86_64" # Set personal aliases, overriding those provided by oh-my-zsh libs, # plugins, and themes. Aliases can be placed here, though oh-my-zsh # users are encouraged to define aliases within the ZSH_CUSTOM folder. # For a full list of active aliases, run `alias`. # # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" source ~/powerlevel10k/powerlevel10k.zsh-theme #source ~/.config/zshrc.d/dots-hyprland.zsh # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh export PATH=$PATH:/home/chiko/.spicetify export CHROME_EXECUTABLE=/usr/bin/brave #unifetch --ascii_distro Arch --color_blocks off alias hz144="wlr-randr --output eDP-1 --custom-mode 1920x1080@144" alias hz60="wlr-randr --output eDP-1 --custom-mode 1920x1080@60" alias bat="bat --theme OneHalfDark " alias ls="eza -1lxh -F --classify=always --color=always --icons=always --no-quotes --hyperlink --group-directories-first --no-user --git -@" alias la="eza -1oxlhA -F --classify=always --color=always --icons=always --no-quotes --hyperlink --group-directories-first --no-user" alias l="ls" alias vim="nvim" alias vi="nvim" alias nv="nvim" alias s='shutdown -P' alias b="btop" alias dgpu="supergfxctl -m Hybrid && hyprctl dispatch exit" alias igpu="supergfxctl -m Integrated && hyprctl dispatch exit" alias ff="fastfetch -c ~/.fastfetch_conf.jsonc" alias nf="neofetch --disable gpu wm shell packages terminal wm_theme --cpu_speed off --cpu_cores off --distro_shorthand on --gtk2 off --gtk3 off --bold on --color_blocks off --colors 4 4 4 4 --ascii_distro arch_small --ascii_colors 4 7" alias cls="clear && fastfetch -c ~/.fastfetch_conf.jsonc" alias y=yazi alias lg=lazygit alias exiftool="perl ~/Downloads/Image-ExifTool-12.97/exiftool" alias cpu="cpufreqctl turbo get" alias cpuoff="cpufreqctl turbo get && sudo cpufreqctl turbo set off && cpufreqctl turbo get " alias cpuon="cpufreqctl turbo get && sudo cpufreqctl turbo set on && cpufreqctl turbo get " alias yq="yay -Qi" alias yq="yay -Qi" alias q=exit [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh source /home/chiko/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh source ~/.config/zshrc.d/auto-Hypr.sh # bun completions [ -s "/home/chiko/.bun/_bun" ] && source "/home/chiko/.bun/_bun" # source /usr/share/nvm/init-nvm.sh source /home/chiko/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh source /home/chiko/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh alias vpnoff="systemctl stop openvpn-client@riseup.service" alias vpnon="systemctl start openvpn-client@riseup.service" alias tb="nc termbin.com 9999" alias el="./Downloads/github_downloads/evillimiter/run.sh" # Added by LM Studio CLI (lms) export PATH="$PATH:/home/chiko/.lmstudio/bin" # End of LM Studio CLI section # pnpm export PNPM_HOME="/home/chiko/.local/share/pnpm" case ":$PATH:" in *":$PNPM_HOME:"*) ;; *) export PATH="$PNPM_HOME:$PATH" ;; esac # pnpm end export PATH="$HOME/.npm-global/bin:$PATH" # OpenClaw Completion source "/home/chiko/.openclaw/completions/openclaw.zsh" ================================================ FILE: README.md ================================================

🎇 Dotfiles 🎇

# Table of Contents - [Table of Contents](#table-of-contents) - [Tools used](#tools-used) - [Keybind Table](#keybind-table) - [Essentials](#essentials) - [Actions](#actions) - [Session Management](#session-management) - [Window Management](#window-management) - [Workspace Navigation](#workspace-navigation) - [Workspace Management](#workspace-management) - [Widgets](#widgets) - [Media Controls](#media-controls) - [Application Shortcuts](#application-shortcuts) # Tools used - **Window Manager** • [Hyprland](https://github.com/hyprwm/Hyprland)🎨 Tiles Everywhere! - **Shell** • [Zsh](https://www.zsh.org) 🐚 - **Terminal** • [Kitty](https://github.com/kovidgoyal/kitty) 💻 A powerful term with gpu support! - **Panel** • [Hyprpanel](https://github.com/Jas-SinghFSU/HyprPanel)🍧 A Bar/Panel for Hyprland with extensive customizability. - **Notify Daemon** • ~~[Dunst](https://github.com/dunst-project/dunst) 🍃 Minimalist and functional!~~ was\ its hyprpanel now handling the notifications with [Swaync](https://github.com/ErikReider/SwayNotificationCenter) - **Launcher** • [Rofi](https://github.com/davatorium/rofi) 🚀 A window switcher, application launcher and dmenu replacement - **File Manager** • [yazi](https://github.com/sxyazi/yazi)🔖 💥 Blazing fast terminal file manager written in Rust, based on async I/O. - **GUI Basic-IDE** • [NvChad](https://github.com/NvChad/NvChad) Rice IDE!

🍙• Screenshots •🍙



# Keybind Table Note: Some keybindings may be hidden or have alternatives. This table includes the primary visible keybindings from the configuration file. ## Essentials | Keybind | Action | |---------|--------| | Super + R | Launch terminal (kitty) | | Ctrl + Super + T | Change wallpaper | ## Actions | Keybind | Action | |---------|--------| | Super + V | Open clipboard history | | Super + Period | Open emoji picker | | Super + Shift + S | Take a screenshot (screen snip) | | Shift + Alt + S | Take a screenshot and open in editor | | Super + Shift + T | OCR: Screen snip to text | | Super + Shift + C | Pick color (Hex) | | Print | Full screenshot to clipboard | | Ctrl + Print | Full screenshot to file | | Super + Alt + R | Record region (no sound) | | Super + Shift + Alt + R | Record screen (with sound) | ## Session Management | Keybind | Action | |---------|--------| | Super + L | Lock session | | Super + Shift + L | Suspend system | | Ctrl + Shift + Alt + Super + Delete | Power off | ## Window Management | Keybind | Action | |---------|--------| | Super + Arrow Keys | Move focus in direction | | Super + Q | Close active window | | Super + Shift + Alt + Q | Pick and kill a window | | Super + Shift + Arrow Keys | Move window in direction | | Super + +/- | Adjust window split ratio | | Super + Alt + P | Toggle floating | | Super + Alt + F | Toggle fake fullscreen | | Super + F | Toggle fullscreen | | Super + D | Toggle fullscreen (preserve gaps) | ## Workspace Navigation | Keybind | Action | |---------|--------| | Super + [1-0] | Switch to workspace 1-10 | | Ctrl + Super + Left/Right | Focus left/right workspace | | Super + Mouse Wheel | Focus left/right workspace | | Super + Page Up/Down | Focus left/right workspace | ## Workspace Management | Keybind | Action | |---------|--------| | Super + Alt + [1-0] | Move window to workspace 1-10 | | Ctrl + Super + Shift + Left/Right | Move window to left/right workspace | | Super + Shift + Mouse Wheel | Move window to left/right workspace | | Super + Alt + Page Up/Down | Move window to left/right workspace | | Super + P | Pin window (stays visible on all workspaces) | ## Widgets | Keybind | Action | |---------|--------| | Ctrl + Super + R | Restart widgets | | Ctrl + Alt + / | Cycle bar mode | | Super (hold) | Toggle overview/launcher | | Super + / | Show cheatsheet | | Super + A | Toggle dashboard menu | | Super + S | Toggle energy menu | | Super + M | Toggle media menu | | Super + N | Toggle notifications menu | | Ctrl + Alt + Delete | Toggle power menu | | Ctrl + Super + G | Toggle crosshair | ## Media Controls | Keybind | Action | |---------|--------| | Super + Shift + N | Next track | | Super + Shift + B | Previous track | | Super + Shift + P | Play/pause media | ## Application Shortcuts | Keybind | Action | |---------|--------| | Super + T | Launch terminal (foot) | | Super + Z | Launch Zed (editor) | | Super + C | Launch VSCode | | Super + E | Launch file manager (nemo) | | Ctrl + Super + W | Launch Firefox | | Super + X | Launch GNOME Text Editor | | Super + Shift + W | Launch WPS Office | | Super + I | Launch GNOME Settings | | Ctrl + Super + V | Launch pavucontrol (volume mixer) | | Ctrl + Super + Shift + V | Launch EasyEffects | | Ctrl + Shift + Escape | Launch GNOME System Monitor | | Ctrl + Super + / | Toggle fallback launcher (anyrun) | | Super + Alt + / | Toggle fallback launcher (fuzzel) | ---


• thanks to •

- [Jas-SinghFSU](https://github.com/Jas-SinghFSU/) for making [Hyprpanel](https://github.com/Jas-SinghFSU/HyprPanel) - [Aylur](https://github.com/Aylur/) for making [ags](https://github.com/Aylur/ags) - [end-4](https://github.com/end-4) for ags scripts and other hyprland [configs](https://github.com/end-4/dots-hyprland) - [adil090x](https://github.com/adi1090x/) for [rofi themes](https://github.com/adi1090x/rofi) - r/Unixporn and many others for inspiration! <3 ================================================ FILE: backup.sh ================================================ #!/bin/bash script_dir="$(pwd)" # Function to copy files/directories, replacing if they exist copy_item() { if [ -e "$1" ]; then rsync -a --delete "$1" "$2" echo "Updated: $1" else echo "Not found: $1" fi } # Backup Hyprland config echo echo "Backup Hyprland config" copy_item "$HOME/.config/hypr" "$script_dir/.config/" # Backup wlogout config echo echo "Backup wlogout config" copy_item "$HOME/.config/wlogout" "$script_dir/.config/" # Backup fuzzel config echo echo "Backup fuzzel config" copy_item "$HOME/.config/fuzzel" "$script_dir/.config/" # Backup qt config echo echo "Backup qt5ct & qt6ct config" copy_item "$HOME/.config/qt5ct" "$script_dir/.config/" copy_item "$HOME/.config/qt6ct" "$script_dir/.config/" # Backup AGS config echo echo "Backup AGS config" copy_item "$HOME/Downloads/github_downloads/HyprPanel/." "$script_dir/.config/ags" # Backup rofi configs echo echo "Backup rofi config" copy_item "$HOME/.config/rofi" "$script_dir/.config/" # Backup Kitty config echo echo "Backup Kitty config" copy_item "$HOME/.config/kitty" "$script_dir/.config/" # Backup zsh configs echo echo "Backup zsh configs" copy_item "$HOME/.zshrc" "$script_dir/" copy_item "$HOME/.zprofile" "$script_dir/" copy_item "$HOME/.zshenv" "$script_dir/" copy_item "$HOME/.zsh" "$script_dir/" copy_item "$HOME/.config/zshrc.d" "$script_dir/.config/" # Backup fonts echo echo "Backup fonts" copy_item "$HOME/.fonts" "$script_dir/" echo echo "Backup completed in: $script_dir" # Backup fastfetch conf echo echo "Backup fastfetch conf" copy_item "$HOME/.fastfetch_conf.jsonc" "$script_dir/" ================================================ FILE: hyprpanel_config.json ================================================ { "bar.customModules.updates.pollingInterval": 1440000, "tear": true, "theme.font.weight": 600, "theme.font.size": "1rem", "theme.bar.scaling": 85, "theme.bar.floating": true, "theme.bar.buttons.enableBorders": true, "theme.bar.buttons.borderSize": "0.1em", "theme.bar.outer_spacing": "2.6em", "theme.bar.buttons.y_margins": "-0.1em", "theme.bar.buttons.radius": "0.3em", "theme.bar.layer": "top", "theme.bar.margin_top": "0.5em", "theme.bar.border_radius": "0.4em", "theme.bar.margin_sides": "0.5em", "theme.bar.buttons.dashboard.enableBorder": false, "theme.bar.buttons.workspaces.enableBorder": false, "theme.bar.location": "top", "bar.workspaces.numbered_active_indicator": "underline", "bar.workspaces.show_numbered": false, "bar.workspaces.show_icons": false, "theme.bar.buttons.workspaces.smartHighlight": true, "bar.workspaces.hideUnoccupied": false, "bar.windowtitle.custom_title": true, "bar.volume.label": true, "bar.bluetooth.label": false, "theme.bar.buttons.systray.enableBorder": true, "bar.media.show_label": true, "bar.media.truncation": true, "bar.notifications.show_total": false, "menus.clock.time.military": true, "bar.clock.format": "%a %b %d %I:%M %p", "menus.dashboard.stats.enable_gpu": false, "bar.customModules.netstat.networkInterface": "wlan0", "theme.bar.buttons.modules.kbLayout.enableBorder": false, "theme.bar.menus.monochrome": true, "wallpaper.pywal": true, "theme.bar.menus.border.radius": "0.7em", "theme.matugen": false, "theme.bar.transparent": true, "theme.bar.margin_bottom": "0em", "bar.layouts": { "0": { "left": [ "dashboard", "workspaces", "netstat", "windowtitle" ], "middle": [ "media" ], "right": [ "systray", "volume", "network", "kbinput", "battery", "clock", "notifications" ] }, "1": { "left": [ "dashboard", "workspaces", "windowtitle" ], "middle": [ "media" ], "right": [ "volume", "clock", "notifications" ] }, "2": { "left": [ "dashboard", "workspaces", "windowtitle" ], "middle": [ "media" ], "right": [ "volume", "clock", "notifications" ] } }, "theme.osd.duration": 2500, "theme.osd.orientation": "horizontal", "theme.osd.location": "top", "theme.osd.margins": "50px 0px 0px 0px", "theme.osd.muted_zero": true, "theme.osd.radius": "0.6em", "wallpaper.image": "/home/chiko/Pictures/Link%20to%20W&P/wallhaven-5g9ed8.png", "theme.bar.buttons.monochrome": false, "bar.workspaces.scroll_speed": 5, "wallpaper.enable": true, "theme.matugen_settings.mode": "dark", "bar.workspaces.showAllActive": true, "theme.bar.buttons.windowtitle.enableBorder": false, "theme.bar.buttons.spacing": "0.25em", "theme.bar.buttons.padding_y": "0.2rem", "theme.bar.menus.menu.power.scaling": 100, "theme.bar.buttons.padding_x": "0.7rem", "theme.bar.opacity": 100, "theme.bar.buttons.opacity": 100, "theme.font.name": "Ubuntu Nerd Font", "scalingPriority": "gdk", "notifications.active_monitor": true, "theme.bar.buttons.modules.netstat.enableBorder": false, "bar.customModules.netstat.icon": "󰣺", "bar.customModules.netstat.labelType": "full", "bar.customModules.netstat.round": true, "bar.customModules.kbLayout.icon": "", "bar.customModules.kbLayout.labelType": "code", "bar.customModules.kbLayout.leftClick": "", "bar.customModules.updates.icon": "󰏖", "menus.dashboard.powermenu.avatar.image": "/home/chiko/Pictures/a714d6b4-97de-405a-8161-1146babfad6e.jpeg", "notifications.timeout": 2000, "menus.dashboard.shortcuts.left.shortcut1.icon": "", "menus.dashboard.shortcuts.left.shortcut2.command": "spotify", "menus.dashboard.shortcuts.left.shortcut4.command": "fuzzel", "menus.dashboard.shortcuts.left.shortcut1.command": "brave", "menus.dashboard.shortcuts.left.shortcut1.tooltip": "Brave", "menus.dashboard.directories.left.directory1.command": "bash -c \"nemo $HOME/Downloads/\"", "menus.dashboard.directories.left.directory2.command": "bash -c \"nemo $HOME/Videos/\"", "menus.dashboard.directories.left.directory3.command": "bash -c \"nemo $HOME/Projects/\"", "menus.dashboard.directories.right.directory1.command": "bash -c \"nemo $HOME/Documents/\"", "menus.dashboard.directories.right.directory2.command": "bash -c \"nemo $HOME/Pictures/\"", "menus.dashboard.directories.right.directory3.command": "bash -c \"nemo $HOME/\"" }