diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..01fa17d --- /dev/null +++ b/.bashrc @@ -0,0 +1,141 @@ +# Enable the subsequent settings only in interactive sessions +case $- in + *i*) ;; + *) return;; +esac + +# Path to your oh-my-bash installation. +export OSH=$HOME/.oh-my-bash + +# Set name of the theme to load. Optionally, if you set this to "random" +# it'll load a random theme each time that oh-my-bash is loaded. +OSH_THEME="agnoster" + +# Uncomment the following line to use case-sensitive completion. +# OMB_CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# OMB_HYPHEN_SENSITIVE="false" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_OSH_DAYS=13 + +# 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. +# 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 don't want the repository to be considered dirty +# if there are untracked files. +# SCM_GIT_DISABLE_UNTRACKED_DIRTY="true" + +# Uncomment the following line if you want to completely ignore the presence +# of untracked files in the repository. +# SCM_GIT_IGNORE_UNTRACKED="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. One of the following values can +# be used to specify the timestamp format. +# * 'mm/dd/yyyy' # mm/dd/yyyy + time +# * 'dd.mm.yyyy' # dd.mm.yyyy + time +# * 'yyyy-mm-dd' # yyyy-mm-dd + time +# * '[mm/dd/yyyy]' # [mm/dd/yyyy] + [time] with colors +# * '[dd.mm.yyyy]' # [dd.mm.yyyy] + [time] with colors +# * '[yyyy-mm-dd]' # [yyyy-mm-dd] + [time] with colors +# If not set, the default value is 'yyyy-mm-dd'. +# HIST_STAMPS='yyyy-mm-dd' + +# Uncomment the following line if you do not want OMB to overwrite the existing +# aliases by the default OMB aliases defined in lib/*.sh +# OMB_DEFAULT_ALIASES="check" + +# Would you like to use another custom folder than $OSH/custom? +# OSH_CUSTOM=/path/to/new-custom-folder + +# To disable the uses of "sudo" by oh-my-bash, please set "false" to +# this variable. The default behavior for the empty value is "true". +OMB_USE_SUDO=true + +# To enable/disable display of Python virtualenv and condaenv +# OMB_PROMPT_SHOW_PYTHON_VENV=true # enable +# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable + +# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*) +# Custom completions may be added to ~/.oh-my-bash/custom/completions/ +# Example format: completions=(ssh git bundler gem pip pip3) +# Add wisely, as too many completions slow down shell startup. +completions=( + git + composer + ssh +) + +# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*) +# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/ +# Example format: aliases=(vagrant composer git-avh) +# Add wisely, as too many aliases slow down shell startup. +aliases=( + general +) + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*) +# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + git + bashmarks +) + +# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*) +# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ +# Example format: +# if [ "$DISPLAY" ] || [ "$SSH" ]; then +# plugins+=(tmux-autoattach) +# fi + +source "$OSH"/oh-my-bash.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" + +# ssh +# export SSH_KEY_PATH="~/.ssh/rsa_id" + +# Set personal aliases, overriding those provided by oh-my-bash libs, +# plugins, and themes. Aliases can be placed here, though oh-my-bash +# users are encouraged to define aliases within the OSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias bashconfig="mate ~/.bashrc" +# alias ohmybash="mate ~/.oh-my-bash" diff --git a/.config/VSCodium/User/settings.json b/.config/VSCodium/User/settings.json new file mode 100644 index 0000000..46db42c --- /dev/null +++ b/.config/VSCodium/User/settings.json @@ -0,0 +1,64 @@ +{ + "editor.minimap.enabled": false, + "editor.linkedEditing": true, + "git.inputValidationSubjectLength": 72, + "editor.wordWrap": "on", + "editor.formatOnPaste": true, + "editor.formatOnSave": false, + "files.trimFinalNewlines": true, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + "html.format.enable": true, + "workbench.editor.highlightModifiedTabs": true, + "editor.fontLigatures": false, + "breadcrumbs.enabled": true, + "css.lint.important": "warning", + "scss.lint.important": "warning", + "debug.toolBarLocation": "docked", + "editor.lineHeight": 22, + "_comment_about_cursorStyle_": "block, block-outline, line, line-thin, underline, or underline-thin", + "editor.cursorStyle": "line", + "_comment_about_cursorBlinking_": "blink, smooth, phase, expand, or solid", + "editor.cursorBlinking": "smooth", + "editor.bracketPairColorization.enabled": true, + "editor.inlayHints.enabled": "on", + + "[rust]": { + "editor.defaultFormatter": "rust-lang.rust-analyzer", + "editor.formatOnSave": true, + }, + "rust-analyzer.check.command": "clippy", + "rust-analyzer.rustfmt.rangeFormatting.enable": true, + "[javascript]": { + "editor.maxTokenizationLineLength": 2500, + }, + "javascript.format.enable": true, + "javascript.format.insertSpaceAfterConstructor": true, + "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, + "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, + "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, + "javascript.updateImportsOnFileMove.enabled": "always", + "typescript.updateImportsOnFileMove.enabled": "always", + + "[markdown]": { + "editor.unicodeHighlight.invisibleCharacters": false, + "diffEditor.ignoreTrimWhitespace": false, + "editor.wordWrap": "on", + "editor.quickSuggestions": { + "comments": "off", + "strings": "off", + "other": "off", + }, + + }, + "markdown.preview.scrollEditorWithPreview": true, + "markdown.preview.scrollPreviewWithEditor": true, + + "workbench.iconTheme": "catppuccin-macchiato", + "workbench.colorTheme": "Catppuccin Macchiato", + "python.defaultInterpreterPath": $HOME/venv/bin/python, + "files.associations": { + "*.vpy": "python" + }, +} diff --git a/.config/doom/config.el b/.config/doom/config.el new file mode 100755 index 0000000..fadbb78 --- /dev/null +++ b/.config/doom/config.el @@ -0,0 +1,79 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +(setq user-full-name "John Doe" + user-mail-address "john@doe.com") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-unicode-font' -- for unicode glyphs +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light) +;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +(setq doom-theme 'doom-one) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +(setq display-line-numbers-type t) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/org/") + + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `after!' block, otherwise Doom's defaults may override your settings. E.g. +;; +;; (after! PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. + +(setq doom-theme 'catppuccin) +(setq catppuccin-flavor 'macchiato) \ No newline at end of file diff --git a/.config/doom/custom.el b/.config/doom/custom.el new file mode 100755 index 0000000..31c8dd4 --- /dev/null +++ b/.config/doom/custom.el @@ -0,0 +1,77 @@ +;; [[file:../../dotfiles.org::*Customization][Customization:1]] +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(+org-capture-todo-file " t) + '(custom-safe-themes + '("944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948" "1a1ac598737d0fcdc4dfab3af3d6f46ab2d5048b8e72bc22f50271fd6d393a00" default)) + ;;'(gdscript-godot-executable "godot") + '(lsp-gdscript-port 6005) + '(lsp-tcp-connection-timeout 10) + '(org-agenda-files + '("" "")) + '(org-capture-templates + '(("t" "Personal todo" entry + (file+headline +org-capture-todo-file "TODOS") + "* [ ] %? +%i +%a" :prepend t) + ("n" "Personal notes" entry + (file+headline +org-capture-notes-file "Inbox") + "* %u %? +%i +%a" :prepend t) + ("j" "Journal" entry + (file+olp+datetree +org-capture-journal-file) + "* %U %? +%i +%a" :prepend t) + ("p" "Templates for projects") + ("pt" "Project-local todo" entry + (file+headline +org-capture-project-todo-file "Inbox") + "* TODO %? +%i +%a" :prepend t) + ("pn" "Project-local notes" entry + (file+headline +org-capture-project-notes-file "Inbox") + "* %U %? +%i +%a" :prepend t) + ("pc" "Project-local changelog" entry + (file+headline +org-capture-project-changelog-file "Unreleased") + "* %U %? +%i +%a" :prepend t) + ("o" "Centralized templates for projects") + ("ot" "Project todo" entry #'+org-capture-central-project-todo-file "* TODO %? + %i + %a" :heading "Tasks" :prepend nil) + ("on" "Project notes" entry #'+org-capture-central-project-notes-file "* %U %? + %i + %a" :prepend t :heading "Notes") + ("oc" "Project changelog" entry #'+org-capture-central-project-changelog-file "* %U %? + %i + %a" :prepend t :heading "Changelog") + ("z" "Pomodoro" entry + (file+headline +org-capture-todo-file "Pomodoros") + "* [ ] %? +%i +%a" :prepend t :kill-buffer t :pomodoro t))) + '(org-priority-lowest 68) + '(org-todo-keywords + '((sequence "TODO(t)" "PROJ(p)" "LOOP(r)" "TODAY(m)" "STRT(s)" "WAIT(w)" "HOLD(h)" "IDEA(i)" "|" "DONE(d)" "KILL(k)") + (sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)") + (sequence "|" "OKAY(o)" "YES(y)" "NO(n)"))) + '(package-selected-packages '(ob-rust)) + '(visual-fill-column-center-text t) + '(visual-fill-column-width 110) + '(warning-suppress-types '((lsp-mode) (defvaralias)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) +;; Customization:1 ends here diff --git a/.config/doom/init.el b/.config/doom/init.el new file mode 100755 index 0000000..3663fd0 --- /dev/null +++ b/.config/doom/init.el @@ -0,0 +1,194 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a link to Doom's Module Index where all +;; of our modules are listed, including what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;bidi ; (tfel ot) thgir etirw uoy gnipleh + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + ;;doom-quit ; DOOM quit-message prompts when you quit Emacs + (emoji +unicode) ; ๐Ÿ™‚ + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + ;;indent-guides ; highlighted indent columns + ;;ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + unicode ; extended unicode support for various languages + (vc-gutter +pretty) ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + ;;eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + ;;vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;(spell +flyspell) ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;biblio ; Writes a PhD for you (citation needed) + debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + ;;editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + lookup ; navigate your code and its documentation + lsp ; M-x vscode + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + ;;tree-sitter ; syntax and parsing, sitting in a tree... + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if IS-MAC macos) ; improve compatibility with macOS + ;;tty ; improve the terminal Emacs experience + + :lang + ;;agda ; types of types of types of types... + ;;beancount ; mind the GAAP + ;;(cc +lsp) ; C > C++ == 1 + ;;clojure ; java with a lisp + common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + (go +lsp) ; the hipster dialect + ;;(graphql +lsp) ; Give queries a REST + ;;(haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + ;;json ; At least it ain't XML + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ;;ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;(scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + ;;yaml ; JSON, but readable + ;;zig ; C, but simpler + + :email + ;;(mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;emms + ;;everywhere ; *leave* Emacs!? You must be joking + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/.config/doom/packages.el b/.config/doom/packages.el new file mode 100755 index 0000000..00df2ba --- /dev/null +++ b/.config/doom/packages.el @@ -0,0 +1,50 @@ +;; -*- no-byte-compile: t; -*- +;;; $DOOMDIR/packages.el + +;; To install a package with Doom you must declare them here and run 'doom sync' +;; on the command line, then restart Emacs for the changes to take effect -- or +;; use 'M-x doom/reload'. + + +;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: +;(package! some-package) + +;; To install a package directly from a remote git repo, you must specify a +;; `:recipe'. You'll find documentation on what `:recipe' accepts here: +;; https://github.com/radian-software/straight.el#the-recipe-format +;(package! another-package +; :recipe (:host github :repo "username/repo")) + +;; If the package you are trying to install does not contain a PACKAGENAME.el +;; file, or is located in a subdirectory of the repo, you'll need to specify +;; `:files' in the `:recipe': +;(package! this-package +; :recipe (:host github :repo "username/repo" +; :files ("some-file.el" "src/lisp/*.el"))) + +;; If you'd like to disable a package included with Doom, you can do so here +;; with the `:disable' property: +;(package! builtin-package :disable t) + +;; You can override the recipe of a built in package without having to specify +;; all the properties for `:recipe'. These will inherit the rest of its recipe +;; from Doom or MELPA/ELPA/Emacsmirror: +;(package! builtin-package :recipe (:nonrecursive t)) +;(package! builtin-package-2 :recipe (:repo "myfork/package")) + +;; Specify a `:branch' to install a package from a particular branch or tag. +;; This is required for some packages whose default branch isn't 'master' (which +;; our package manager can't deal with; see radian-software/straight.el#279) +;(package! builtin-package :recipe (:branch "develop")) + +;; Use `:pin' to specify a particular commit to install. +;(package! builtin-package :pin "1a2b3c4d5e") + + +;; Doom's packages are pinned to a specific commit and updated from release to +;; release. The `unpin!' macro allows you to unpin single packages... +;(unpin! pinned-package) +;; ...or multiple packages +;(unpin! pinned-package another-pinned-package) +;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) +;(unpin! t) diff --git a/.config/doom/themes/catppuccin-theme.el b/.config/doom/themes/catppuccin-theme.el new file mode 100755 index 0000000..9f12490 --- /dev/null +++ b/.config/doom/themes/catppuccin-theme.el @@ -0,0 +1,1152 @@ +;;; catppuccin-theme.el --- Catppuccin for Emacs - ๐Ÿ„ Soothing pastel theme for Emacs -*- lexical-binding: t; no-byte-compile: t; -*- + +;; Copyright 2022-present, All rights reserved +;; +;; Code licensed under the MIT license + +;; Maintainer: Carsten Kragelund +;; Author: nyxkrage +;; Original-Author: film42 +;; Version: 1.0.0 +;; Package-Requires: ((emacs "25.1")) +;; URL: https://github.com/catppuccin/emacs + +;;; Commentary: + +;; ๐Ÿ„ Soothing pastel theme for Emacs + +;;; Code: +(deftheme catppuccin) + +;;;; Configuration options: + +(defgroup catppuccin nil + "Catppuccin theme options. + +The theme has to be reloaded after changing anything in this group." + :group 'faces) + +(defcustom catppuccin-enlarge-headings t + "Use different font sizes for some headings and titles." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-height-title-1 1.3 + "Header 1 font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-height-title-2 1.2 + "Header 2 font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-height-title-3 1.2 + "Header 3 font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-height-doc-title 1.44 + "Documentation Title font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-highlight-matches nil + "Use background color to make highlighted matches more visible." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-italic-comments nil + "Use :slant italic for comments." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-italic-variables nil + "Use :slant italic for variables." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-flavor 'mocha + "The flavor to use for the Catppuccin theme. +Must be one of `mocha`, `macchiato`, `frappe`, or `latte`." + :type '(choice (const :tag "Mocha" mocha) + (const :tag "Macchiato" macchiato) + (const :tag "Frappe" frappe) + (const :tag "Latte" latte)) + :group 'catppuccin) + +(defcustom catppuccin-mocha-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") + (subtext0 . "#a6adc8") + (overlay2 . "#9399b2") + (overlay1 . "#7f849c") + (overlay0 . "#6c7086") + (surface2 . "#585b70") + (surface1 . "#45475a") + (surface0 . "#313244") + (base . "#1e1e2e") + (mantle . "#181825") + (crust . "#11111b")) + "Colors used for catppuccin-mocha." + :tag "Mocha Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +(defcustom catppuccin-macchiato-colors '((rosewater . "#f4dbd6") + (flamingo . "#f0c6c6") + (pink . "#f5bde6") + (mauve . "#c6a0f6") + (red . "#ed8796") + (maroon . "#ee99a0") + (peach . "#f5a97f") + (yellow . "#eed49f") + (green . "#a6da95") + (teal . "#8bd5ca") + (sky . "#91d7e3") + (sapphire . "#7dc4e4") + (blue . "#8aadf4") + (lavender . "#b7bdf8") + (text . "#cad3f5") + (subtext1 . "#b8c0e0") + (subtext0 . "#a5adcb") + (overlay2 . "#939ab7") + (overlay1 . "#8087a2") + (overlay0 . "#6e738d") + (surface2 . "#5b6078") + (surface1 . "#494d64") + (surface0 . "#363a4f") + (base . "#24273a") + (mantle . "#1e2030") + (crust . "#181926")) + "Colors used for catppuccin-macchiato." + :tag "Macchiato Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +(defcustom catppuccin-frappe-colors '((rosewater . "#f2d5cf") + (flamingo . "#eebebe") + (pink . "#f4b8e4") + (mauve . "#ca9ee6") + (red . "#e78284") + (maroon . "#ea999c") + (peach . "#ef9f76") + (yellow . "#e5c890") + (green . "#a6d189") + (teal . "#81c8be") + (sky . "#99d1db") + (sapphire . "#85c1dc") + (blue . "#8caaee") + (lavender . "#babbf1") + (text . "#c6d0f5") + (subtext1 . "#b5bfe2") + (subtext0 . "#a5adce") + (overlay2 . "#949cbb") + (overlay1 . "#838ba7") + (overlay0 . "#737994") + (surface2 . "#626880") + (surface1 . "#51576d") + (surface0 . "#414559") + (base . "#303446") + (mantle . "#292c3c") + (crust . "#232634")) + "Colors used for catppuccin-frappe." + :tag "Frappe Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +(defcustom catppuccin-latte-colors '((rosewater . "#dc8a78") + (flamingo . "#dd7878") + (pink . "#ea76cb") + (mauve . "#8839ef") + (red . "#d20f39") + (maroon . "#e64553") + (peach . "#fe640b") + (yellow . "#df8e1d") + (green . "#40a02b") + (teal . "#179299") + (sky . "#04a5e5") + (sapphire . "#209fb5") + (blue . "#1e66f5") + (lavender . "#7287fd") + (text . "#4c4f69") + (subtext1 . "#5c5f77") + (subtext0 . "#6c6f85") + (overlay2 . "#7c7f93") + (overlay1 . "#8c8fa1") + (overlay0 . "#9ca0b0") + (surface2 . "#acb0be") + (surface1 . "#bcc0cc") + (surface0 . "#ccd0da") + (base . "#eff1f5") + (mantle . "#e6e9ef") + (crust . "#dce0e8")) + "Colors used for catppuccin-latte." + :tag "Latte Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +;;;; Internal functions + +(defun catppuccin-quantize-color (color) + "Quantize COLOR to a 256 color palette." + (let ((i 1) + (str "#")) + (while (<= i 5) + (setq str + (concat + str + (format + "%02x" + (* (round + (/ + (string-to-number (substring color i (+ i 2)) 16) + 17)) + 17)))) + (setq i (+ i 2))) + str)) + +;; Color operations +(let* ((hex-to-rgb (lambda (color) + (mapcar + (lambda (i) (string-to-number (substring color i (+ i 2)) 16)) + '(1 3 5)))) + (rgb-to-hex (lambda (r g b) + (format "#%02x%02x%02x" r g b))) + (rnd (lambda (n) (round (+ .5 n))))) + + (defun catppuccin-lighten (color value) + "Lighten COLOR by VALUE%." + (let* ((factor (/ value 100.0))) + (apply rgb-to-hex (mapcar (lambda (v) (funcall rnd (min 255 (+ (* (- 255 v) factor) v)))) + (funcall hex-to-rgb color))))) + + (defun catppuccin-darken (color value) + "Darken COLOR by VALUE%." + (let* ((factor (/ value 100.0))) + (apply rgb-to-hex (mapcar (lambda (v) (floor (* (- 1 factor) v))) + (funcall hex-to-rgb color)))))) + +;;; User functions + +(defun catppuccin-reload () + "Reload the Catppuccin theme, useful for after having set custom colors with `catppuccin-set-color`." + (interactive) + (disable-theme 'catppuccin) + (load-theme 'catppuccin t)) + +(defun catppuccin-set-color (color value &optional flavor) + "Set the COLOR of FLAVOR or the current flavor to VALUE." + (interactive "SChange color: \nsSet %s to: ") + (setcdr (assoc color (symbol-value (intern-soft (concat "catppuccin-" (symbol-name (or flavor catppuccin-flavor)) "-colors")))) value)) + +(defun catppuccin-get-color (color &optional flavor) + "Get the COLOR of FLAVOR or the current flavor." + (interactive "SThe color to get: ") + (alist-get color (symbol-value (intern-soft (concat "catppuccin-" (symbol-name (or flavor catppuccin-flavor)) "-colors"))))) + +;;;; Theme definition: +(let ((colors '((undef "#ff00ff" "#ff00ff") + (ctp-rosewater (catppuccin-get-color 'rosewater) (catppuccin-quantize-color (catppuccin-get-color 'rosewater))) + (ctp-flamingo (catppuccin-get-color 'flamingo) (catppuccin-quantize-color (catppuccin-get-color 'flamingo))) + (ctp-pink (catppuccin-get-color 'pink) (catppuccin-quantize-color (catppuccin-get-color 'pink))) + (ctp-mauve (catppuccin-get-color 'mauve) (catppuccin-quantize-color (catppuccin-get-color 'mauve))) + (ctp-red (catppuccin-get-color 'red) (catppuccin-quantize-color (catppuccin-get-color 'red))) + (ctp-maroon (catppuccin-get-color 'maroon) (catppuccin-quantize-color (catppuccin-get-color 'maroon))) + (ctp-peach (catppuccin-get-color 'peach) (catppuccin-quantize-color (catppuccin-get-color 'peach))) + (ctp-yellow (catppuccin-get-color 'yellow) (catppuccin-quantize-color (catppuccin-get-color 'yellow))) + (ctp-green (catppuccin-get-color 'green) (catppuccin-quantize-color (catppuccin-get-color 'green))) + (ctp-teal (catppuccin-get-color 'teal) (catppuccin-quantize-color (catppuccin-get-color 'teal))) + (ctp-sky (catppuccin-get-color 'sky) (catppuccin-quantize-color (catppuccin-get-color 'sky))) + (ctp-sapphire (catppuccin-get-color 'sapphire) (catppuccin-quantize-color (catppuccin-get-color 'sapphire))) + (ctp-blue (catppuccin-get-color 'blue) (catppuccin-quantize-color (catppuccin-get-color 'blue))) + (ctp-lavender (catppuccin-get-color 'lavender) (catppuccin-quantize-color (catppuccin-get-color 'lavender))) + (ctp-text (catppuccin-get-color 'text) (catppuccin-quantize-color (catppuccin-get-color 'text))) + (ctp-subtext1 (catppuccin-get-color 'subtext1) (catppuccin-quantize-color (catppuccin-get-color 'subtext1))) + (ctp-subtext0 (catppuccin-get-color 'subtext0) (catppuccin-quantize-color (catppuccin-get-color 'subtext0))) + (ctp-overlay2 (catppuccin-get-color 'overlay2) (catppuccin-quantize-color (catppuccin-get-color 'overlay2))) + (ctp-overlay1 (catppuccin-get-color 'overlay1) (catppuccin-quantize-color (catppuccin-get-color 'overlay1))) + (ctp-overlay0 (catppuccin-get-color 'overlay0) (catppuccin-quantize-color (catppuccin-get-color 'overlay0))) + (ctp-surface2 (catppuccin-get-color 'surface2) (catppuccin-quantize-color (catppuccin-get-color 'surface2))) + (ctp-surface1 (catppuccin-get-color 'surface1) (catppuccin-quantize-color (catppuccin-get-color 'surface1))) + (ctp-surface0 (catppuccin-get-color 'surface0) (catppuccin-quantize-color (catppuccin-get-color 'surface0))) + (ctp-base (catppuccin-get-color 'base) (catppuccin-quantize-color (catppuccin-get-color 'base))) + (ctp-mantle (catppuccin-get-color 'mantle) (catppuccin-quantize-color (catppuccin-get-color 'mantle))) + (ctp-crust (catppuccin-get-color 'crust) (catppuccin-quantize-color (catppuccin-get-color 'crust))) + + (ctp-current (if (eq catppuccin-flavor 'latte) + (catppuccin-darken (catppuccin-get-color 'base) 5) + (catppuccin-lighten (catppuccin-get-color 'base) 5)) + (catppuccin-quantize-color (if (eq catppuccin-flavor 'latte) + (catppuccin-darken (catppuccin-get-color 'base) 5) + (catppuccin-lighten (catppuccin-get-color 'base) 5)))))) + (faces '(;; default / basic faces + (cursor :background ,ctp-rosewater) ;; If you want to change this to a nicer color you can do so by swapping "ctp-rosewater" with another colour var like "ctp-red" + (default :background ,ctp-base :foreground ,ctp-text) + (default-italic :slant italic) + (hl-todo :foreground ,ctp-peach) + (error :foreground ,ctp-red) + (ffap :foreground ,undef) + (fringe :background ,ctp-base :foreground ,ctp-surface1) + (header-line :inherit 'mode-line) + (highlight :foreground ,ctp-text :background ,ctp-current) + (hl-line :background ,ctp-current :extend t) + (info-quoted-name :foreground ,undef) + (info-string :foreground ,ctp-green) + (lazy-highlight :foreground ,ctp-subtext1 :background ,ctp-surface1) + (link :foreground ,ctp-lavender :underline t) + (link-unvisited :foreground ,ctp-blue :underline t) + (linum :foreground ,ctp-surface1 :background ,ctp-base) + (line-number :foreground ,ctp-surface1 :background ,ctp-base) + (line-number-current-line :inherit line-number :foreground ,ctp-lavender) + (match :background ,ctp-red :foreground ,ctp-mantle) + (menu :background ,ctp-current :inverse-video nil :foreground ,ctp-text) + (minibuffer-prompt :weight normal :foreground ,ctp-subtext0) + (mode-line :background ,ctp-mantle nil :foreground ,ctp-text) + (mode-line-inactive + :background ,ctp-crust :inverse-video nil :foreground ,ctp-overlay0) + (read-multiple-choice-face :inherit completions-first-difference) + (region :background ,ctp-surface0 :extend t) + (shadow :foreground ,ctp-overlay0) + (success :foreground ,ctp-green) + (warning :foreground ,ctp-yellow) + (tooltip :foreground ,ctp-overlay2 :background ,ctp-surface0) + (trailing-whitespace :inherit warning) + (window-divider :foreground ,ctp-mantle) + (vertical-border :foreground ,ctp-mantle) + + ;;tty menu + (tty-menu-enabled-face :foreground ,ctp-text :inverse-video nil :background ,ctp-current) + (tty-menu-disabled-face :background ,ctp-crust :inverse-video nil :foreground ,ctp-overlay0) + (tty-menu-selected-face :foreground ,ctp-text :background ,ctp-surface1) + + ;; solaire-mode + (solaire-default-face :background ,ctp-mantle :foreground ,ctp-text) + (solaire-fringe-face :background ,ctp-mantle :foreground ,ctp-surface1) + (solaire-line-number-face :foreground ,ctp-surface1 :background ,ctp-mantle) + (solaire-mode-line-face :background ,ctp-crust nil :foreground ,ctp-text) + (solaire-mode-line-inactive-face + :background ,ctp-crust :inverse-video nil :foreground ,ctp-subtext1) + (solaire-header-line-face :inherit 'solaire-mode-line-face) + + ;; evil + (evil-ex-lazy-highlight :inherit lazy-highlight) + (evil-ex-substitute-matches :foreground ,ctp-red :underline t) + (evil-ex-substitute-replacement :foreground ,ctp-green :underline t) + + ;; syntax / font-lock + (font-lock-bracket-face :foreground ,ctp-overlay2) + (font-lock-builtin-face :foreground ,ctp-red) + (font-lock-comment-face ,@(if catppuccin-italic-comments + '(:inherit (shadow italic)) + '(:inherit shadow))) + (font-lock-comment-delimiter-face :inherit shadow) + (font-lock-constant-face :foreground ,ctp-peach) + (font-lock-delimiter-face :foreground ,ctp-overlay2) + (font-lock-doc-face :inherit font-lock-comment-face) + (font-lock-escape-face :foreground ,ctp-pink) + (font-lock-function-call-face :foreground ,ctp-blue) + (font-lock-function-name-face :foreground ,ctp-blue) + (font-lock-keyword-face :foreground ,ctp-mauve) + (font-lock-negation-char-face :foreground ,ctp-sky) + (font-lock-number-face :foreground ,ctp-peach) + (font-lock-operator-face :foreground ,ctp-sky) + (font-lock-preprocessor-face :foreground ,ctp-yellow) + (font-lock-reference-face :inherit font-lock-constant-face) ;; obsolete + (font-lock-regexp-grouping-backslash :foreground ,undef) + (font-lock-regexp-grouping-construct :foreground ,undef) + (font-lock-string-face :foreground ,ctp-green) + (font-lock-type-face :foreground ,ctp-yellow) + (font-lock-variable-name-face :foreground ,ctp-text ,@(when catppuccin-italic-variables + '(:inherit italic))) + (font-lock-variable-use-face :foreground ,ctp-text ,@(when catppuccin-italic-variables + '(:inherit italic))) + (font-lock-warning-face :inherit warning) + ;; auto-complete + (ac-completion-face :underline t :foreground ,undef) + ;; avy + (avy-background-face :foreground ,ctp-text :background ,ctp-base) + (avy-goto-char-timer-face :foreground ,ctp-blue :background ,ctp-surface0) + (avy-lead-face :foreground ,ctp-base :background ,ctp-mauve) + (avy-lead-face-0 :foreground ,ctp-base :background ,ctp-yellow) + (avy-lead-face-1 :foreground ,ctp-base :background ,ctp-overlay0) + (avy-lead-face-2 :foreground ,ctp-base :background ,ctp-sky) + ;; company + ;; TODO: find undef'ed faces + (company-echo-common :foreground ,ctp-base :background ,ctp-text) + (company-preview :background ,ctp-current :foreground ,undef) + (company-preview-common :inherit company-preview + :foreground ,ctp-green) + (company-preview-search :inherit company-preview + :foreground ,undef) + (company-scrollbar-bg :background ,ctp-surface0) + (company-scrollbar-fg :foreground ,undef) + (company-tooltip :inherit tooltip) + (company-tooltip-search :foreground ,undef + :underline t) + (company-tooltip-search-selection :background ,undef + :foreground ,ctp-base) + (company-tooltip-selection :inherit match) + (company-tooltip-mouse :background ,ctp-base) + (company-tooltip-common :foreground ,ctp-text :weight bold) + ;;(company-tooltip-common-selection :inherit company-tooltip-common) + (company-tooltip-annotation :foreground ,ctp-green) + (company-tooltip-annotation-selection :foreground ,ctp-mauve) + ;; completions (minibuffer.el) + (completions-annotations :inherit font-lock-comment-face) + (completions-common-part :foreground ,ctp-sky) + (completions-first-difference :foreground ,ctp-text) + ;; diff-hl + (diff-hl-change :foreground ,ctp-blue :background ,ctp-blue) + (diff-hl-delete :foreground ,ctp-red :background ,ctp-red) + (diff-hl-insert :foreground ,ctp-green :background ,ctp-green) + ;; diff-refine + (diff-refine-removed :weight bold) + (diff-refine-added :weight bold) + ;; git-gutter + (git-gutter:modified :foreground ,ctp-peach) + (git-gutter:deleted :foreground ,ctp-red) + (git-gutter:added :foreground ,ctp-green) + (git-gutter:seperator :inherit font-lock-comment-face) + (git-gutter:unchanged :foreground ,ctp-surface0) + ;; git-gutter fringe + (git-gutter-fr:modified :inherit git-gutter:modified) + (git-gutter-fr:deleted :inherit git-gutter:deleted) + (git-gutter-fr:added :inherit git-gutter:added) + ;; dired + (dired-flagged :foreground ,ctp-maroon :weight bold) + (dired-marked :weight bold) + (dired-mark :inherit dired-marked) + (dired-header :foreground ,ctp-sapphire :weight bold) + (dired-ignored :inherit font-lock-comment-face) + (dired-special :foreground ,ctp-yellow) + (dired-symlink :foreground ,ctp-pink) + (dired-warning :inherit warning) + (dired-directory :foreground ,ctp-blue) + (dired-perm-write :foreground ,ctp-green) + (dired-broken-symlink :foreground ,ctp-text :background ,ctp-red) + ;; dired+ (kept for legacy support) + ;; TODO (maybe): Show deprecation warning + ;; This doesn't make sense to keep around + (diredp-compressed-file-name :inherit dired-file-name) + (diredp-compressed-file-suffix :foreground ,ctp-green) + (diredp-date-time :foreground ,ctp-subtext0) + (diredp-deletion-file-name :inherit dired-flagged) + (diredp-deletion :inherit dired-flagged) + (diredp-dir-heading :inherit dired-header) + (diredp-dir-name :inherit dired-directory) + (diredp-dir-priv :inherit dired-directory) + (diredp-executable-tag :foreground ,ctp-red) + (diredp-file-suffix :inherit dired-file-name) + (diredp-flag-mark-line :inherit dired-marked) + (diredp-flag-mark :inherit dired-mark) + (diredp-ignored-file-name :foreground ,ctp-text) + (diredp-mode-line-flagged :foreground ,undef) + (diredp-mode-line-marked :foreground ,undef) + (diredp-no-priv :foreground ,ctp-surface2) + (diredp-number :foreground ,ctp-yellow) + (diredp-other-priv :inherit diredp-exec-priv) + (diredp-rare-priv :inherit diredp-exec-priv) + (diredp-read-priv :foreground ,ctp-sky) + (diredp-write-priv :inherit dired-perm-write) + (diredp-exec-priv :foreground ,ctp-red) + (diredp-symlink :inherit dired-symlink) + (diredp-link-priv :inherit dired-symlink) + (diredp-autofile-name :foreground ,undef) + (diredp-tagged-autofile-name :foreground ,undef) + ;; diredfl (more modernly published dired+) + (diredfl-file-name :inherit dired-file-name) + (diredfl-compressed-file-name :inherit dired-file-name) + (diredfl-compressed-file-suffix :foreground ,ctp-green) + (diredfl-date-time :foreground ,ctp-subtext0) + (diredfl-deletion-file-name :inherit dired-flagged) + (diredfl-deletion :inherit dired-flagged) + (diredfl-dir-heading :inherit dired-header) + (diredfl-dir-name :inherit dired-directory) + (diredfl-dir-priv :inherit dired-directory) + (diredfl-executable-tag :foreground ,ctp-red) + (diredfl-file-suffix :inherit dired-file-name) + (diredfl-flag-mark-line :inherit dired-marked) + (diredfl-flag-mark :inherit dired-mark) + (diredfl-ignored-file-name :foreground ,ctp-text) + (diredfl-mode-line-flagged :foreground ,undef) + (diredfl-mode-line-marked :foreground ,undef) + (diredfl-no-priv :foreground ,ctp-surface2) + (diredfl-number :foreground ,ctp-yellow) + (diredfl-other-priv :inherit diredfl-exec-priv) + (diredfl-rare-priv :inherit diredfl-exec-priv) + (diredfl-read-priv :foreground ,ctp-sky) + (diredfl-write-priv :inherit dired-perm-write) + (diredfl-exec-priv :foreground ,ctp-red) + (diredfl-symlink :inherit dired-symlink) + (diredfl-link-priv :inherit dired-symlink) + (diredfl-autofile-name :foreground ,undef) + (diredfl-tagged-autofile-name :foreground ,undef) + ;; eldoc-box + (eldoc-box-border :background ,ctp-current) + (eldoc-box-body :background ,ctp-current) + ;; elfeed + (elfeed-search-date-face :foreground ,ctp-subtext0) + (elfeed-search-title-face :foreground ,ctp-text) + (elfeed-search-unread-title-face :foreground ,ctp-red) + (elfeed-search-feed-face :foreground ,ctp-text :weight bold) + (elfeed-search-tag-face :foreground ,ctp-green) + (elfeed-search-last-update-face :weight bold) + (elfeed-search-unread-count-face :foreground ,ctp-pink) + (elfeed-search-filter-face :foreground ,ctp-green :weight bold) + (elfeed-log-date-face :inherit elfeed-search-date-face) + (elfeed-log-error-level-face :inherit error) + (elfeed-log-warn-level-face :foreground ,ctp-peach) + (elfeed-log-info-level-face :weight bold) + (elfeed-log-debug-level-face :weight bold) + ;; elpher + (elpher-gemini-heading1 :weight bold :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (elpher-gemini-heading2 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (elpher-gemini-heading3 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (elpher-gemini-preformatted :inherit fixed-pitch + :foreground ,ctp-green) + ;; enh-ruby + (enh-ruby-heredoc-delimiter-face :foreground ,ctp-yellow) + (enh-ruby-op-face :inherit haskell-operator-face) + (enh-ruby-regexp-delimiter-face :foreground ,ctp-yellow) + (enh-ruby-string-delimiter-face :foreground ,ctp-yellow) + ;; flyspell + (flyspell-duplicate :underline (:style wave :color ,ctp-teal)) + (flyspell-incorrect :underline (:style wave :color ,ctp-maroon)) + ;; font-latex + (font-latex-bold-face :foreground ,ctp-red :weight bold) + (font-latex-italic-face :foreground ,ctp-yellow :slant italic) + (font-latex-match-reference-keywords :foreground ,ctp-teal) + (font-latex-match-variable-keywords :foreground ,ctp-text) + (font-latex-string-face :foreground ,ctp-green) + (font-latex-warning-face :inherit warning) + ;; TODO: More latex faces to be themed, especially sections + ;; gemini + (gemini-heading-face-1 :weight bold :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (gemini-heading-face-2 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (gemini-heading-face-3 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (gemini-heading-face-rest :foreground ,ctp-blue) + (gemini-quote-face :foreground ,ctp-green) + ;; go-test + (go-test--ok-face :inherit success) + (go-test--error-face :inherit error) + (go-test--warning-face :inherit warning) + (go-test--pointer-face :foreground ,ctp-pink) + (go-test--standard-face :foreground ,ctp-teal) + ;; haskell-mode + (haskell-operator-face :foreground ,ctp-sky) + (haskell-constructor-face :foreground ,ctp-mauve) + ;; helm + ;; TODO: Theme helm + (helm-bookmark-w3m :foreground ,undef) + (helm-buffer-not-saved :foreground ,undef) + (helm-buffer-process :foreground ,undef) + (helm-buffer-saved-out :foreground ,undef) + (helm-buffer-size :foreground ,undef) + (helm-candidate-number :foreground ,undef) + (helm-ff-directory :foreground ,undef) + (helm-ff-dotted-directory :foreground ,undef) + (helm-ff-executable :foreground ,undef) + (helm-ff-file :foreground ,undef) + (helm-ff-invalid-symlink :foreground ,undef) + (helm-ff-prefix :foreground ,undef) + (helm-ff-symlink :foreground ,undef) + (helm-grep-cmd-line :foreground ,undef) + (helm-grep-file :foreground ,undef) + (helm-grep-finish :foreground ,undef) + (helm-grep-lineno :foreground ,undef) + (helm-grep-match :inherit match) + (helm-grep-running :foreground ,undef) + (helm-header :foreground ,undef) + (helm-moccur-buffer :foreground ,undef) + (helm-selection :underline nil) + (helm-selection-line) + (helm-separator :foreground ,undef) + (helm-source-go-package-godoc-description :foreground ,undef) + (helm-source-header :foreground ,undef) + (helm-time-zone-current :foreground ,undef) + (helm-time-zone-home :foreground ,undef) + (helm-visible-mark :foreground ,undef) + ;; consult + (consult-async-split :foreground ,ctp-mauve) + ;; corfu + (corfu-default :background ,ctp-surface0) + (corfu-current :background ,ctp-surface1) + (corfu-bar :background ,ctp-subtext0) + (corfu-border :inherit corfu-default) + (corfu-annotations :inherit font-lock-comment-face) + (corfu-deprecated :strike-through t) + ;; highlight-indentation minor mode + (highlight-indentation-face :background ,ctp-mantle) + ;; icicle + ;; TODO: Verify this looks proper + (icicle-whitespace-highlight :background ,ctp-text) + (icicle-special-candidate :foreground ,ctp-subtext1) + (icicle-extra-candidate :foreground ,ctp-subtext1) + (icicle-search-main-regexp-others :foreground ,ctp-text) + (icicle-search-current-input :foreground ,ctp-pink) + (icicle-search-context-level-8 :foreground ,ctp-blue) + (icicle-search-context-level-7 :foreground ,ctp-blue) + (icicle-search-context-level-6 :foreground ,ctp-blue) + (icicle-search-context-level-5 :foreground ,ctp-blue) + (icicle-search-context-level-4 :foreground ,ctp-blue) + (icicle-search-context-level-3 :foreground ,ctp-blue) + (icicle-search-context-level-2 :foreground ,ctp-blue) + (icicle-search-context-level-1 :foreground ,ctp-blue) + (icicle-search-main-regexp-current :foreground ,ctp-text) + (icicle-saved-candidate :foreground ,ctp-text) + (icicle-proxy-candidate :foreground ,ctp-text) + (icicle-mustmatch-completion :foreground ,ctp-mauve) + (icicle-multi-command-completion :foreground ,ctp-subtext0) + (icicle-msg-emphasis :foreground ,ctp-green) + (icicle-mode-line-help :foreground ,ctp-overlay2) + (icicle-match-highlight-minibuffer :foreground ,ctp-mauve) + (icicle-match-highlight-Completions :foreground ,ctp-green) + (icicle-key-complete-menu-local :foreground ,ctp-text) + (icicle-key-complete-menu :foreground ,ctp-text) + (icicle-input-completion-fail-lax :foreground ,ctp-maroon) + (icicle-input-completion-fail :foreground ,ctp-maroon) + (icicle-historical-candidate-other :foreground ,ctp-text) + (icicle-historical-candidate :foreground ,ctp-text) + (icicle-current-candidate-highlight :foreground ,ctp-pink) + (icicle-Completions-instruction-2 :foreground ,ctp-overlay2) + (icicle-Completions-instruction-1 :foreground ,ctp-overlay2) + (icicle-completion :foreground ,ctp-text) + (icicle-complete-input :foreground ,ctp-peach) + (icicle-common-match-highlight-Completions :foreground ,ctp-mauve) + (icicle-candidate-part :foreground ,ctp-text) + (icicle-annotation :foreground ,ctp-overlay2) + ;; icomplete + (icompletep-determined :foreground ,ctp-blue) + ;; ido + (ido-first-match :foreground ,ctp-green) + (ido-only-match :foreground ,ctp-green) + (ido-subdir :inherit dired-directory) + (ido-virtual :foreground ,ctp-sapphire) + (ido-incomplete-regexp :inherit warning) + (ido-indicator :foreground ,ctp-text :weight bold) + ;; ivy + (ivy-current-match :background ,ctp-red :foreground ,ctp-mantle :bold t) + (ivy-action :background unspecified :foreground ,ctp-lavender) + (ivy-grep-line-number :background unspecified :foreground ,ctp-teal) + (ivy-minibuffer-match-face-1 :background unspecified :foreground ,ctp-blue :bold t) + (ivy-minibuffer-match-face-2 :background unspecified :foreground ,ctp-sapphire) + (ivy-minibuffer-match-face-3 :background unspecified :foreground ,ctp-lavender) + (ivy-minibuffer-match-face-4 :background unspecified :foreground ,ctp-mauve) + (ivy-minibuffer-match-highlight :foreground ,ctp-blue) + (ivy-grep-info :foreground ,ctp-blue) + (ivy-grep-line-number :foreground ,ctp-mauve) + (ivy-confirm-face :foreground ,ctp-green) + (ivy-remote :foreground ,ctp-mauve) + (ivy-match-required-face :foreground ,ctp-red) + ;; isearch + (isearch :inherit match :weight bold) + (isearch-fail :inherit error) + ;; jde-java + (jde-java-font-lock-constant-face :inherit font-lock-constant-face) + (jde-java-font-lock-modifier-face :inherit font-lock-keyword-face) + (jde-java-font-lock-number-face :foreground ,ctp-text) + (jde-java-font-lock-package-face :foreground ,ctp-text) + (jde-java-font-lock-private-face :inherit font-lock-keyword-face) + (jde-java-font-lock-public-face :inherit font-lock-keyword-face) + ;; js2-mode + (js2-external-variable :foreground ,ctp-red) + (js2-function-param :inherit tree-sitter-hl-face:variable.parameter) + (js2-jsdoc-html-tag-delimiter :inherit web-mode-html-tag-bracket-face) + (js2-jsdoc-html-tag-name :inherit web-mode-html-tag-face) + (js2-jsdoc-value :foreground ,ctp-text) + (js2-private-function-call :inherit tree-sitter-hl-face:function.call) + (js2-private-member :inherit font-lock-variable-name-face) + ;; js3-mode + (js3-error-face :inherit error) + (js3-external-variable-face :foreground ,ctp-text) + (js3-function-param-face :inherit js2-function-param) + (js3-instance-member-face :inherit font-lock-variable-name-face) + (js3-jsdoc-tag-face :inherit web-mode-html-tag-face) + (js3-warning-face :inherit warning) + ;; lsp + (lsp-ui-peek-peek :background ,ctp-mantle) + (lsp-ui-peek-list :background ,ctp-mantle) + (lsp-ui-peek-filename :foreground ,ctp-text) + (lsp-ui-peek-line-number :foreground ,ctp-surface1) + (lsp-ui-peek-highlight :inherit highlight :distant-foreground ,ctp-base) + (lsp-ui-peek-header :background ,ctp-mantle :foreground ,ctp-blue, :weight bold) + (lsp-ui-peek-footer :inherit lsp-ui-peek-header) + (lsp-ui-peek-selection :inherit match) + (lsp-ui-sideline-symbol :foreground ,ctp-subtext0) + (lsp-ui-sideline-current-symbol :foreground ,ctp-text :weight bold) + (lsp-ui-sideline-code-action :foreground ,ctp-yellow) + (lsp-ui-sideline-symbol-info :slant italic :height 0.99) + (lsp-ui-doc-background :background ,ctp-base) + (lsp-ui-doc-header :foreground ,ctp-sapphire) + ;; magit + (magit-branch-local :foreground ,ctp-teal) + (magit-branch-remote :foreground ,ctp-green) + (magit-tag :foreground ,ctp-peach) + (magit-section-heading :foreground ,ctp-blue :weight bold) + (magit-section-highlight :background ,ctp-surface0 :extend t) + (magit-diff-context-highlight :background ,ctp-surface0 + :foreground ,ctp-text + :extend t) + (magit-diff-revision-summary :foreground ,ctp-blue + :weight bold) + (magit-diff-revision-summary-highlight :foreground ,ctp-blue + :weight bold) + (magit-diff-added :foreground ,ctp-green + :extend t) + (magit-diff-added-highlight :background ,ctp-surface1 + :foreground ,ctp-green + :extend t) + (magit-diff-removed :foreground ,ctp-red + :extend t) + (magit-diff-removed-highlight :background ,ctp-surface1 + :foreground ,ctp-red + :extend t) + (magit-diff-file-heading :foreground ,ctp-text) + (magit-diff-file-heading-highlight :inherit magit-section-highlight) + (magit-diffstat-added :foreground ,ctp-green) + (magit-diffstat-removed :foreground ,ctp-red) + (magit-hash :foreground ,ctp-subtext0) + (diff-header :foreground ,ctp-blue) + (diff-hunk-header :foreground ,ctp-text :background ,ctp-surface2) + (magit-diff-hunk-heading :inherit diff-hunk-header) + (magit-diff-hunk-heading-highlight :inherit diff-hunk-header :weight bold) + (magit-item-highlight :background ,undef) + (magit-log-author :foreground ,ctp-subtext0) + (magit-process-ng :foreground ,ctp-peach :weight bold) + (magit-process-ok :foreground ,ctp-green :weight bold) + ;; markdown + (markdown-blockquote-face :foreground ,ctp-green) + (markdown-code-face :foreground ,ctp-text) + (markdown-footnote-face :foreground ,ctp-yellow) + (markdown-header-face :weight normal) + (markdown-header-face-1 + :foreground ,ctp-red + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (markdown-header-face-2 + :foreground ,ctp-peach + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (markdown-header-face-3 + :foreground ,ctp-yellow + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (markdown-header-face-4 :foreground ,ctp-green) + (markdown-header-face-5 :foreground ,ctp-sapphire) + (markdown-header-face-6 :foreground ,ctp-lavender) + (markdown-inline-code-face :foreground ,ctp-green) + (markdown-plain-url-face :inherit link) + (markdown-pre-face :foreground ,ctp-green) + (markdown-table-face :foreground ,ctp-text) + (markdown-list-face :foreground ,ctp-mauve) + (markdown-language-keyword-face :inherit font-lock-comment-face) + ;; message + (message-header-to :foreground ,ctp-text :weight bold) + (message-header-cc :foreground ,ctp-text :weight bold) + (message-header-subject :foreground ,ctp-blue) + (message-header-newsgroups :foreground ,ctp-mauve) + (message-header-other :foreground ,ctp-mauve) + (message-header-name :foreground ,ctp-green) + (message-header-xheader :foreground ,ctp-lavender) + (message-separator :inherit font-lock-comment-face) + (message-cited-text :foreground ,ctp-green) + (message-cited-text-1 :foreground ,ctp-yellow) + (message-cited-text-2 :inherit font-lock-comment-face) + (message-cited-text-3 :inherit font-lock-comment-face) + (message-cited-text-4 :inherit font-lock-comment-face) + (message-mml :foreground ,ctp-green :weight normal) + ;; mini-modeline + (mini-modeline-mode-line :inherit mode-line :height 0.1 :box nil) + ;; mu4e + (mu4e-unread-face :foreground ,ctp-maroon) + (mu4e-view-url-number-face :foreground ,ctp-yellow) + (mu4e-highlight-face :background ,ctp-base + :weight bold + :extend t) + (mu4e-header-highlight-face :background ,ctp-current + :foreground ,ctp-text + :underline nil :weight bold + :extend t) + (mu4e-header-key-face :inherit message-mml) + (mu4e-header-marks-face :foreground ,ctp-mauve) + (mu4e-cited-1-face :foreground ,ctp-green) + (mu4e-cited-2-face :foreground ,ctp-yellow) + (mu4e-cited-3-face :inherit font-lock-comment-face) + (mu4e-cited-4-face :inherit font-lock-comment-face) + (mu4e-cited-5-face :inherit font-lock-comment-face) + ;; neotree + (neo-banner-face :foreground ,ctp-blue :weight bold) + ;;(neo-button-face :underline nil) + (neo-dir-link-face :inherit link) + (neo-expand-btn-face :foreground ,ctp-text) + (neo-file-link-face :inherit link) + (neo-header-face :weight bold) + (neo-root-dir-face :foreground ,ctp-blue :weight bold) + (neo-vc-added-face :foreground ,ctp-green) + (neo-vc-conflict-face :inherit error) + (neo-vc-default-face :inherit default) + (neo-vc-edited-face :foreground ,ctp-peach) + (neo-vc-ignored-face :inherit font-lock-comment-face) + (neo-vc-missing-face :foreground ,ctp-maroon) + (neo-vc-needs-merge-face :foreground ,ctp-maroon + :weight bold) + ;;(neo-vc-needs-update-face :underline t) + (neo-vc-removed-face :foreground ,ctp-red) + (neo-vc-unlocked-changes-face :foreground ,ctp-red) + ;;(neo-vc-unregistered-face nil) + (neo-vc-up-to-date-face :foreground ,ctp-text) + (neo-vc-user-face :foreground ,ctp-mauve) + ;; orderless + (orderless-match-face-0 :foreground ,ctp-blue :weight bold) + (orderless-match-face-1 :foreground ,ctp-mauve :weight bold) + (orderless-match-face-2 :foreground ,ctp-teal :weight bold) + (orderless-match-face-3 :foreground ,ctp-peach :weight bold) + ;; org + (org-agenda-date :foreground ,ctp-subtext0 :weight normal) + (org-agenda-date-today :foreground ,ctp-subtext0 :weight bold) + (org-agenda-date-weekend :inherit org-agenda-date) + (org-agenda-date-weekend-today :inherit org-agenda-date :weight bold) + (org-agenda-dimmed-todo-face :inherit font-lock-comment-face) + (org-agenda-done :foreground ,ctp-green) + (org-agenda-structure :foreground ,ctp-subtext0) + (org-block :extend t :background ,ctp-mantle :foreground ,ctp-green) + (org-block-begin-line :inherit org-meta-line :extend t :background ,ctp-mantle) + (org-block-end-line :inherit org-block-begin-line :extend t :background ,ctp-mantle) + (org-code :foreground ,ctp-green) + (org-column :background ,ctp-surface0) + (org-column-title :inherit org-column :weight bold :underline t) + (org-date :inherit org-agenda-date) + (org-document-info :foreground ,ctp-sapphire) + (org-document-info-keyword :inherit font-lock-comment-face) + (org-document-title :weight bold :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-doc-title))) + (org-done :inherit font-lock-comment-face) + (org-ellipsis :inherit font-lock-comment-face) + (org-footnote :foreground ,ctp-mauve) + (org-formula :foreground ,ctp-pink) + (org-headline-done :inherit org-done) + (org-hide :foreground ,ctp-crust :background ,ctp-base) + (org-level-1 :inherit bold :foreground ,ctp-red + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (org-level-2 :inherit bold :foreground ,ctp-peach + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (org-level-3 :weight normal :foreground ,ctp-yellow + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (org-level-4 :weight normal :foreground ,ctp-green) + (org-level-5 :weight normal :foreground ,ctp-sapphire) + (org-level-6 :weight normal :foreground ,ctp-lavender) + (org-level-7 :weight normal :foreground ,ctp-mauve) + (org-level-8 :weight normal :foreground ,ctp-maroon) + (org-link :inherit link) + (org-meta-line :inherit font-lock-comment-face) + (org-priority :foreground ,ctp-yellow) + (org-quote :inherit markdown-blockquote-face) + (org-scheduled :foreground ,ctp-green) + (org-scheduled-previously :foreground ,ctp-teal) + (org-scheduled-today :foreground ,ctp-green :weight bold) + (org-sexp-date :foreground ,ctp-subtext0) + (org-special-keyword :inherit font-lock-keyword-face) + (org-table :foreground ,ctp-overlay0) + (org-tag :foreground ,ctp-mauve :weight bold) + (org-todo :foreground ,ctp-peach) + (org-upcoming-deadline :foreground ,ctp-maroon) + (org-verbatim :inherit org-quote) + (org-warning :inherit warning) + ;; calfw + (cfw:face-title :foreground ,ctp-blue :weight bold :height 1.5) + (cfw:face-header :foreground ,ctp-text) + (cfw:face-sunday :foreground ,ctp-overlay1) + (cfw:face-saturday :foreground ,ctp-overlay1) + (cfw:face-holiday :foreground ,ctp-green) + (cfw:face-grid :foreground ,ctp-surface0) + (cfw:face-default-content :foreground ,ctp-peach) + (cfw:face-periods :foreground ,undef) + (cfw:face-day-title :foreground ,ctp-subtext0) + (cfw:face-default-day :foreground ,ctp-text) + (cfw:face-annotation :foreground ,undef) + (cfw:face-disable :foreground ,ctp-surface1) + (cfw:face-today-title :foreground ,ctp-peach) + (cfw:face-today :inherit cfw:face-today-title) + (cfw:face-select :background ,ctp-surface1 :foreground ,ctp-text) + (cfw:face-toolbar :background ,ctp-base) + (cfw:face-toolbar-button-off :foreground ,ctp-lavender) + (cfw:face-toolbar-button-on :foreground ,ctp-mauve) + ;; outline + (outline-1 :foreground ,ctp-blue) + (outline-2 :foreground ,ctp-blue) + (outline-3 :foreground ,ctp-blue) + (outline-4 :foreground ,ctp-blue) + (outline-5 :foreground ,ctp-blue) + (outline-6 :foreground ,ctp-blue) + ;; perspective + (persp-selected-face :weight bold :foreground ,ctp-pink) + ;; rainbow-delimiters + (rainbow-delimiters-depth-1-face :foreground ,ctp-red) + (rainbow-delimiters-depth-2-face :foreground ,ctp-peach) + (rainbow-delimiters-depth-3-face :foreground ,ctp-yellow) + (rainbow-delimiters-depth-4-face :foreground ,ctp-green) + (rainbow-delimiters-depth-5-face :foreground ,ctp-sapphire) + (rainbow-delimiters-depth-6-face :foreground ,ctp-lavender) + (rainbow-delimiters-depth-7-face :foreground ,ctp-mauve) + (rainbow-delimiters-depth-8-face :foreground ,ctp-maroon) + (rainbow-delimiters-unmatched-face :inherit warning) + ;; rst (reStructuredText) + (rst-level-1 :foreground ,ctp-red) + (rst-level-2 :foreground ,ctp-peach) + (rst-level-3 :foreground ,ctp-yellow) + (rst-level-4 :foreground ,ctp-green) + (rst-level-5 :foreground ,ctp-sapphire) + (rst-level-6 :foreground ,ctp-lavender) + (rst-level-7 :foreground ,ctp-mauve) + (rst-level-8 :foreground ,ctp-maroon) + ;; show-paren + (show-paren-match :foreground ,ctp-pink + :weight bold + ,@(when catppuccin-highlight-matches + (list :background ctp-surface0))) + (show-paren-match-expression :inherit match) + (show-paren-mismatch :inherit warning) + ;; slime + (slime-repl-inputed-output-face :foreground ,ctp-mauve) + ;; swiper + (swiper-background-match-face-2 :background ,ctp-surface1 :foreground ,ctp-text) + ;; spam + (spam :inherit gnus-summary-normal-read :foreground ,ctp-peach + :strike-through t :slant oblique) + ;; tab-bar & tab-line (since Emacs 27.1) + (tab-bar :foreground ,ctp-subtext0 :background ,ctp-base) + (tab-bar-tab :foreground ,ctp-text :background ,ctp-current) + (tab-bar-tab-inactive :foreground ,ctp-subtext0 :background ,ctp-base) + (tab-line :inherit tab-bar) + (tab-line-tab :inherit tab-bar-tab) + (tab-line-tab-inactive :inherit tab-bar-tab-inactive) + (tab-line-tab-current :inherit tab-line-tab) + (tab-line-highlight :background ,ctp-surface1) + ;; centaur-tabs + (centaur-tabs-default :foreground ,ctp-subtext0, :background ,ctp-base) + (centaur-tabs-unselected :foreground ,ctp-subtext0 :background ,ctp-mantle) + (centaur-tabs-selected :foreground ,ctp-text :background ,ctp-current) + (centaur-tabs-unselected-modified :foreground ,ctp-maroon :background ,ctp-mantle) + (centaur-tabs-selected-modified :foreground ,ctp-red :background ,ctp-current) + (centaur-tabs-close-unselected :foreground ,ctp-subtext0 :background ,ctp-mantle) + (centaur-tabs-close-selected :foreground ,ctp-text :background ,ctp-current) + (centaur-tabs-name-mouse-face :foreground ,ctp-text :background ,ctp-surface1) + (centaur-tabs-close-mouse-face :foreground ,ctp-red :background ,ctp-surface1) + (centaur-tabs-modified-marker-selected :inherit centaur-tabs-selected-modified) + (centaur-tabs-modified-marker-unselected :inherit centaur-tabs-unselected-modified) + ;; term + (term :foreground ,ctp-text :background ,ctp-base) + (term-color-black ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-subtext1 :background ctp-subtext1) + (list :foreground ctp-surface1 :background ctp-surface1))) + (term-color-black-white ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-subtext0 :background ctp-subtext0) + (list :foreground ctp-surface2 :background ctp-surface2))) + (term-color-red :foreground ,ctp-red :background ,ctp-red) + (term-color-bright-red :foreground ,ctp-red :background ,ctp-red) + (term-color-green :foreground ,ctp-green :background ,ctp-green) + (term-color-bright-green :foreground ,ctp-green :background ,ctp-green) + (term-color-yellow :foreground ,ctp-yellow :background ,ctp-yellow) + (term-color-bright-yellow :foreground ,ctp-yellow :background ,ctp-yellow) + (term-color-blue :foreground ,ctp-blue :background ,ctp-blue) + (term-color-bright-blue :foreground ,ctp-blue :background ,ctp-blue) + (term-color-magenta :foreground ,ctp-pink :background ,ctp-pink) + (term-color-bright-magenta :foreground ,ctp-pink :background ,ctp-pink) + (term-color-cyan :foreground ,ctp-teal :background ,ctp-teal) + (term-color-bright-cyan :foreground ,ctp-teal :background ,ctp-teal) + (term-color-white ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-surface2 :background ctp-surface2) + (list :foreground ctp-subtext1 :background ctp-subtext1))) + (term-color-bright-white ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-surface1 :background ctp-surface1) + (list :foreground ctp-subtext0 :background ctp-subtext0))) + ;; tree-sitter + (tree-sitter-hl-face:attribute :inherit font-lock-constant-face) + (tree-sitter-hl-face:comment :inherit font-lock-comment-face) + (tree-sitter-hl-face:constant :inherit font-lock-constant-face) + (tree-sitter-hl-face:constant.builtin :inherit font-lock-builtin-face) + (tree-sitter-hl-face:constructor :inherit font-lock-constant-face) + (tree-sitter-hl-face:escape :foreground ,undef) + (tree-sitter-hl-face:function :inherit font-lock-function-name-face) + (tree-sitter-hl-face:function.builtin :inherit font-lock-builtin-face) + (tree-sitter-hl-face:function.call :inherit font-lock-function-name-face + :weight normal) + (tree-sitter-hl-face:function.macro :inherit font-lock-preprocessor-face) + (tree-sitter-hl-face:function.special :inherit font-lock-preprocessor-face) + (tree-sitter-hl-face:keyword :inherit font-lock-keyword-face) + (tree-sitter-hl-face:punctuation :foreground ,undef) + (tree-sitter-hl-face:punctuation.bracket :foreground ,ctp-text) + (tree-sitter-hl-face:punctuation.delimiter :foreground ,ctp-text) + (tree-sitter-hl-face:punctuation.special :foreground ,undef) + (tree-sitter-hl-face:string :inherit font-lock-string-face) + (tree-sitter-hl-face:string.special :foreground ,undef) + (tree-sitter-hl-face:tag :inherit font-lock-keyword-face) + (tree-sitter-hl-face:type :inherit font-lock-type-face) + (tree-sitter-hl-face:type.parameter :foreground ,ctp-sapphire) + (tree-sitter-hl-face:variable :inherit font-lock-variable-name-face) + (tree-sitter-hl-face:variable.parameter :foreground ,ctp-red) + ;; undo-tree + (undo-tree-visualizer-current-face :foreground ,ctp-peach) + (undo-tree-visualizer-default-face :foreground ,ctp-subtext0) + (undo-tree-visualizer-register-face :foreground ,ctp-mauve) + (undo-tree-visualizer-unmodified-face :foreground ,ctp-text) + ;; web-mode + (web-mode-builtin-face :inherit font-lock-builtin-face) + (web-mode-comment-face :inherit font-lock-comment-face) + (web-mode-constant-face :inherit font-lock-constant-face) + (web-mode-css-property-name-face :inherit font-lock-constant-face) + (web-mode-doctype-face :inherit font-lock-comment-face) + (web-mode-function-name-face :inherit font-lock-function-name-face) + (web-mode-html-attr-name-face :foreground ,ctp-blue) + (web-mode-html-attr-value-face :foreground ,ctp-green) + (web-mode-html-tag-face :foreground ,ctp-mauve) + (web-mode-keyword-face :inherit font-lock-keyword-face) + (web-mode-string-face :inherit font-lock-string-face) + (web-mode-type-face :inherit font-lock-type-face) + (web-mode-warning-face :inherit warning) + ;; which-func + (which-func :inherit font-lock-function-name-face) + ;; which-key + (which-key-key-face :inherit font-lock-builtin-face) + (which-key-command-description-face :inherit default) + (which-key-separator-face :inherit font-lock-comment-delimiter-face) + (which-key-local-map-description-face :foreground ,ctp-green) + ;; whitespace + (whitespace-big-indent :foreground ,ctp-peach) + (whitespace-empty :inherit warning) + (whitespace-hspace :background ,undef :foreground ,undef) + (whitespace-indentation :foreground ,ctp-surface0) + (whitespace-line :underline (:style wave :color ,ctp-mauve)) + (whitespace-newline :inherit font-lock-comment-face) + (whitespace-space :inherit font-lock-comment-face) + (whitespace-space-after-tab :inherit warning) + (whitespace-space-before-tab :inherit warning) + (whitespace-tab :inherit whitespace-newline) + (whitespace-trailing :inherit trailing-whitespace) + ;; yard-mode + (yard-tag-face :inherit font-lock-builtin-face) + (yard-directive-face :inherit font-lock-builtin-face) + ;; line-reminder + (line-reminder-modified-sign-face :foreground ,ctp-green) + ;; highlight-indent-guides + ;; (highlight-indent-guides-odd-face :background ,ctp-base) + ;; (highlight-indent-guides-even-face :background ,ctp-base) + (highlight-indent-guides-character-face :foreground ,ctp-surface0) + ;; (highlight-indent-guides-top-odd-face :background ,ctp-base) + ;; (highlight-indent-guides-top-even-face :background ,ctp-base) + (highlight-indent-guides-top-character-face :foreground ,ctp-pink) + ;; (highlight-indent-guides-stack-odd-face :background ,ctp-base) + ;; (highlight-indent-guides-stack-even-face :background ,ctp-base) + (highlight-indent-guides-stack-character-face :foreground ,ctp-flamingo) + ;; lui + (lui-button-face :foreground ,ctp-sky :underline t) + (lui-highlight-face :foreground ,ctp-sky) + (lui-time-stamp-face :foreground ,ctp-lavender :weight bold) + ;; circe + (circe-fool-face :foreground ,ctp-subtext1) + (circe-highlight-nick-face :foreground ,ctp-sky :weight bold) + (circe-prompt-face :foreground ,ctp-base + :background ,ctp-teal + :weight bold) + (circe-server-face :foreground ,ctp-blue :weight bold)))) + + (apply #'custom-theme-set-faces + 'catppuccin + (let* ((expand-with-func + (lambda (func spec) + (let (reduced-color-list) + (dolist (col colors reduced-color-list) + (push (list (car col) (funcall func col)) + reduced-color-list)) + (eval `(let ,reduced-color-list + (backquote ,spec)))))) + whole-theme) + (pcase-dolist (`(,face . ,spec) faces) + (push `(,face + ((((min-colors 16777216)) ; fully graphical envs + ,(funcall expand-with-func 'cadr spec)) + (t ; terminal with 256 colors + ,(funcall expand-with-func '(lambda (v) (cadr (cdr v))) spec)))) + whole-theme)) + whole-theme)) + + (apply #'custom-theme-set-variables + 'catppuccin + (let ((get-func + (pcase (display-color-cells) + ((pred (<= 16777216)) 'car) ; fully graphical envs + (_ 'cadr)))) ; terminal withs 256 colors + `((ansi-color-names-vector + [,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-subtext1 'ctp-surface1) colors)) + ,(funcall get-func (alist-get 'ctp-red colors)) + ,(funcall get-func (alist-get 'ctp-green colors)) + ,(funcall get-func (alist-get 'ctp-yellow colors)) + ,(funcall get-func (alist-get 'ctp-blue colors)) + ,(funcall get-func (alist-get 'ctp-pink colors)) + ,(funcall get-func (alist-get 'ctp-teal colors)) + ,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-surface2 'ctp-subtext1) colors))])) + `((rustic-ansi-faces + (vector + ,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-subtext1 'ctp-surface1) colors)) + ,(funcall get-func (alist-get 'ctp-red colors)) + ,(funcall get-func (alist-get 'ctp-green colors)) + ,(funcall get-func (alist-get 'ctp-yellow colors)) + ,(funcall get-func (alist-get 'ctp-blue colors)) + ,(funcall get-func (alist-get 'ctp-pink colors)) + ,(funcall get-func (alist-get 'ctp-teal colors)) + ,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-surface2 'ctp-subtext1) colors)))))))) + + + + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'catppuccin) + +;; Unbind functions used for internal use +(fmakunbound 'catppuccin-quantize-color) +(fmakunbound 'catppuccin-lighten-color) +(fmakunbound 'catppuccin-darken-color) + +;; Local Variables: +;; indent-tabs-mode: nil +;; End: + +;;; catppuccin-theme.el ends here diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf new file mode 100755 index 0000000..5cb99e6 --- /dev/null +++ b/.config/mpv/input.conf @@ -0,0 +1 @@ +d script-message cycle-profiles "bwdifdeint;deinterlace-no" \ No newline at end of file diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf new file mode 100755 index 0000000..d880db0 --- /dev/null +++ b/.config/mpv/mpv.conf @@ -0,0 +1,175 @@ +#VIDEO + +#Mitchell-Netravali. The B and C parameters can be set with --scale-param1 and +#--scale-param2. This filter is very good at downscaling (see --dscale). +scale=mitchell + +#Mid quality and speed. This is the default when using gpu-hq. +#scale=spline36 + +#mitchell uses less resources than spline36 +#spline36 looks slightly better +#mitchell = bicubic b 0.33 c 0.33 + +#--dscale= +#Like --scale, but apply these filters on downscaling instead. +#If this option is unset, the filter implied by --scale will be applied. +#dscale=spline36 +dscale=mitchell + + + +# AUDIO + + +#audio-device=alsa/default + +#Audio output drivers are interfaces to different audio output facilities. +ao=pipewire,coreauido,pulse,wasapi, + +volume=100 +volume-max=200 + +# Do not filter audio to keep pitch when changing playback speed. +#audio-pitch-correction=no + +# Output 5.1 audio natively, and upmix/downmix audio with a different format. +#audio-channels=5.1 +# Output 2.0 audio natively, and upmix/downmix audio with a different format. +audio-channels=stereo +# Disable any automatic remix, _if_ the audio output accepts the audio format. +# of the currently played file. See caveats mentioned in the manpage. +# (The default is "auto-safe", see manpage.) +#audio-channels=auto +#raw bitperfect audio, but you can only hear mpv +audio-exclusive=no + + +# OTHER + +#user-agent="Mozilla/5.0" + + +# Display English subtitles if available. +slang=en + +# Play Finnish audio if available, fall back to English otherwise. +#alang=fi,en + +# Change subtitle encoding. For Arabic subtitles use 'cp1256'. +# If the file seems to be valid UTF-8, prefer UTF-8. +# (You can add '+' in front of the codepage to force it.) +#sub-codepage=cp1256 + +# You can also include other configuration files. +#include=/path/to/the/file/you/want/to/include + + + +# SCREENSHOTS + + +screenshot-format=png + +screenshot-tag-colorspace=no + +screenshot-high-bit-depth=no + +screenshot-template="mpv-shot-%tY-%tm-%td_%tH-%tM-%tS" + +screenshot-directory=~/Pictures/ + +screenshot-png-compression=9 + +screenshot-png-filter=0 + + + + +# HDR TONE MAPPING + + +hdr-compute-peak=no + +#tone-mapping=hable + +#tone-mapping-param=0.6 + +tone-mapping=bt.2390 + +#tone-mapping-param=1.5 + +tone-mapping-mode=hybrid + +gamut-mapping-mode=darken + +icc-intent=0 + +#blend-subtitles=yes + +#tone-mapping=bt.2446a + + + +# DEBANDING + + +deband=no + + + +# HARDWARE DECODING + + +#vulkan uses more resources,but has better hdr compatibility +#if you use d3d11va-copy without opengl or vulkan, it may lead to video/audio desync +#gpu-api=opengl # Uncomment this if you notice stuttering with vulkan, opengl may cause screen tearing depending of your config +gpu-api=vulkan # Comment this if you notice stuttering and uncomment the above line +vulkan-async-compute=yes +vulkan-async-transfer=yes +vulkan-queue-count=1 +vulkan-device='Intel(R) UHD Graphics 620' +#opengl-waitvsync=yes +vd-lavc-dr=yes #i think this solves screen tearing when using gpu-api=opengl +spirv-compiler=auto + +#hwdec=auto-safe +#hwdec=auto-copy +hwdec=d3d11va-copy #windows only, auto-copy uses dxva2-copy instead of d3d11va-copy, but d3d11va-copy is better and has better color + +#interpolation-threshold=-1 +#video-sync=display-resample +video-sync=audio #fix desync on d3d11va-copy when not using opengl or vulkan + +#gpu has better performance but gpu-next has better hdr +vo=gpu +#vo=gpu-next + + + + +# PROFILES + + + +#bwdif deinterlacing profile + +[bwdifdeint] +profile-desc="Deinterlacing mode: bwdif bob" +#deinterlacing, bwdif and w3fdif are better quality than yadif +vf-append=bwdif=deint=1 +#deinterlace=yes +#vf=bwdif +#vf-togle=bwdif +#vo-vaapi-deint-mode=bob + +[deinterlace-no] +profile-desc="Deinterlacing mode: disabled" +vf-remove=bwdif +deinterlace=no +vf-clr + + +#[bwdifdeint-autoprofile] +#profile-cond=p["video-format/tff"] +#profile=bwdifdeint \ No newline at end of file diff --git a/.config/mpv/scripts/cycle-commands.lua b/.config/mpv/scripts/cycle-commands.lua new file mode 100755 index 0000000..47b3594 --- /dev/null +++ b/.config/mpv/scripts/cycle-commands.lua @@ -0,0 +1,77 @@ +--[=====[ + script to cycle commands with a keybind, accomplished through script messages + available at: https://github.com/CogentRedTester/mpv-scripts + + syntax: + script-message cycle-commands "command1" "command2" "command3" + + The syntax of each command is identical to the standard input.conf syntax, but each command must be within + a pair of double quotes. + + Commands with mutiword arguments require you to send double quotes just like normal command syntax, however, + you will need to escape the quotes with a backslash so that they are sent as part of the string. + Semicolons also work exactly like they do normally, so you can easily send multiple commands each cycle. + + Here is an example of a standard input.conf entry: + + script-message cycle-commands "show-text one 1000 ; print-text two" "show-text \"three four\"" + + This would, on keypress one, print 'one' to the OSD for 1 second and 'two' to the console, + and on keypress two 'three four' would be printed to the OSD. + Notice how the quotation marks around 'three four' are escaped using backslashes. + All other syntax details should be exactly the same as usual input commands. + + There are no limits to the number of commands, and the script message can be used as often as one wants, + the script stores the current iteration for each unique cycle command, so there should be no overlap + unless one binds the exact same command string (including spacing) +]=====]-- + + +local msg = require 'mp.msg' + +--keeps track of commands and iterators +local cmd = {} + +--[=====[ + + the script stores the command in an array of command strings + the table is in the format: + table[full string].table[cycle] + table[full string].iterator + +]=====]-- +function main(...) + --to identify the specific cycle we'll concatenate all the strings together to use + --as our table key + local str = "" + for _,v in ipairs({...}) do + str = str .. v .. " | " + end + msg.debug('recieved: ' .. str) + + --if there is nothing saved for the current string, then runs through the process of storing the commands in the table + if cmd[str] == nil then + msg.verbose('unknown cycle, creating command table') + cmd[str] = {} + cmd[str].iterator = 0 + msg.verbose('parsing table for: ' .. str) + cmd[str].table = {...} + end + + --moves the iterator forward + cmd[str].iterator = cmd[str].iterator + 1 + if cmd[str].iterator > #cmd[str].table then + msg.verbose('reached end of cycle, wrapping back to start') + cmd[str].iterator = 1 + end + + local i = cmd[str].iterator + + --runs each command in the cycle + --mp.command shouldrun the commands exactly as if they were entered in + --input.conf. This should provide universal support for all input.conf command syntax + msg.verbose('sending commands: ' .. cmd[str].table[i]) + mp.command(cmd[str].table[i]) +end + +mp.register_script_message('cycle-commands', main) diff --git a/.config/mpv/scripts/cycle-profile.lua b/.config/mpv/scripts/cycle-profile.lua new file mode 100755 index 0000000..dae3edd --- /dev/null +++ b/.config/mpv/scripts/cycle-profile.lua @@ -0,0 +1,105 @@ +--[[ + script to cycle profiles with a keybind, accomplished through script messages + available at: https://github.com/CogentRedTester/mpv-scripts + + syntax: + script-message cycle-profiles "profile1;profile2;profile3" + + You must use semicolons to separate the profiles, do not include any spaces that are not part of the profile name. + The script will print the profile description to the screen when switching, if there is no profile description, then it just prints the name +]]-- + +--change this to change what character separates the profile names +seperator = ";" + +msg = require 'mp.msg' + +--splits the profiles string into an array of profile names +--function taken from: https://stackoverflow.com/questions/1426954/split-string-in-lua/7615129#7615129 +function mysplit (inputstr, sep) + if sep == nil then + sep = "%s" + end + local t={} + for str in string.gmatch(inputstr, "([^"..sep.."]+)") do + table.insert(t, str) + end + return t +end + +--table of all available profiles and options +profileList = mp.get_property_native('profile-list') + +--keeps track of current profile for every unique cycle +iterator = {} + +--stores descriptions for profiles +--once requested a description is stored here so it does not need to be found again +profilesDescs = {} + +--if trying to cycle to an unknown profile this function is run to find a description to print +function findDesc(profile) + msg.verbose('unknown profile ' .. profile .. ', searching for description') + + for i = 1, #profileList, 1 do + if profileList[i]['name'] == profile then + msg.verbose('profile found') + local desc = profileList[i]['profile-desc'] + + if desc ~= nil then + msg.verbose('description found') + profilesDescs[profile] = desc + else + msg.verbose('no description, will use name') + profilesDescs[profile] = profile + end + return + end + end + + msg.verbose('profile not found') + profilesDescs[profile] = "no profile '" .. profile .. "'" +end + +--prints the profile description to the OSD +--if the profile has not been requested before during the session then it runs findDesc() +function printProfileDesc(profile) + local desc = profilesDescs[profile] + if desc == nil then + findDesc(profile) + desc = profilesDescs[profile] + end + + msg.verbose('profile description: ' .. desc) + mp.osd_message(desc) +end + +function main(profileStr) + --if there is not already an iterator for this cycle then it creates one + if iterator[profileStr] == nil then + msg.verbose('unknown cycle, creating new iterator') + iterator[profileStr] = 1 + end + local i = iterator[profileStr] + + --converts the string into an array of profile names + local profiles = mysplit(profileStr, seperator) + msg.verbose('cycling ' .. tostring(profiles)) + msg.verbose("number of profiles: " .. tostring(#profiles)) + + --sends the command to apply the profile + msg.info("applying profile " .. profiles[i]) + mp.commandv('apply-profile', profiles[i]) + + --prints the profile description to the OSD + printProfileDesc(profiles[i]) + + --moves the iterator + iterator[profileStr] = iterator[profileStr] + 1 + if iterator[profileStr] > #profiles then + msg.verbose('reached end of profiles, wrapping back to start') + iterator[profileStr] = 1 + end +end + +mp.register_script_message('cycle-profiles', main) \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/basic.ini b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/basic.ini new file mode 100755 index 0000000..e85eb8a --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/basic.ini @@ -0,0 +1,109 @@ +๏ปฟ[General] +Name=4:4:4 bt709 x264 1280x720 30 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=30 +ColorFormat=I444 +ColorSpace=709 +ColorRange=Full +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId= AF730AED68986E6 + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=FFmpeg +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat=matroska +FFFormatMimeType=video/x-matroska +FFRescaleRes=1366x768 +FFVEncoderId=27 +FFVEncoder=libx264 +FFAEncoderId=86028 +FFAEncoder=flac +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +RecSplitFileType=Time +FFExtension=mkv +FFVCustom=qp=0 preset=ultrafast +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/recordEncoder.json b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/recordEncoder.json new file mode 100755 index 0000000..48601c4 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/recordEncoder.json @@ -0,0 +1 @@ +{"crf":0,"keyint_sec":2,"preset":"ultrafast","profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/streamEncoder.json b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_30/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/basic.ini b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/basic.ini new file mode 100755 index 0000000..89f3967 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/basic.ini @@ -0,0 +1,109 @@ +๏ปฟ[General] +Name=4:4:4 bt709 x264 1280x720 60 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=60 +ColorFormat=I444 +ColorSpace=709 +ColorRange=Full +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=4858309520B9BD26 + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=FFmpeg +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat=matroska +FFFormatMimeType=video/x-matroska +FFRescaleRes=1366x768 +FFVEncoderId=27 +FFVEncoder=libx264 +FFAEncoderId=86028 +FFAEncoder=flac +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +RecSplitFileType=Time +FFExtension=mkv +FFVCustom=qp=0 preset=ultrafast +FFABitrate=160 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/recordEncoder.json b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/recordEncoder.json new file mode 100755 index 0000000..48601c4 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/recordEncoder.json @@ -0,0 +1 @@ +{"crf":0,"keyint_sec":2,"preset":"ultrafast","profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/streamEncoder.json b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_bt709_x264_1280x720_60/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/basic.ini b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/basic.ini new file mode 100755 index 0000000..5ec7c98 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/basic.ini @@ -0,0 +1,109 @@ +๏ปฟ[General] +Name=4:4:4 sRGB x264 1280x720 30 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=30 +ColorFormat=I444 +ColorSpace=sRGB +ColorRange=Full +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=718B4A681E9DCB9E + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=FFmpeg +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat=matroska +FFFormatMimeType=video/x-matroska +FFRescaleRes=1366x768 +FFVEncoderId=27 +FFVEncoder=libx264 +FFAEncoderId=86028 +FFAEncoder=flac +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +RecSplitFileType=Time +FFExtension=mkv +FFVCustom=qp=0 preset=ultrafast +FFABitrate=160 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/recordEncoder.json b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/recordEncoder.json new file mode 100755 index 0000000..48601c4 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/recordEncoder.json @@ -0,0 +1 @@ +{"crf":0,"keyint_sec":2,"preset":"ultrafast","profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/streamEncoder.json b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_30/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/basic.ini b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/basic.ini new file mode 100755 index 0000000..3f10cc5 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/basic.ini @@ -0,0 +1,112 @@ +๏ปฟ[General] +Name=4:4:4 sRGB x264 1280x720 60 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=60 +ColorFormat=I444 +ColorSpace=sRGB +ColorRange=Full +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=CC2CD49B2D31914E + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=FFmpeg +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat=matroska +FFFormatMimeType=video/x-matroska +FFRescaleRes=1366x768 +FFVEncoderId=27 +FFVEncoder=libx264 +FFAEncoderId=86028 +FFAEncoder=flac +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +RecSplitFileType=Time +FFExtension=mkv +FFVCustom=qp=0 preset=ultrafast +FFABitrate=160 +FFVGOPSize=250 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFUseRescale=false +FFIgnoreCompat=false +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC + +[Stats] +geometry=AdnQywADAAAAAAEbAAAAwQAABDoAAAH3AAABGwAAAOAAAAQ6AAAB9wAAAAAAAAAABVYAAAEbAAAA4AAABDoAAAH3 + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/recordEncoder.json b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/recordEncoder.json new file mode 100755 index 0000000..48601c4 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/recordEncoder.json @@ -0,0 +1 @@ +{"crf":0,"keyint_sec":2,"preset":"ultrafast","profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/streamEncoder.json b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/444_sRGB_x264_1280x720_60/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/QSV_1280x720_30/basic.ini b/.config/obs-studio/basic/profiles/QSV_1280x720_30/basic.ini new file mode 100755 index 0000000..e332085 --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1280x720_30/basic.ini @@ -0,0 +1,107 @@ +๏ปฟ[General] +Name=QSV 1280x720 30 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=30 +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=94609CBC85951798 + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_qsv11_v2 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_qsv11_v2 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC +RecSplitFileType=Time + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/QSV_1280x720_30/recordEncoder.json b/.config/obs-studio/basic/profiles/QSV_1280x720_30/recordEncoder.json new file mode 100755 index 0000000..03bc39d --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1280x720_30/recordEncoder.json @@ -0,0 +1 @@ +{"rate_control":"LA_ICQ","icq_quality":16,"keyint_sec":2,"bframes":2} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/QSV_1280x720_30/streamEncoder.json b/.config/obs-studio/basic/profiles/QSV_1280x720_30/streamEncoder.json new file mode 100755 index 0000000..9b081ec --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1280x720_30/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"bframes":2,"rate_control":"LA_CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/QSV_1280x720_60/basic.ini b/.config/obs-studio/basic/profiles/QSV_1280x720_60/basic.ini new file mode 100755 index 0000000..6181ef3 --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1280x720_60/basic.ini @@ -0,0 +1,110 @@ +๏ปฟ[General] +Name=QSV 1280x720 60 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=60 +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=ACF2384EC14567D1 + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_qsv11_v2 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_qsv11_v2 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC +RecSplitFileType=Time + +[Stats] +geometry=AdnQywADAAAAAADvAAAAqQAABBAAAAHgAAAA8AAAAMgAAAQPAAAB3wAAAAAAAAAABQAAAADwAAAAyAAABA8AAAHf + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/QSV_1280x720_60/recordEncoder.json b/.config/obs-studio/basic/profiles/QSV_1280x720_60/recordEncoder.json new file mode 100755 index 0000000..03bc39d --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1280x720_60/recordEncoder.json @@ -0,0 +1 @@ +{"rate_control":"LA_ICQ","icq_quality":16,"keyint_sec":2,"bframes":2} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/QSV_1280x720_60/streamEncoder.json b/.config/obs-studio/basic/profiles/QSV_1280x720_60/streamEncoder.json new file mode 100755 index 0000000..5c803aa --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1280x720_60/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":4500,"keyint_sec":2,"bframes":2,"rate_control":"LA_CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/QSV_1364x768_30/basic.ini b/.config/obs-studio/basic/profiles/QSV_1364x768_30/basic.ini new file mode 100755 index 0000000..ff7a035 --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1364x768_30/basic.ini @@ -0,0 +1,107 @@ +๏ปฟ[General] +Name=QSV 1364x768 30 + +[Video] +BaseCX=1364 +BaseCY=768 +OutputCX=1364 +OutputCY=768 +FPSCommon=30 +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=AF177DB303F3F5CE + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_qsv11_v2 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_qsv11_v2 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC +RecSplitFileType=Time + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/QSV_1364x768_30/recordEncoder.json b/.config/obs-studio/basic/profiles/QSV_1364x768_30/recordEncoder.json new file mode 100755 index 0000000..03bc39d --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1364x768_30/recordEncoder.json @@ -0,0 +1 @@ +{"rate_control":"LA_ICQ","icq_quality":16,"keyint_sec":2,"bframes":2} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/QSV_1364x768_30/streamEncoder.json b/.config/obs-studio/basic/profiles/QSV_1364x768_30/streamEncoder.json new file mode 100755 index 0000000..ec53d6c --- /dev/null +++ b/.config/obs-studio/basic/profiles/QSV_1364x768_30/streamEncoder.json @@ -0,0 +1 @@ +{"rate_control":"LA_CBR","bitrate":3000,"keyint_sec":2,"bframes":2} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/basic.ini b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/basic.ini new file mode 100755 index 0000000..1b8cd60 --- /dev/null +++ b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/basic.ini @@ -0,0 +1,50 @@ +๏ปฟ[General] +Name=utvideo 4:2:0 bt709 1280x720 30 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=30 +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Full + +[Panels] +CookieId=7E19B57200334D61 + +[Output] +Mode=Simple + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +RecSplitFileType=Time + +[SimpleOutput] +StreamEncoder=x264 +Preset=veryfast +RecQuality=Lossless diff --git a/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/recordEncoder.json b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/recordEncoder.json new file mode 100755 index 0000000..f2e8eee --- /dev/null +++ b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/recordEncoder.json @@ -0,0 +1 @@ +{"crf":15,"keyint_sec":2,"profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/streamEncoder.json b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_30/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/basic.ini b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/basic.ini new file mode 100755 index 0000000..c5239dd --- /dev/null +++ b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/basic.ini @@ -0,0 +1,50 @@ +๏ปฟ[General] +Name=utvideo 4:2:0 bt709 1280x720 60 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=60 +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Full + +[Panels] +CookieId=F0DB6BCA1BEBB634 + +[Output] +Mode=Simple + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +RecSplitFileType=Time + +[SimpleOutput] +StreamEncoder=x264 +Preset=veryfast +RecQuality=Lossless diff --git a/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/recordEncoder.json b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/recordEncoder.json new file mode 100755 index 0000000..f2e8eee --- /dev/null +++ b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/recordEncoder.json @@ -0,0 +1 @@ +{"crf":15,"keyint_sec":2,"profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/streamEncoder.json b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/utvideo_420_bt709_1280x720_60/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/x264_1280x720_30/basic.ini b/.config/obs-studio/basic/profiles/x264_1280x720_30/basic.ini new file mode 100755 index 0000000..b7a1960 --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1280x720_30/basic.ini @@ -0,0 +1,108 @@ +๏ปฟ[General] +Name=x264 1280x720 30 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=30 +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=782762289B5B37C3 + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC +RecSplitFileType=Time +FFExtension=mp4 + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/x264_1280x720_30/recordEncoder.json b/.config/obs-studio/basic/profiles/x264_1280x720_30/recordEncoder.json new file mode 100755 index 0000000..9d9dbf8 --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1280x720_30/recordEncoder.json @@ -0,0 +1 @@ +{"crf":16,"keyint_sec":2,"profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/x264_1280x720_30/streamEncoder.json b/.config/obs-studio/basic/profiles/x264_1280x720_30/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1280x720_30/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/x264_1280x720_60/basic.ini b/.config/obs-studio/basic/profiles/x264_1280x720_60/basic.ini new file mode 100755 index 0000000..fa3e47f --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1280x720_60/basic.ini @@ -0,0 +1,45 @@ +๏ปฟ[General] +Name=x264 1280x720 60 + +[Video] +BaseCX=1280 +BaseCY=720 +OutputCX=1280 +OutputCY=720 +FPSCommon=60 + +[Panels] +CookieId=B443C58002875DD2 + +[Output] +Mode=Advanced + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 + +[Hotkeys] +OBSBasic.StartRecording={"bindings":[{"key":"OBS_KEY_F9"}]} +OBSBasic.StopRecording={"bindings":[{"key":"OBS_KEY_F10"}]} diff --git a/.config/obs-studio/basic/profiles/x264_1280x720_60/recordEncoder.json b/.config/obs-studio/basic/profiles/x264_1280x720_60/recordEncoder.json new file mode 100755 index 0000000..9d9dbf8 --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1280x720_60/recordEncoder.json @@ -0,0 +1 @@ +{"crf":16,"keyint_sec":2,"profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/x264_1280x720_60/streamEncoder.json b/.config/obs-studio/basic/profiles/x264_1280x720_60/streamEncoder.json new file mode 100755 index 0000000..fb6c2dc --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1280x720_60/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":4500,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/x264_1364x768_30/basic.ini b/.config/obs-studio/basic/profiles/x264_1364x768_30/basic.ini new file mode 100755 index 0000000..96ed6bf --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1364x768_30/basic.ini @@ -0,0 +1,107 @@ +๏ปฟ[General] +Name=x264 1364x768 30 + +[Video] +BaseCX=1364 +BaseCY=768 +OutputCX=1364 +OutputCY=768 +FPSCommon=30 +FPSType=0 +FPSInt=30 +FPSNum=30 +FPSDen=1 +ScaleType=bicubic +ColorFormat=NV12 +ColorSpace=709 +ColorRange=Partial +SdrWhiteLevel=300 +HdrNominalPeakLevel=1000 + +[Panels] +CookieId=6DB769F52D46128E + +[Output] +Mode=Advanced +FilenameFormatting=%CCYY-%MM-%DD %hh-%mm-%ss +DelayEnable=false +DelaySec=20 +DelayPreserve=true +Reconnect=true +RetryDelay=2 +MaxRetries=25 +BindIP=default +NewSocketLoopEnable=false +LowLatencyEnable=false + +[AdvOut] +Encoder=obs_x264 +RescaleRes=1366x768 +TrackIndex=1 +RecType=Standard +RecEncoder=obs_x264 +RecRescaleRes=1366x768 +RecTracks=1 +FLVTrack=1 +FFOutputToFile=true +FFFormat= +FFFormatMimeType= +FFRescaleRes=1366x768 +FFVEncoderId=0 +FFVEncoder= +FFAEncoderId=0 +FFAEncoder= +FFAudioMixes=1 +VodTrackIndex=2 +Track1Bitrate=192 +Track2Bitrate=192 +Track3Bitrate=192 +Track4Bitrate=192 +Track5Bitrate=192 +Track6Bitrate=192 +ApplyServiceSettings=true +UseRescale=false +RecFormat2=mkv +RecUseRescale=false +FFVBitrate=2500 +FFVGOPSize=250 +FFUseRescale=false +FFIgnoreCompat=false +FFABitrate=160 +RecSplitFileTime=15 +RecSplitFileSize=2048 +RecRB=false +RecRBTime=20 +RecRBSize=512 +AudioEncoder=CoreAudio_AAC +RecAudioEncoder=CoreAudio_AAC +RecSplitFileType=Time + +[Stream1] +IgnoreRecommended=false + +[SimpleOutput] +RecFormat2=mkv +VBitrate=2500 +ABitrate=160 +UseAdvanced=false +Preset=veryfast +NVENCPreset2=p5 +RecQuality=Stream +RecRB=false +RecRBTime=20 +RecRBSize=512 +RecRBPrefix=Replay +StreamAudioEncoder=aac +RecAudioEncoder=aac +RecTracks=1 +StreamEncoder=x264 +RecEncoder=x264 + +[Audio] +MonitoringDeviceId=default +MonitoringDeviceName=Por defecto +SampleRate=48000 +ChannelSetup=Stereo +MeterDecayRate=23.53 +PeakMeterType=0 diff --git a/.config/obs-studio/basic/profiles/x264_1364x768_30/recordEncoder.json b/.config/obs-studio/basic/profiles/x264_1364x768_30/recordEncoder.json new file mode 100755 index 0000000..9d9dbf8 --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1364x768_30/recordEncoder.json @@ -0,0 +1 @@ +{"crf":16,"keyint_sec":2,"profile":"high","rate_control":"CRF"} \ No newline at end of file diff --git a/.config/obs-studio/basic/profiles/x264_1364x768_30/streamEncoder.json b/.config/obs-studio/basic/profiles/x264_1364x768_30/streamEncoder.json new file mode 100755 index 0000000..915e952 --- /dev/null +++ b/.config/obs-studio/basic/profiles/x264_1364x768_30/streamEncoder.json @@ -0,0 +1 @@ +{"bitrate":3000,"keyint_sec":2,"profile":"high","rate_control":"CBR"} \ No newline at end of file diff --git a/.config/obs-studio/themes/Catppuccin Frappe (compact).qss b/.config/obs-studio/themes/Catppuccin Frappe (compact).qss new file mode 100644 index 0000000..e293687 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Frappe (compact).qss @@ -0,0 +1,1054 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ +/* rgb(242, 213, 207); /* Rosewater */ +/* rgb(238, 190, 190); /* Flamingo */ +/* rgb(231, 130, 132); /* Red */ +/* rgb(234, 153, 156); /* Maroon */ +/* rgb(239, 159, 118); /* Peach */ +/* rgb(166, 209, 137); /* Green */ +/* rgb(140, 170, 238); /* Blue */ +/* rgb(198, 208, 245); /* Text */ +/* rgb(165, 173, 206); /* Subtext0 */ +/* rgb(131, 139, 167); /* Overlay1 */ +/* rgb(115, 121, 148); /* Overlay0 */ +/* rgb(81, 87, 109); /* Surface1 */ +/* rgb(65, 69, 89); /* Surface0 */ +/* rgb(48, 52, 70); /* Base */ +/* rgb(41, 44, 60); /* Mantle */ +/* rgb(35, 38, 52); /* Crust */ + +OBSThemeMeta { + dark: 'true'; + author: 'Catppuccin'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(48, 52, 70); + windowText: rgb(165, 173, 206); + base: rgb(41, 44, 60); + alternateBase: rgb(35, 38, 52); + text: rgb(198, 208, 245); + button: rgb(65, 69, 89); + buttonText: rgb(165, 173, 206); + brightText: rgb(165, 173, 206); + + light: rgb(65, 69, 89); + mid: rgb(48, 52, 70); + dark: rgb(41, 44, 60); + shadow: rgb(35, 38, 52); + + highlight: rgb(140, 170, 238); + highlightedText: rgb(165, 173, 206); + + link: rgb(242, 213, 207); + linkVisited: rgb(238, 190, 190); +} + +OBSTheme::disabled { + text: rgb(131, 139, 167); + buttonText: rgb(131, 139, 167); + brightText: rgb(41, 44, 60); +} + +OBSTheme::inactive { + highlight: rgb(35, 38, 52); + highlightedText: rgb(198, 208, 245); +} + + +/* General style, we override only what is needed. */ +QWidget { + background-color: palette(window); + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(81, 87, 109); + selection-color: palette(text); +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(base); +} + + +/* Misc */ + +QWidget::disabled { + color: 2px solid palette(bright-text); +} + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +QMenuBar::item { + background-color: palette(window); +} + +QListView::item:selected:!active, +SourceTree::item:selected:!active { + color: palette(text); + background-color: rgb(81, 87, 109); +} + +QListView QLineEdit, +SourceTree QLineEdit { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0; + padding-left: 2px; + border: none; + border-radius: none; +} + +/* macOS Separator Fix */ +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* Dock Widget */ + +QDockWidget { + titlebar-close-icon: url('./Catppuccin/Dark/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Dark/popout.svg'); +} + +QDockWidget::title { + text-align: center; + background-color: palette(base); +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 1px solid transparent; + background: transparent; + padding: 0px; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: transparent; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +/* Group Box */ + +QGroupBox { + border: 1px solid palette(base); + border-radius: 5px; + padding-top: 24px; + font-weight: bold; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 4px; + top: 4px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: palette(window); + width: 14px; + margin: 0px; +} + +QScrollBar::handle:vertical { + background-color: palette(light); + min-height: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: palette(window); + height: 14px; + margin: 0px; +} + +QScrollBar::handle:horizontal { + background-color: palette(light); + min-width: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +/* Source Context */ +#contextContainer QPushButton { + padding: 4px 10px; +} + +#contextContainer QPushButton[themeID2=contextBarButton] { + padding: 4px 6px; +} + +#contextContainer QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +#contextContainer QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +#contextContainer QPushButton#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Dark/interact.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(window); + border: none; +} + +QPushButton[toolButton="true"], +QToolButton { + background: transparent; + border: none; + padding: 1px; + margin: 1px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QPushButton[toolButton="true"]:hover, +QToolButton:hover { + background-color: rgb(81, 87, 109); /* Surface1 */ + border-radius: none; +} + +QPushButton[toolButton="true"]:pressed, +QToolButton:pressed { + background-color: palette(shadow); + border-radius: none; +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/minus.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/refresh.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/media-pause.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Dark/cogs.svg); +} + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 1px solid palette(base); /* Mantle */ +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar::tab { + background-color: palette(light); + border: none; + padding: 5px; + min-width: 50px; + margin: 1px; +} + +QTabBar::tab:top { + border-bottom: 1px transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + +} + +QTabBar::tab:bottom { + padding-top: 1px; + margin-bottom: 4px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + height: 14px; +} + +QTabBar::tab:selected { + background-color: palette(base); +} + +QTabBar::tab:hover { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +QTabBar::tab:pressed { + background-color: palette(base); +} + + +/* ComboBox */ + +QDateTimeEdit, +QComboBox { + background-color: palette(light); + border-style: solid; + border: 1px; + border-radius: 3px; + border-color: rgb(41, 44, 60); /* Mantle */ + padding: 2px; + padding-left: 10px; +} + +QDateTimeEdit:hover, +QComboBox:hover { + background-color: palette(button); +} + +QDateTimeEdit::drop-down, +QComboBox::drop-down { + border:none; + border-left: 1px solid rgba(24, 24, 37,155); /* Mantle */ + width: 20px; +} + +QDateTimeEdit::down-arrow, +QComboBox::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/updown.svg); + width: 100%; +} + +QDateTimeEdit:on, +QComboBox:on { + background-color: palette(base); +} + +QDateTimeEdit:editable, +QComboBox:editable { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +QDateTimeEdit::drop-down:editable, +QComboBox::drop-down:editable { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QDateTimeEdit::down-arrow:editable, +QComboBox::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 8%; +} + + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: palette(base); + border: none; + border-radius: 3px; + padding: 2px 2px 3px 7px; +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, QDoubleSpinBox { + background-color: palette(base); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 2px 2px 3px 7px; +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: margin; + subcontrol-position: top right; /* position at the top right corner */ + + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: margin; + subcontrol-position: bottom right; /* position at the top right corner */ + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: palette(window); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: palette(window); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: palette(window); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Dark/up.svg); + width: 100%; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 20px; + padding-right: 20px; +} + +QPushButton::flat { + background-color: palette(window); +} + +QPushButton:checked { + background-color: palette(base); +} + +QPushButton:hover { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +QPushButton:pressed { + background-color: palette(base); +} + +QPushButton:disabled { + background-color: rgb(35, 38, 52); + +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: palette(light); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: palette(light); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: palette(bright-text); +} + +QSlider::handle:disabled { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +/* Volume Control */ + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(166, 209, 137); + qproperty-backgroundWarningColor: rgb(239, 159, 118); + qproperty-backgroundErrorColor: rgb(231, 130, 132); + qproperty-foregroundNominalColor: rgb(119, 185, 75); + qproperty-foregroundWarningColor: rgb(230, 103, 38); + qproperty-foregroundErrorColor: rgb(216, 54, 57); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(198, 208, 245); + qproperty-minorTickColor: rgb(115, 121, 148); + qproperty-meterThickness: 3; + + /* The meter scale numbers normally use your QWidget font, with size */ + /* multiplied by meterFontScaling to get a proportionally smaller font. */ + /* To use a unique font for the numbers, specify font-family and/or */ + /* font-size here, and set meterFontScaling to 1.0. */ + qproperty-meterFontScaling: 0.7; +} + + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + gridline-color: palette(light); +} + +QHeaderView::section { + background-color: palette(window); + color: palette(text); + border: 1px solid palette(base); + border-radius: 5px; +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(140, 170, 238); +} + +/* Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; +} + +SourceTreeSubItemCheckBox::indicator { + width: 10px; + height: 10px; +} + +SourceTreeSubItemCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/collapse.svg); +} + + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(239, 159, 118); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(234, 153, 156); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(239, 159, 118); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(234, 153, 156); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(166, 209, 137); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 36px; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 16px; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: palette(shadow); +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 18px; + font-weight: bold; + color: rgb(165, 173, 206); +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Dark/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Dark/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Dark/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Dark/settings/advanced.svg); +} + +OBSBasicSettings QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/locked.svg); +} + +LockedCheckBox::indicator:unchecked { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Dark/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(base); +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(81, 87, 109); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(base); +} + +OBSMissingFiles { + qproperty-warningIcon: url(./Catppuccin/Dark/alert.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Dark/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Dark/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Dark/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Dark/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Dark/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Dark/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Dark/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Dark/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Dark/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Dark/sources/windowaudio.svg); +} + +/* Scene Tree */ + +SceneTree { + qproperty-gridItemWidth: 150; + qproperty-gridItemHeight: 27; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 10px; + padding-right: 10px; + margin: 1px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:pressed { + background-color: palette(base); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(81, 87, 109); /* Surface1 */ +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid palette(light); + height: 5px; + background: palette(base); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(base);; + border: 1px solid palette(light); +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: palette(text); + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: rgb(165, 173, 206); /* Subtext0 */ + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background: rgb(65, 69, 89); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background: rgb(81, 87, 109); + border: none; +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(base); /* Mantle */ +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(light); + padding: 2px 16px; + border-radius: 3px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(81, 87, 109); + border-radius: 3px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(35, 38, 52); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(35, 38, 52); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(base); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); + selection-background-color: rgb(35, 38, 52); + selection-color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(81, 87, 109); +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} diff --git a/.config/obs-studio/themes/Catppuccin Frappe.qss b/.config/obs-studio/themes/Catppuccin Frappe.qss new file mode 100644 index 0000000..d8cc9b9 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Frappe.qss @@ -0,0 +1,1520 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ + +OBSThemeMeta { + dark: 'true'; + author: 'Xurdejl'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(48, 52, 70); + windowText: rgb(165, 173, 206); + + base: rgb(41, 44, 60); + alternateBase: rgb(35, 38, 52); + + text: rgb(198, 208, 245); + + button: rgb(65, 69, 89); + buttonText: rgb(165, 173, 206); + + brightText: rgb(165, 173, 206); + + light: rgb(65, 69, 89); + mid: rgb(48, 52, 70); + dark: rgb(41, 44, 60); + shadow: rgb(35, 38, 52); + + primary: rgb(81, 87, 109); + primaryLight: rgb(140, 170, 238); + primaryDark: rgb(35, 38, 52); + + highlight: rgb(140, 170, 238); + highlightText: rgb(165, 173, 206); + + link: rgb(242, 213, 207); + linkVisited: rgb(238, 190, 190); +} + +OBSTheme::disabled { + windowText: rgb(131, 139, 167); + text: rgb(131, 139, 167); + button: rgb(48, 52, 70); + + buttonText: rgb(41, 44, 60); + brightText: rgb(41, 44, 60); +} + +OBSTheme::inactive { + text: rgb(165, 173, 206); + + highlight: rgb(35, 38, 52); + highlightText: rgb(198, 208, 245); +} + +/* Default widget style, we override only what is needed. */ + +QWidget { + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(35, 38, 52); + selection-color: palette(text); + font-size: 10pt; + font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif; +} + +QWidget:disabled { + color: rgb(131, 139, 167); +} + +/* Container windows */ + +QDialog, +QMainWindow, +QStatusBar, +QMenuBar, +QMenu { + background-color: palette(window); +} + +/* macOS Separator Fix */ + +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* General Widgets */ + +QLabel, +QGroupBox, +QCheckBox { + background: transparent; +} + +QComboBox, +QCheckBox, +QPushButton, +QSpinBox, +QDoubleSpinBox { + margin-top: 3px; + margin-bottom: 3px; +} + +QListWidget QWidget, +SceneTree QWidget, +SourceTree QWidget { + margin-top: 0; + margin-bottom: 0; +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(dark); +} + + +/* Misc */ + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +/* Context Menu */ + +QMenu::icon { + left: 4px; +} + +QMenu::separator { + background: rgb(115, 121, 148); + height: 1px; + margin: 3px 6px; +} + +QMenu::item:disabled { + color: rgb(131, 139, 167); + background: transparent; +} + +QMenu::right-arrow { + image: url(./Catppuccin/Dark/expand.svg); +} + +/* Top Menu Bar Items */ +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:selected { + background: rgb(81, 87, 109); +} + +/* Item Lists */ +QListWidget { + border-radius: 4px; +} + +QListWidget::item { + color: palette(text); +} + +QListWidget, +QMenu, +SceneTree, +SourceTree { + padding: 3px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item, +SourceTree::item { + border-radius: 4px; + color: palette(text); + border: 0px solid transparent; +} + +QMenu::item:selected, +QListWidget::item:selected, +SceneTree::item:selected, +SourceTree::item:selected { + background-color: rgb(81, 87, 109); +} + +QMenu::item:hover, +QListWidget::item:hover, +SceneTree::item:hover, +SourceTree::item:hover, +QMenu::item:selected:hover, +QListWidget::item:selected:hover, +SceneTree::item:selected:hover, +SourceTree::item:selected:hover { + background-color: rgb(65, 69, 89); + color: palette(text); +} + +QListWidget::item:disabled, +QListWidget::item:disabled:hover { + background: transparent; + color: rgb(131, 139, 167); +} + +QListWidget QLineEdit, +SceneTree QLineEdit, +SourceTree QLineEdit { + padding: 0px; + padding-bottom: 2px; + margin: 0px; + border: 1px solid #cdd6f4; + border-radius: 4px; +} + +QListWidget QLineEdit:focus, +SceneTree QLineEdit:focus, +SourceTree QLineEdit:focus { + border: 1px solid #cdd6f4; +} + +/* Settings QList */ + +OBSBasicSettings QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicSettings QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +/* Settings properties view */ +OBSBasicSettings #PropertiesContainer { + background-color: palette(dark); +} + +/* Dock Widget */ +OBSDock > QWidget { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +OBSDock QFrame { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +#transitionsContainer QPushButton { + margin: 0px 0px; + padding: 4px 6px; +} + +OBSDock QLabel { + background: transparent; +} + +OBSDock QComboBox, +OBSDock QPushButton { + margin: 1px 2px; +} + +QDockWidget { + font-size: 10.5pt; + font-weight: bold; + + titlebar-close-icon: url('./Catppuccin/Dark/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Dark/popout.svg'); +} + +QDockWidget::title { + text-align: left; + background-color: palette(base); + padding: 6px 8px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 0px solid transparent; + border-radius: 4px; + background: transparent; + margin-right: 1px; + opacity: .5; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: rgb(81, 87, 109); + opacity: 1; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +QScrollArea { + border-radius: 4px; +} + +OBSBasicStatusBar { + margin-top: 8px; +} + +/* Group Box */ + +QGroupBox { + background: palette(dark); + border-radius: 4px; + padding-top: 32px; + padding-bottom: 8px; + font-weight: bold; + margin-bottom: 6px; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 8px; + top: 8px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: transparent; + width: 14px; + margin: 0px; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 14px; + margin: 0px; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +QScrollBar::handle { + background-color: rgb(65, 69, 89); + margin: 2px; + border-radius: 2px; + border: 1px solid rgb(65, 69, 89); +} + +QScrollBar::handle:hover { + background-color: rgb(81, 87, 109); + border-color: rgb(81, 87, 109); +} + +QScrollBar::handle:pressed { + background-color: rgb(65, 69, 89); + border-color: rgb(65, 69, 89); +} + +QScrollBar::handle:vertical { + min-height: 20px; +} + +QScrollBar::handle:horizontal { + min-width: 20px; +} + +/* Source Context Bar */ + +#contextContainer { + background-color: palette(dark); + margin-top: 4px; + border-radius: 4px; +} + +#contextContainer QPushButton { + padding-left: 12px; + padding-right: 12px; +} + +QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(dark); + border: none; + padding: 0px; + margin: 4px 0px; +} + +QPushButton[toolButton="true"], +QToolButton, +QPushButton[toolButton="true"]:disabled, +QToolButton:disabled { + background-color: palette(base); + padding: 4px 6px; + margin: 0px 2px; + border-radius: 4px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QToolButton:hover { + background-color: rgb(81, 87, 109); +} + +QToolButton:pressed { + background-color: rgb(35, 38, 52); +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/trash.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/refresh.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Dark/cogs.svg); +} + +#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Dark/interact.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/media-pause.svg); +} + +* [themeID="filtersIcon"] { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +QToolBarExtension { + background: palette(button); + min-width: 12px; + max-width: 12px; + padding: 4px 0px; + margin-left: 0px; + + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 4px solid palette(base); +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar QToolButton { + background: rgb(65, 69, 89); + border: none; +} + +QTabBar::tab:top { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:bottom { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab { + background: palette(dark); + color: palette(text); + border: none; + padding: 8px 12px; + min-width: 50px; + margin: 1px 2px; +} + +QTabBar::tab:pressed { + background: rgb(35, 38, 52); +} + +QTabBar::tab:hover { + background: rgb(81, 87, 109); + color: palette(text); +} + +QTabBar::tab:selected { + background: rgb(65, 69, 89); + color: palette(text); +} + +QTabBar::tab:top:selected { + border-bottom: 2px solid rgb(198, 208, 245); +} + +QTabBar::tab:bottom:selected { + border-top: 2px solid rgb(198, 208, 245); +} + +QTabBar QToolButton { + background: palette(base); + min-width: 16px; + padding: 0px; +} + +/* ComboBox */ + +QComboBox, +QDateTimeEdit { + background-color: rgb(65, 69, 89); + border-style: solid; + border: 1px; + border-radius: 4px; + border-color: rgb(65, 69, 89); + padding: 4px; + padding-left: 10px; +} + +QComboBox:hover, +QComboBox:selected, +QDateTimeEdit:hover, +QDateTimeEdit:selected { + background-color: rgb(81, 87, 109); +} + +QComboBox::drop-down, +QDateTimeEdit::drop-down { + border:none; + border-left: 1px solid rgb(115, 121, 148); + width: 20px; +} + +QComboBox::down-arrow, +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/updown.svg); + width: 100%; +} + +QComboBox:on, +QDateTimeEdit:on { + background-color: rgb(81, 87, 109); +} + +QComboBox:editable:hover { + +} + +QComboBox::drop-down:editable, +QDateTimeEdit::drop-down:editable { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +QComboBox::down-arrow:editable, +QDateTimeEdit::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 8%; +} + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: rgb(65, 69, 89); + border: none; + border-radius: 4px; + padding: 5px 2px 5px 7px; + border: 2px solid transparent; +} + +QLineEdit:hover, +QTextEdit:hover, +QPlainTextEdit:hover { + border: 2px solid rgb(99,102,111); +} + +QLineEdit:focus, +QTextEdit:focus, +QPlainTextEdit:focus { + background-color: palette(mid); + border: 2px solid rgb(81, 87, 109); +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, +QDoubleSpinBox { + background-color: rgb(65, 69, 89); + border: 2px solid rgb(65, 69, 89); + border-radius: 4px; + margin-right: 3px; + padding: 3px 0px 4px 5px; +} + +QSpinBox:hover, +QDoubleSpinBox:hover { + border: 2px solid rgb(98, 104, 128); +} + +QSpinBox:focus, +QDoubleSpinBox:focus { + background-color: palette(mid); + border: 2px solid rgb(81, 87, 109); +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: padding; + subcontrol-position: top right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: padding; + subcontrol-position: bottom right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(81, 87, 109); +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: rgb(35, 38, 52); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: rgb(35, 38, 52); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: rgb(35, 38, 52); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Dark/up.svg); + width: 100%; + margin: 2px; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Dark/down.svg); + width: 100%; + padding: 2px; +} + + +/* Controls Dock */ +#controlsDock QPushButton { + margin: 1px; +} + +#streamButton, +#recordButton, +QPushButton[themeID="replayBufferButton"], +#broadcastButton { + padding: 10px; +} + +/* Primary Control Button Checked Coloring */ +#streamButton:!hover:!pressed:checked, +#recordButton:!hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!hover:!pressed:checked, +QPushButton[themeID="vcamButton"]:!hover:!pressed:checked, +#modeSwitch:!hover:!pressed:checked, +#broadcastButton:!hover:!pressed:checked { + background: rgb(140, 170, 238); + color: rgb(35, 38, 52); +} + +/* Primary Control Button Hover Coloring */ +#streamButton:hover:!pressed:checked, +#recordButton:hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!pressed:checked, +QPushButton[themeID="vcamButton"]:!pressed:checked, +#modeSwitch:hover:!pressed:checked, +#broadcastButton:hover:!pressed:checked { + background: rgb(186, 187, 241); + color: rgb(35, 38, 52); +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(button); + min-height: 18px; + border: none; + border-radius: 4px; + padding: 6px 16px; +} + +QPushButton::flat { + background-color: rgb(65, 69, 89); +} + +QPushButton:checked { + background-color: rgb(81, 87, 109); +} + +QPushButton:hover { + background-color: rgb(81, 87, 109); +} + +QPushButton:pressed { + background-color: rgb(35, 38, 52); +} + +QPushButton:disabled, QToolButton:disabled { + background-color: rgb(35, 38, 52); +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: rgb(65, 69, 89); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: rgb(65, 69, 89); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: rgb(186,194,222); +} + +QSlider::handle:disabled { + background-color: rgb(131, 139, 167); +} + +/* Volume Control */ + +#stackedMixerArea QPushButton { + min-width: 16px; + padding: 4px 8px; +} + +/* This is an incredibly cursed but necessary fix */ +#stackedMixerArea QPushButton:!hover { + background-color: palette(base); +} + +#stackedMixerArea QPushButton:hover { + background-color: rgb(81, 87, 109); +} + +#stackedMixerArea QPushButton:pressed { + background-color: rgb(35, 38, 52); +} + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(166, 209, 137); + qproperty-backgroundWarningColor: rgb(239, 159, 118); + qproperty-backgroundErrorColor: rgb(231, 130, 132); + qproperty-foregroundNominalColor: rgb(119, 185, 75); + qproperty-foregroundWarningColor: rgb(230, 103, 38); + qproperty-foregroundErrorColor: rgb(216, 54, 57); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(198, 208, 245); + qproperty-minorTickColor: rgb(115, 121, 148); + qproperty-peakDecayRate: 23.4; +} + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + background: palette(base); + gridline-color: palette(light); +} + +QTableView::item { + margin: 0px; + padding: 0px; +} + +QTableView QLineEdit { + background: palette(mid); + padding: 0; + margin: 0; +} + +QTableView QPushButton, +QTableView QToolButton { + margin: 1px 1px 2px; +} + +QHeaderView::section { + background-color: rgb(65, 69, 89); + color: palette(text); + border: none; + border-left: 1px solid palette(window); + border-right: 1px solid palette(window); + padding: 2px 4px; + margin-bottom: 2px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(140, 170, 238); +} + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(239, 159, 118); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(234, 153, 156); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(239, 159, 118); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(234, 153, 156); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(166, 209, 137); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 26pt; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 12pt; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Canvas / Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: rgb(35, 38, 52); + border-radius: 10px; +} + +/* Filters Window */ + +OBSBasicFilters QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicFilters QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +OBSBasicFilters #widget, +OBSBasicFilters #widget_2 { + margin: 0px; + padding: 0px; + padding-bottom: 4px; +} + +OBSBasicFilters #widget QPushButton, +OBSBasicFilters #widget_2 QPushButton { + min-width: 16px; + padding: 4px 8px; + margin-top: 0px; +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 14pt; + font-weight: bold; + color: rgb(165, 173, 206); + margin-bottom: 4px; +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Dark/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Dark/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Dark/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Dark/settings/advanced.svg); +} + +/* Checkboxes */ +QCheckBox { + +} + +QCheckBox::indicator, +QGroupBox::indicator { + width: 18px; + height: 18px; +} + +QGroupBox::indicator { + margin-left: 2px; +} + +QCheckBox::indicator:unchecked, +QGroupBox::indicator:unchecked { + image: url(./Catppuccin/Dark/checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover, +QGroupBox::indicator:unchecked:hover { + border: none; + image: url(./Catppuccin/Dark/checkbox_unchecked_focus.svg); +} + +QCheckBox::indicator:checked, +QGroupBox::indicator:checked { + image: url(./Catppuccin/Dark/checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + border: none; + image: url(./Catppuccin/Dark/checkbox_checked_focus.svg); +} + +QCheckBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + image: url(./Catppuccin/Dark/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:unchecked:disabled, +QGroupBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Dark/checkbox_unchecked_disabled.svg); +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator { + width: 16px; + height: 16px; +} + +LockedCheckBox::indicator:checked, +LockedCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/locked.svg); +} + +LockedCheckBox::indicator:unchecked, +LockedCheckBox::indicator:unchecked:hover { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator { + width: 16px; + height: 16px; +} + +VisibilityCheckBox::indicator:checked, +VisibilityCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked, +VisibilityCheckBox::indicator:unchecked:hover { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Dark/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(mid); + margin: 0; + padding: 0; +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(81, 87, 109); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(dark); +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator { + width: 16px; + height: 16px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:focus { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:checked:focus { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:checked:disabled { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +#hotkeyFilterReset { + margin-top: 0px; +} + +OBSHotkeyWidget { + padding: 8px 0px; + margin: 2px 0px; +} + +OBSHotkeyLabel { + padding: 4px 0px; +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(140, 170, 238); +} + +OBSHotkeyWidget QPushButton { + min-width: 16px; + padding: 4px 4px; + margin-top: 0px; + margin-left: 4px; +} + + +/* Sources List Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; + padding: 0px; +} + +SourceTreeSubItemCheckBox::indicator { + width: 12px; + height: 12px; +} + +SourceTreeSubItemCheckBox::indicator:checked, +SourceTreeSubItemCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked, +SourceTreeSubItemCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Dark/collapse.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Dark/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Dark/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Dark/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Dark/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Dark/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Dark/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Dark/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Dark/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Dark/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Dark/sources/windowaudio.svg); +} + +/* Scene Tree Grid Mode */ + +SceneTree { + qproperty-gridItemWidth: 154; + qproperty-gridItemHeight: 31; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(button); + border-radius: 4px; + margin: 2px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(81, 87, 109); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(81, 87, 109); +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(81, 87, 109); +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid #45475a; + height: 5px; + background: palette(dark); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(dark); + border: 1px solid #45475a; +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: #bac2de; + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: palette(text); + background-color: rgb(65, 69, 89); + border: none; + border-radius: 4px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background-color: rgb(81, 87, 109); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background-color: rgb(81, 87, 109); + border: none; +} + +#ytEventList QLabel[isSelectedEvent=true]:hover { + background-color: rgb(140, 170, 238); + color: palette(text); +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(mid); +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(base); + padding: 2px 16px; + border-radius: 4px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(81, 87, 109); + border-radius: 4px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(35, 38, 52); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(35, 38, 52); + border: none; + border-radius: 4px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(mid); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(122,121,122); +} + +/* VirtualCam Plugin Fixes */ + +#VirtualProperties QWidget { + margin-top: 0; + margin-bottom: 0; +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} + +/* Stats dialog */ +OBSBasicStats { + background: palette(dark); +} + +/* Advanced audio dialog */ +OBSBasicAdvAudio #scrollAreaWidgetContents { + background: palette(dark); +} diff --git a/.config/obs-studio/themes/Catppuccin Latte (compact).qss b/.config/obs-studio/themes/Catppuccin Latte (compact).qss new file mode 100644 index 0000000..2885304 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Latte (compact).qss @@ -0,0 +1,1054 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ +/* rgb(220, 138, 120); /* Rosewater */ +/* rgb(221, 120, 120); /* Flamingo */ +/* rgb(210, 15, 57); /* Red */ +/* rgb(230, 69, 83); /* Maroon */ +/* rgb(254, 100, 11); /* Peach */ +/* rgb(64, 160, 43); /* Green */ +/* rgb(30, 102, 245); /* Blue */ +/* rgb(76, 79, 105); /* Text */ +/* rgb(108, 111, 133); /* Subtext0 */ +/* rgb(140, 143, 161); /* Overlay1 */ +/* rgb(156, 160, 176); /* Overlay0 */ +/* rgb(188, 192, 204); /* Surface1 */ +/* rgb(204, 208, 218); /* Surface0 */ +/* rgb(239, 241, 245); /* Base */ +/* rgb(230, 233, 239); /* Mantle */ +/* rgb(220, 224, 232); /* Crust */ + +OBSThemeMeta { + dark: 'false'; + author: 'Catppuccin'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(239, 241, 245); + windowText: rgb(108, 111, 133); + base: rgb(230, 233, 239); + alternateBase: rgb(220, 224, 232); + text: rgb(76, 79, 105); + button: rgb(204, 208, 218); + buttonText: rgb(108, 111, 133); + brightText: rgb(108, 111, 133); + + light: rgb(204, 208, 218); + mid: rgb(239, 241, 245); + dark: rgb(230, 233, 239); + shadow: rgb(220, 224, 232); + + highlight: rgb(30, 102, 245); + highlightedText: rgb(108, 111, 133); + + link: rgb(220, 138, 120); + linkVisited: rgb(221, 120, 120); +} + +OBSTheme::disabled { + text: rgb(140, 143, 161); + buttonText: rgb(140, 143, 161); + brightText: rgb(230, 233, 239); +} + +OBSTheme::inactive { + highlight: rgb(220, 224, 232); + highlightedText: rgb(76, 79, 105); +} + + +/* General style, we override only what is needed. */ +QWidget { + background-color: palette(window); + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(188, 192, 204); + selection-color: palette(text); +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(base); +} + + +/* Misc */ + +QWidget::disabled { + color: 2px solid palette(bright-text); +} + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +QMenuBar::item { + background-color: palette(window); +} + +QListView::item:selected:!active, +SourceTree::item:selected:!active { + color: palette(text); + background-color: rgb(188, 192, 204); +} + +QListView QLineEdit, +SourceTree QLineEdit { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0; + padding-left: 2px; + border: none; + border-radius: none; +} + +/* macOS Separator Fix */ +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* Dock Widget */ + +QDockWidget { + titlebar-close-icon: url('./Catppuccin/Light/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Light/popout.svg'); +} + +QDockWidget::title { + text-align: center; + background-color: palette(base); +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 1px solid transparent; + background: transparent; + padding: 0px; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: transparent; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +/* Group Box */ + +QGroupBox { + border: 1px solid palette(base); + border-radius: 5px; + padding-top: 24px; + font-weight: bold; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 4px; + top: 4px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: palette(window); + width: 14px; + margin: 0px; +} + +QScrollBar::handle:vertical { + background-color: palette(light); + min-height: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: palette(window); + height: 14px; + margin: 0px; +} + +QScrollBar::handle:horizontal { + background-color: palette(light); + min-width: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +/* Source Context */ +#contextContainer QPushButton { + padding: 4px 10px; +} + +#contextContainer QPushButton[themeID2=contextBarButton] { + padding: 4px 6px; +} + +#contextContainer QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Light/settings/general.svg); +} + +#contextContainer QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Light/filter.svg); +} + +#contextContainer QPushButton#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Light/interact.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(window); + border: none; +} + +QPushButton[toolButton="true"], +QToolButton { + background: transparent; + border: none; + padding: 1px; + margin: 1px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QPushButton[toolButton="true"]:hover, +QToolButton:hover { + background-color: rgb(188, 192, 204); /* Surface1 */ + border-radius: none; +} + +QPushButton[toolButton="true"]:pressed, +QToolButton:pressed { + background-color: palette(shadow); + border-radius: none; +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/minus.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/settings/general.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/refresh.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/media-pause.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/dots-vert.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Light/cogs.svg); +} + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 1px solid palette(base); /* Mantle */ +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar::tab { + background-color: palette(light); + border: none; + padding: 5px; + min-width: 50px; + margin: 1px; +} + +QTabBar::tab:top { + border-bottom: 1px transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + +} + +QTabBar::tab:bottom { + padding-top: 1px; + margin-bottom: 4px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + height: 14px; +} + +QTabBar::tab:selected { + background-color: palette(base); +} + +QTabBar::tab:hover { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +QTabBar::tab:pressed { + background-color: palette(base); +} + + +/* ComboBox */ + +QDateTimeEdit, +QComboBox { + background-color: palette(light); + border-style: solid; + border: 1px; + border-radius: 3px; + border-color: rgb(230, 233, 239); /* Mantle */ + padding: 2px; + padding-left: 10px; +} + +QDateTimeEdit:hover, +QComboBox:hover { + background-color: palette(button); +} + +QDateTimeEdit::drop-down, +QComboBox::drop-down { + border:none; + border-left: 1px solid rgba(24, 24, 37,155); /* Mantle */ + width: 20px; +} + +QDateTimeEdit::down-arrow, +QComboBox::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Light/updown.svg); + width: 100%; +} + +QDateTimeEdit:on, +QComboBox:on { + background-color: palette(base); +} + +QDateTimeEdit:editable, +QComboBox:editable { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +QDateTimeEdit::drop-down:editable, +QComboBox::drop-down:editable { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QDateTimeEdit::down-arrow:editable, +QComboBox::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Light/down.svg); + width: 8%; +} + + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: palette(base); + border: none; + border-radius: 3px; + padding: 2px 2px 3px 7px; +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, QDoubleSpinBox { + background-color: palette(base); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 2px 2px 3px 7px; +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: margin; + subcontrol-position: top right; /* position at the top right corner */ + + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: margin; + subcontrol-position: bottom right; /* position at the top right corner */ + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: palette(window); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: palette(window); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: palette(window); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Light/up.svg); + width: 100%; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Light/down.svg); + width: 100%; +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 20px; + padding-right: 20px; +} + +QPushButton::flat { + background-color: palette(window); +} + +QPushButton:checked { + background-color: palette(base); +} + +QPushButton:hover { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +QPushButton:pressed { + background-color: palette(base); +} + +QPushButton:disabled { + background-color: rgb(220, 224, 232); + +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Light/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: palette(light); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: palette(light); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: palette(bright-text); +} + +QSlider::handle:disabled { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +/* Volume Control */ + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(48, 120, 32); + qproperty-backgroundWarningColor: rgb(198, 73, 1); + qproperty-backgroundErrorColor: rgb(157, 11, 43); + qproperty-foregroundNominalColor: rgb(64, 160, 43); + qproperty-foregroundWarningColor: rgb(254, 100, 11); + qproperty-foregroundErrorColor: rgb(210, 15, 57); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(76, 79, 105); + qproperty-minorTickColor: rgb(156, 160, 176); + qproperty-meterThickness: 3; + + /* The meter scale numbers normally use your QWidget font, with size */ + /* multiplied by meterFontScaling to get a proportionally smaller font. */ + /* To use a unique font for the numbers, specify font-family and/or */ + /* font-size here, and set meterFontScaling to 1.0. */ + qproperty-meterFontScaling: 0.7; +} + + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + gridline-color: palette(light); +} + +QHeaderView::section { + background-color: palette(window); + color: palette(text); + border: 1px solid palette(base); + border-radius: 5px; +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Light/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Light/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(30, 102, 245); +} + +/* Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; +} + +SourceTreeSubItemCheckBox::indicator { + width: 10px; + height: 10px; +} + +SourceTreeSubItemCheckBox::indicator:checked { + image: url(./Catppuccin/Light/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked { + image: url(./Catppuccin/Light/collapse.svg); +} + + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(254, 100, 11); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(230, 69, 83); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(254, 100, 11); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(230, 69, 83); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(64, 160, 43); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 36px; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 16px; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: palette(shadow); +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 18px; + font-weight: bold; + color: rgb(108, 111, 133); +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Light/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Light/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Light/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Light/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Light/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Light/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Light/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Light/settings/advanced.svg); +} + +OBSBasicSettings QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator:checked { + image: url(./Catppuccin/Light/locked.svg); +} + +LockedCheckBox::indicator:unchecked { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator:checked { + image: url(./Catppuccin/Light/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Light/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(base); +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(188, 192, 204); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(base); +} + +OBSMissingFiles { + qproperty-warningIcon: url(./Catppuccin/Light/alert.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Light/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Light/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Light/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Light/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Light/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Light/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Light/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Light/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Light/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Light/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Light/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Light/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Light/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Light/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Light/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Light/sources/windowaudio.svg); +} + +/* Scene Tree */ + +SceneTree { + qproperty-gridItemWidth: 150; + qproperty-gridItemHeight: 27; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 10px; + padding-right: 10px; + margin: 1px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:pressed { + background-color: palette(base); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(188, 192, 204); /* Surface1 */ +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid palette(light); + height: 5px; + background: palette(base); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(base);; + border: 1px solid palette(light); +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: palette(text); + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Light/sources/image.svg); +} + +#ytEventList QLabel { + color: rgb(108, 111, 133); /* Subtext0 */ + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background: rgb(204, 208, 218); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background: rgb(188, 192, 204); + border: none; +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Light/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(base); /* Mantle */ +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(light); + padding: 2px 16px; + border-radius: 3px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Light/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Light/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Light/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(188, 192, 204); + border-radius: 3px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(220, 224, 232); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(220, 224, 232); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(base); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); + selection-background-color: rgb(220, 224, 232); + selection-color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(188, 192, 204); +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} diff --git a/.config/obs-studio/themes/Catppuccin Latte.qss b/.config/obs-studio/themes/Catppuccin Latte.qss new file mode 100644 index 0000000..cb05ac7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Latte.qss @@ -0,0 +1,1520 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ + +OBSThemeMeta { + dark: 'false'; + author: 'Xurdejl'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(239, 241, 245); + windowText: rgb(108, 111, 133); + + base: rgb(230, 233, 239); + alternateBase: rgb(220, 224, 232); + + text: rgb(76, 79, 105); + + button: rgb(204, 208, 218); + buttonText: rgb(108, 111, 133); + + brightText: rgb(108, 111, 133); + + light: rgb(204, 208, 218); + mid: rgb(239, 241, 245); + dark: rgb(230, 233, 239); + shadow: rgb(220, 224, 232); + + primary: rgb(188, 192, 204); + primaryLight: rgb(30, 102, 245); + primaryDark: rgb(220, 224, 232); + + highlight: rgb(30, 102, 245); + highlightText: rgb(108, 111, 133); + + link: rgb(220, 138, 120); + linkVisited: rgb(221, 120, 120); +} + +OBSTheme::disabled { + windowText: rgb(140, 143, 161); + text: rgb(140, 143, 161); + button: rgb(239, 241, 245); + + buttonText: rgb(230, 233, 239); + brightText: rgb(230, 233, 239); +} + +OBSTheme::inactive { + text: rgb(108, 111, 133); + + highlight: rgb(220, 224, 232); + highlightText: rgb(76, 79, 105); +} + +/* Default widget style, we override only what is needed. */ + +QWidget { + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(220, 224, 232); + selection-color: palette(text); + font-size: 10pt; + font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif; +} + +QWidget:disabled { + color: rgb(140, 143, 161); +} + +/* Container windows */ + +QDialog, +QMainWindow, +QStatusBar, +QMenuBar, +QMenu { + background-color: palette(window); +} + +/* macOS Separator Fix */ + +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* General Widgets */ + +QLabel, +QGroupBox, +QCheckBox { + background: transparent; +} + +QComboBox, +QCheckBox, +QPushButton, +QSpinBox, +QDoubleSpinBox { + margin-top: 3px; + margin-bottom: 3px; +} + +QListWidget QWidget, +SceneTree QWidget, +SourceTree QWidget { + margin-top: 0; + margin-bottom: 0; +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(dark); +} + + +/* Misc */ + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +/* Context Menu */ + +QMenu::icon { + left: 4px; +} + +QMenu::separator { + background: rgb(156, 160, 176); + height: 1px; + margin: 3px 6px; +} + +QMenu::item:disabled { + color: rgb(140, 143, 161); + background: transparent; +} + +QMenu::right-arrow { + image: url(./Catppuccin/Light/expand.svg); +} + +/* Top Menu Bar Items */ +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:selected { + background: rgb(188, 192, 204); +} + +/* Item Lists */ +QListWidget { + border-radius: 4px; +} + +QListWidget::item { + color: palette(text); +} + +QListWidget, +QMenu, +SceneTree, +SourceTree { + padding: 3px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item, +SourceTree::item { + border-radius: 4px; + color: palette(text); + border: 0px solid transparent; +} + +QMenu::item:selected, +QListWidget::item:selected, +SceneTree::item:selected, +SourceTree::item:selected { + background-color: rgb(188, 192, 204); +} + +QMenu::item:hover, +QListWidget::item:hover, +SceneTree::item:hover, +SourceTree::item:hover, +QMenu::item:selected:hover, +QListWidget::item:selected:hover, +SceneTree::item:selected:hover, +SourceTree::item:selected:hover { + background-color: rgb(204, 208, 218); + color: palette(text); +} + +QListWidget::item:disabled, +QListWidget::item:disabled:hover { + background: transparent; + color: rgb(140, 143, 161); +} + +QListWidget QLineEdit, +SceneTree QLineEdit, +SourceTree QLineEdit { + padding: 0px; + padding-bottom: 2px; + margin: 0px; + border: 1px solid #cdd6f4; + border-radius: 4px; +} + +QListWidget QLineEdit:focus, +SceneTree QLineEdit:focus, +SourceTree QLineEdit:focus { + border: 1px solid #cdd6f4; +} + +/* Settings QList */ + +OBSBasicSettings QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicSettings QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +/* Settings properties view */ +OBSBasicSettings #PropertiesContainer { + background-color: palette(dark); +} + +/* Dock Widget */ +OBSDock > QWidget { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +OBSDock QFrame { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +#transitionsContainer QPushButton { + margin: 0px 0px; + padding: 4px 6px; +} + +OBSDock QLabel { + background: transparent; +} + +OBSDock QComboBox, +OBSDock QPushButton { + margin: 1px 2px; +} + +QDockWidget { + font-size: 10.5pt; + font-weight: bold; + + titlebar-close-icon: url('./Catppuccin/Light/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Light/popout.svg'); +} + +QDockWidget::title { + text-align: left; + background-color: palette(base); + padding: 6px 8px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 0px solid transparent; + border-radius: 4px; + background: transparent; + margin-right: 1px; + opacity: .5; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: rgb(188, 192, 204); + opacity: 1; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +QScrollArea { + border-radius: 4px; +} + +OBSBasicStatusBar { + margin-top: 8px; +} + +/* Group Box */ + +QGroupBox { + background: palette(dark); + border-radius: 4px; + padding-top: 32px; + padding-bottom: 8px; + font-weight: bold; + margin-bottom: 6px; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 8px; + top: 8px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: transparent; + width: 14px; + margin: 0px; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 14px; + margin: 0px; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +QScrollBar::handle { + background-color: rgb(204, 208, 218); + margin: 2px; + border-radius: 2px; + border: 1px solid rgb(204, 208, 218); +} + +QScrollBar::handle:hover { + background-color: rgb(188, 192, 204); + border-color: rgb(188, 192, 204); +} + +QScrollBar::handle:pressed { + background-color: rgb(204, 208, 218); + border-color: rgb(204, 208, 218); +} + +QScrollBar::handle:vertical { + min-height: 20px; +} + +QScrollBar::handle:horizontal { + min-width: 20px; +} + +/* Source Context Bar */ + +#contextContainer { + background-color: palette(dark); + margin-top: 4px; + border-radius: 4px; +} + +#contextContainer QPushButton { + padding-left: 12px; + padding-right: 12px; +} + +QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Light/settings/general.svg); +} + +QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Light/filter.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(dark); + border: none; + padding: 0px; + margin: 4px 0px; +} + +QPushButton[toolButton="true"], +QToolButton, +QPushButton[toolButton="true"]:disabled, +QToolButton:disabled { + background-color: palette(base); + padding: 4px 6px; + margin: 0px 2px; + border-radius: 4px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QToolButton:hover { + background-color: rgb(188, 192, 204); +} + +QToolButton:pressed { + background-color: rgb(220, 224, 232); +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/trash.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/settings/general.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/dots-vert.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/refresh.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Light/cogs.svg); +} + +#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Light/interact.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/media-pause.svg); +} + +* [themeID="filtersIcon"] { + qproperty-icon: url(./Catppuccin/Light/filter.svg); +} + +QToolBarExtension { + background: palette(button); + min-width: 12px; + max-width: 12px; + padding: 4px 0px; + margin-left: 0px; + + qproperty-icon: url(./Catppuccin/Light/dots-vert.svg); +} + + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 4px solid palette(base); +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar QToolButton { + background: rgb(204, 208, 218); + border: none; +} + +QTabBar::tab:top { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:bottom { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab { + background: palette(dark); + color: palette(text); + border: none; + padding: 8px 12px; + min-width: 50px; + margin: 1px 2px; +} + +QTabBar::tab:pressed { + background: rgb(220, 224, 232); +} + +QTabBar::tab:hover { + background: rgb(188, 192, 204); + color: palette(text); +} + +QTabBar::tab:selected { + background: rgb(204, 208, 218); + color: palette(text); +} + +QTabBar::tab:top:selected { + border-bottom: 2px solid rgb(76, 79, 105); +} + +QTabBar::tab:bottom:selected { + border-top: 2px solid rgb(76, 79, 105); +} + +QTabBar QToolButton { + background: palette(base); + min-width: 16px; + padding: 0px; +} + +/* ComboBox */ + +QComboBox, +QDateTimeEdit { + background-color: rgb(204, 208, 218); + border-style: solid; + border: 1px; + border-radius: 4px; + border-color: rgb(204, 208, 218); + padding: 4px; + padding-left: 10px; +} + +QComboBox:hover, +QComboBox:selected, +QDateTimeEdit:hover, +QDateTimeEdit:selected { + background-color: rgb(188, 192, 204); +} + +QComboBox::drop-down, +QDateTimeEdit::drop-down { + border:none; + border-left: 1px solid rgb(156, 160, 176); + width: 20px; +} + +QComboBox::down-arrow, +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Light/updown.svg); + width: 100%; +} + +QComboBox:on, +QDateTimeEdit:on { + background-color: rgb(188, 192, 204); +} + +QComboBox:editable:hover { + +} + +QComboBox::drop-down:editable, +QDateTimeEdit::drop-down:editable { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +QComboBox::down-arrow:editable, +QDateTimeEdit::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Light/down.svg); + width: 8%; +} + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: rgb(204, 208, 218); + border: none; + border-radius: 4px; + padding: 5px 2px 5px 7px; + border: 2px solid transparent; +} + +QLineEdit:hover, +QTextEdit:hover, +QPlainTextEdit:hover { + border: 2px solid rgb(99,102,111); +} + +QLineEdit:focus, +QTextEdit:focus, +QPlainTextEdit:focus { + background-color: palette(mid); + border: 2px solid rgb(188, 192, 204); +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, +QDoubleSpinBox { + background-color: rgb(204, 208, 218); + border: 2px solid rgb(204, 208, 218); + border-radius: 4px; + margin-right: 3px; + padding: 3px 0px 4px 5px; +} + +QSpinBox:hover, +QDoubleSpinBox:hover { + border: 2px solid rgb(172, 176, 190); +} + +QSpinBox:focus, +QDoubleSpinBox:focus { + background-color: palette(mid); + border: 2px solid rgb(188, 192, 204); +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: padding; + subcontrol-position: top right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: padding; + subcontrol-position: bottom right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(188, 192, 204); +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: rgb(220, 224, 232); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: rgb(220, 224, 232); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: rgb(220, 224, 232); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Light/up.svg); + width: 100%; + margin: 2px; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Light/down.svg); + width: 100%; + padding: 2px; +} + + +/* Controls Dock */ +#controlsDock QPushButton { + margin: 1px; +} + +#streamButton, +#recordButton, +QPushButton[themeID="replayBufferButton"], +#broadcastButton { + padding: 10px; +} + +/* Primary Control Button Checked Coloring */ +#streamButton:!hover:!pressed:checked, +#recordButton:!hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!hover:!pressed:checked, +QPushButton[themeID="vcamButton"]:!hover:!pressed:checked, +#modeSwitch:!hover:!pressed:checked, +#broadcastButton:!hover:!pressed:checked { + background: rgb(30, 102, 245); + color: rgb(220, 224, 232); +} + +/* Primary Control Button Hover Coloring */ +#streamButton:hover:!pressed:checked, +#recordButton:hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!pressed:checked, +QPushButton[themeID="vcamButton"]:!pressed:checked, +#modeSwitch:hover:!pressed:checked, +#broadcastButton:hover:!pressed:checked { + background: rgb(114, 135, 253); + color: rgb(220, 224, 232); +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(button); + min-height: 18px; + border: none; + border-radius: 4px; + padding: 6px 16px; +} + +QPushButton::flat { + background-color: rgb(204, 208, 218); +} + +QPushButton:checked { + background-color: rgb(188, 192, 204); +} + +QPushButton:hover { + background-color: rgb(188, 192, 204); +} + +QPushButton:pressed { + background-color: rgb(220, 224, 232); +} + +QPushButton:disabled, QToolButton:disabled { + background-color: rgb(220, 224, 232); +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Light/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: rgb(204, 208, 218); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: rgb(204, 208, 218); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: rgb(186,194,222); +} + +QSlider::handle:disabled { + background-color: rgb(140, 143, 161); +} + +/* Volume Control */ + +#stackedMixerArea QPushButton { + min-width: 16px; + padding: 4px 8px; +} + +/* This is an incredibly cursed but necessary fix */ +#stackedMixerArea QPushButton:!hover { + background-color: palette(base); +} + +#stackedMixerArea QPushButton:hover { + background-color: rgb(188, 192, 204); +} + +#stackedMixerArea QPushButton:pressed { + background-color: rgb(220, 224, 232); +} + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(48, 120, 32); + qproperty-backgroundWarningColor: rgb(198, 73, 1); + qproperty-backgroundErrorColor: rgb(157, 11, 43); + qproperty-foregroundNominalColor: rgb(64, 160, 43); + qproperty-foregroundWarningColor: rgb(254, 100, 11); + qproperty-foregroundErrorColor: rgb(210, 15, 57); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(76, 79, 105); + qproperty-minorTickColor: rgb(156, 160, 176); + qproperty-peakDecayRate: 23.4; +} + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + background: palette(base); + gridline-color: palette(light); +} + +QTableView::item { + margin: 0px; + padding: 0px; +} + +QTableView QLineEdit { + background: palette(mid); + padding: 0; + margin: 0; +} + +QTableView QPushButton, +QTableView QToolButton { + margin: 1px 1px 2px; +} + +QHeaderView::section { + background-color: rgb(204, 208, 218); + color: palette(text); + border: none; + border-left: 1px solid palette(window); + border-right: 1px solid palette(window); + padding: 2px 4px; + margin-bottom: 2px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Light/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Light/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(30, 102, 245); +} + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(254, 100, 11); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(230, 69, 83); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(254, 100, 11); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(230, 69, 83); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(64, 160, 43); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 26pt; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 12pt; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Canvas / Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: rgb(220, 224, 232); + border-radius: 10px; +} + +/* Filters Window */ + +OBSBasicFilters QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicFilters QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +OBSBasicFilters #widget, +OBSBasicFilters #widget_2 { + margin: 0px; + padding: 0px; + padding-bottom: 4px; +} + +OBSBasicFilters #widget QPushButton, +OBSBasicFilters #widget_2 QPushButton { + min-width: 16px; + padding: 4px 8px; + margin-top: 0px; +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 14pt; + font-weight: bold; + color: rgb(108, 111, 133); + margin-bottom: 4px; +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Light/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Light/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Light/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Light/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Light/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Light/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Light/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Light/settings/advanced.svg); +} + +/* Checkboxes */ +QCheckBox { + +} + +QCheckBox::indicator, +QGroupBox::indicator { + width: 18px; + height: 18px; +} + +QGroupBox::indicator { + margin-left: 2px; +} + +QCheckBox::indicator:unchecked, +QGroupBox::indicator:unchecked { + image: url(./Catppuccin/Light/checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover, +QGroupBox::indicator:unchecked:hover { + border: none; + image: url(./Catppuccin/Light/checkbox_unchecked_focus.svg); +} + +QCheckBox::indicator:checked, +QGroupBox::indicator:checked { + image: url(./Catppuccin/Light/checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + border: none; + image: url(./Catppuccin/Light/checkbox_checked_focus.svg); +} + +QCheckBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + image: url(./Catppuccin/Light/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:unchecked:disabled, +QGroupBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Light/checkbox_unchecked_disabled.svg); +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator { + width: 16px; + height: 16px; +} + +LockedCheckBox::indicator:checked, +LockedCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Light/locked.svg); +} + +LockedCheckBox::indicator:unchecked, +LockedCheckBox::indicator:unchecked:hover { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator { + width: 16px; + height: 16px; +} + +VisibilityCheckBox::indicator:checked, +VisibilityCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Light/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked, +VisibilityCheckBox::indicator:unchecked:hover { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Light/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(mid); + margin: 0; + padding: 0; +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(188, 192, 204); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(dark); +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator { + width: 16px; + height: 16px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Light/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Light/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Light/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:focus { + image: url(./Catppuccin/Light/settings/audio.svg); +} + +MuteCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Light/mute.svg); +} + +MuteCheckBox::indicator:checked:focus { + image: url(./Catppuccin/Light/mute.svg); +} + +MuteCheckBox::indicator:checked:disabled { + image: url(./Catppuccin/Light/mute.svg); +} + +MuteCheckBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Light/settings/audio.svg); +} + +#hotkeyFilterReset { + margin-top: 0px; +} + +OBSHotkeyWidget { + padding: 8px 0px; + margin: 2px 0px; +} + +OBSHotkeyLabel { + padding: 4px 0px; +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(30, 102, 245); +} + +OBSHotkeyWidget QPushButton { + min-width: 16px; + padding: 4px 4px; + margin-top: 0px; + margin-left: 4px; +} + + +/* Sources List Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; + padding: 0px; +} + +SourceTreeSubItemCheckBox::indicator { + width: 12px; + height: 12px; +} + +SourceTreeSubItemCheckBox::indicator:checked, +SourceTreeSubItemCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Light/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked, +SourceTreeSubItemCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Light/collapse.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Light/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Light/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Light/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Light/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Light/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Light/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Light/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Light/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Light/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Light/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Light/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Light/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Light/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Light/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Light/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Light/sources/windowaudio.svg); +} + +/* Scene Tree Grid Mode */ + +SceneTree { + qproperty-gridItemWidth: 154; + qproperty-gridItemHeight: 31; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(button); + border-radius: 4px; + margin: 2px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(188, 192, 204); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(188, 192, 204); +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(188, 192, 204); +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Light/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid #45475a; + height: 5px; + background: palette(dark); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(dark); + border: 1px solid #45475a; +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: #bac2de; + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Light/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Light/sources/image.svg); +} + +#ytEventList QLabel { + color: palette(text); + background-color: rgb(204, 208, 218); + border: none; + border-radius: 4px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background-color: rgb(188, 192, 204); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background-color: rgb(188, 192, 204); + border: none; +} + +#ytEventList QLabel[isSelectedEvent=true]:hover { + background-color: rgb(30, 102, 245); + color: palette(text); +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Light/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(mid); +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(base); + padding: 2px 16px; + border-radius: 4px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Light/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Light/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Light/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(188, 192, 204); + border-radius: 4px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(220, 224, 232); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(220, 224, 232); + border: none; + border-radius: 4px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(mid); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(122,121,122); +} + +/* VirtualCam Plugin Fixes */ + +#VirtualProperties QWidget { + margin-top: 0; + margin-bottom: 0; +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} + +/* Stats dialog */ +OBSBasicStats { + background: palette(dark); +} + +/* Advanced audio dialog */ +OBSBasicAdvAudio #scrollAreaWidgetContents { + background: palette(dark); +} diff --git a/.config/obs-studio/themes/Catppuccin Macchiato (compact).qss b/.config/obs-studio/themes/Catppuccin Macchiato (compact).qss new file mode 100644 index 0000000..447e2b9 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Macchiato (compact).qss @@ -0,0 +1,1054 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ +/* rgb(244, 219, 214); /* Rosewater */ +/* rgb(240, 198, 198); /* Flamingo */ +/* rgb(237, 135, 150); /* Red */ +/* rgb(238, 153, 160); /* Maroon */ +/* rgb(245, 169, 127); /* Peach */ +/* rgb(166, 218, 149); /* Green */ +/* rgb(138, 173, 244); /* Blue */ +/* rgb(202, 211, 245); /* Text */ +/* rgb(165, 173, 203); /* Subtext0 */ +/* rgb(128, 135, 162); /* Overlay1 */ +/* rgb(110, 115, 141); /* Overlay0 */ +/* rgb(73, 77, 100); /* Surface1 */ +/* rgb(54, 58, 79); /* Surface0 */ +/* rgb(36, 39, 58); /* Base */ +/* rgb(30, 32, 48); /* Mantle */ +/* rgb(24, 25, 38); /* Crust */ + +OBSThemeMeta { + dark: 'true'; + author: 'Catppuccin'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(36, 39, 58); + windowText: rgb(165, 173, 203); + base: rgb(30, 32, 48); + alternateBase: rgb(24, 25, 38); + text: rgb(202, 211, 245); + button: rgb(54, 58, 79); + buttonText: rgb(165, 173, 203); + brightText: rgb(165, 173, 203); + + light: rgb(54, 58, 79); + mid: rgb(36, 39, 58); + dark: rgb(30, 32, 48); + shadow: rgb(24, 25, 38); + + highlight: rgb(138, 173, 244); + highlightedText: rgb(165, 173, 203); + + link: rgb(244, 219, 214); + linkVisited: rgb(240, 198, 198); +} + +OBSTheme::disabled { + text: rgb(128, 135, 162); + buttonText: rgb(128, 135, 162); + brightText: rgb(30, 32, 48); +} + +OBSTheme::inactive { + highlight: rgb(24, 25, 38); + highlightedText: rgb(202, 211, 245); +} + + +/* General style, we override only what is needed. */ +QWidget { + background-color: palette(window); + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(73, 77, 100); + selection-color: palette(text); +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(base); +} + + +/* Misc */ + +QWidget::disabled { + color: 2px solid palette(bright-text); +} + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +QMenuBar::item { + background-color: palette(window); +} + +QListView::item:selected:!active, +SourceTree::item:selected:!active { + color: palette(text); + background-color: rgb(73, 77, 100); +} + +QListView QLineEdit, +SourceTree QLineEdit { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0; + padding-left: 2px; + border: none; + border-radius: none; +} + +/* macOS Separator Fix */ +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* Dock Widget */ + +QDockWidget { + titlebar-close-icon: url('./Catppuccin/Dark/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Dark/popout.svg'); +} + +QDockWidget::title { + text-align: center; + background-color: palette(base); +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 1px solid transparent; + background: transparent; + padding: 0px; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: transparent; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +/* Group Box */ + +QGroupBox { + border: 1px solid palette(base); + border-radius: 5px; + padding-top: 24px; + font-weight: bold; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 4px; + top: 4px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: palette(window); + width: 14px; + margin: 0px; +} + +QScrollBar::handle:vertical { + background-color: palette(light); + min-height: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: palette(window); + height: 14px; + margin: 0px; +} + +QScrollBar::handle:horizontal { + background-color: palette(light); + min-width: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +/* Source Context */ +#contextContainer QPushButton { + padding: 4px 10px; +} + +#contextContainer QPushButton[themeID2=contextBarButton] { + padding: 4px 6px; +} + +#contextContainer QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +#contextContainer QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +#contextContainer QPushButton#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Dark/interact.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(window); + border: none; +} + +QPushButton[toolButton="true"], +QToolButton { + background: transparent; + border: none; + padding: 1px; + margin: 1px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QPushButton[toolButton="true"]:hover, +QToolButton:hover { + background-color: rgb(73, 77, 100); /* Surface1 */ + border-radius: none; +} + +QPushButton[toolButton="true"]:pressed, +QToolButton:pressed { + background-color: palette(shadow); + border-radius: none; +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/minus.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/refresh.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/media-pause.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Dark/cogs.svg); +} + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 1px solid palette(base); /* Mantle */ +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar::tab { + background-color: palette(light); + border: none; + padding: 5px; + min-width: 50px; + margin: 1px; +} + +QTabBar::tab:top { + border-bottom: 1px transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + +} + +QTabBar::tab:bottom { + padding-top: 1px; + margin-bottom: 4px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + height: 14px; +} + +QTabBar::tab:selected { + background-color: palette(base); +} + +QTabBar::tab:hover { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +QTabBar::tab:pressed { + background-color: palette(base); +} + + +/* ComboBox */ + +QDateTimeEdit, +QComboBox { + background-color: palette(light); + border-style: solid; + border: 1px; + border-radius: 3px; + border-color: rgb(30, 32, 48); /* Mantle */ + padding: 2px; + padding-left: 10px; +} + +QDateTimeEdit:hover, +QComboBox:hover { + background-color: palette(button); +} + +QDateTimeEdit::drop-down, +QComboBox::drop-down { + border:none; + border-left: 1px solid rgba(24, 24, 37,155); /* Mantle */ + width: 20px; +} + +QDateTimeEdit::down-arrow, +QComboBox::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/updown.svg); + width: 100%; +} + +QDateTimeEdit:on, +QComboBox:on { + background-color: palette(base); +} + +QDateTimeEdit:editable, +QComboBox:editable { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +QDateTimeEdit::drop-down:editable, +QComboBox::drop-down:editable { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QDateTimeEdit::down-arrow:editable, +QComboBox::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 8%; +} + + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: palette(base); + border: none; + border-radius: 3px; + padding: 2px 2px 3px 7px; +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, QDoubleSpinBox { + background-color: palette(base); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 2px 2px 3px 7px; +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: margin; + subcontrol-position: top right; /* position at the top right corner */ + + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: margin; + subcontrol-position: bottom right; /* position at the top right corner */ + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: palette(window); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: palette(window); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: palette(window); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Dark/up.svg); + width: 100%; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 20px; + padding-right: 20px; +} + +QPushButton::flat { + background-color: palette(window); +} + +QPushButton:checked { + background-color: palette(base); +} + +QPushButton:hover { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +QPushButton:pressed { + background-color: palette(base); +} + +QPushButton:disabled { + background-color: rgb(24, 25, 38); + +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: palette(light); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: palette(light); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: palette(bright-text); +} + +QSlider::handle:disabled { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +/* Volume Control */ + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(166, 218, 149); + qproperty-backgroundWarningColor: rgb(245, 169, 127); + qproperty-backgroundErrorColor: rgb(237, 135, 150); + qproperty-foregroundNominalColor: rgb(109, 194, 81); + qproperty-foregroundWarningColor: rgb(238, 111, 41); + qproperty-foregroundErrorColor: rgb(225, 54, 79); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(202, 211, 245); + qproperty-minorTickColor: rgb(110, 115, 141); + qproperty-meterThickness: 3; + + /* The meter scale numbers normally use your QWidget font, with size */ + /* multiplied by meterFontScaling to get a proportionally smaller font. */ + /* To use a unique font for the numbers, specify font-family and/or */ + /* font-size here, and set meterFontScaling to 1.0. */ + qproperty-meterFontScaling: 0.7; +} + + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + gridline-color: palette(light); +} + +QHeaderView::section { + background-color: palette(window); + color: palette(text); + border: 1px solid palette(base); + border-radius: 5px; +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(138, 173, 244); +} + +/* Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; +} + +SourceTreeSubItemCheckBox::indicator { + width: 10px; + height: 10px; +} + +SourceTreeSubItemCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/collapse.svg); +} + + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(245, 169, 127); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(238, 153, 160); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(245, 169, 127); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(238, 153, 160); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(166, 218, 149); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 36px; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 16px; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: palette(shadow); +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 18px; + font-weight: bold; + color: rgb(165, 173, 203); +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Dark/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Dark/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Dark/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Dark/settings/advanced.svg); +} + +OBSBasicSettings QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/locked.svg); +} + +LockedCheckBox::indicator:unchecked { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Dark/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(base); +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(73, 77, 100); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(base); +} + +OBSMissingFiles { + qproperty-warningIcon: url(./Catppuccin/Dark/alert.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Dark/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Dark/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Dark/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Dark/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Dark/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Dark/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Dark/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Dark/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Dark/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Dark/sources/windowaudio.svg); +} + +/* Scene Tree */ + +SceneTree { + qproperty-gridItemWidth: 150; + qproperty-gridItemHeight: 27; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 10px; + padding-right: 10px; + margin: 1px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:pressed { + background-color: palette(base); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(73, 77, 100); /* Surface1 */ +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid palette(light); + height: 5px; + background: palette(base); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(base);; + border: 1px solid palette(light); +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: palette(text); + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: rgb(165, 173, 203); /* Subtext0 */ + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background: rgb(54, 58, 79); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background: rgb(73, 77, 100); + border: none; +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(base); /* Mantle */ +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(light); + padding: 2px 16px; + border-radius: 3px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(73, 77, 100); + border-radius: 3px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(24, 25, 38); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(24, 25, 38); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(base); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); + selection-background-color: rgb(24, 25, 38); + selection-color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(73, 77, 100); +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} diff --git a/.config/obs-studio/themes/Catppuccin Macchiato.qss b/.config/obs-studio/themes/Catppuccin Macchiato.qss new file mode 100644 index 0000000..e039136 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Macchiato.qss @@ -0,0 +1,1520 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ + +OBSThemeMeta { + dark: 'true'; + author: 'Xurdejl'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(36, 39, 58); + windowText: rgb(165, 173, 203); + + base: rgb(30, 32, 48); + alternateBase: rgb(24, 25, 38); + + text: rgb(202, 211, 245); + + button: rgb(54, 58, 79); + buttonText: rgb(165, 173, 203); + + brightText: rgb(165, 173, 203); + + light: rgb(54, 58, 79); + mid: rgb(36, 39, 58); + dark: rgb(30, 32, 48); + shadow: rgb(24, 25, 38); + + primary: rgb(73, 77, 100); + primaryLight: rgb(138, 173, 244); + primaryDark: rgb(24, 25, 38); + + highlight: rgb(138, 173, 244); + highlightText: rgb(165, 173, 203); + + link: rgb(244, 219, 214); + linkVisited: rgb(240, 198, 198); +} + +OBSTheme::disabled { + windowText: rgb(128, 135, 162); + text: rgb(128, 135, 162); + button: rgb(36, 39, 58); + + buttonText: rgb(30, 32, 48); + brightText: rgb(30, 32, 48); +} + +OBSTheme::inactive { + text: rgb(165, 173, 203); + + highlight: rgb(24, 25, 38); + highlightText: rgb(202, 211, 245); +} + +/* Default widget style, we override only what is needed. */ + +QWidget { + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(24, 25, 38); + selection-color: palette(text); + font-size: 10pt; + font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif; +} + +QWidget:disabled { + color: rgb(128, 135, 162); +} + +/* Container windows */ + +QDialog, +QMainWindow, +QStatusBar, +QMenuBar, +QMenu { + background-color: palette(window); +} + +/* macOS Separator Fix */ + +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* General Widgets */ + +QLabel, +QGroupBox, +QCheckBox { + background: transparent; +} + +QComboBox, +QCheckBox, +QPushButton, +QSpinBox, +QDoubleSpinBox { + margin-top: 3px; + margin-bottom: 3px; +} + +QListWidget QWidget, +SceneTree QWidget, +SourceTree QWidget { + margin-top: 0; + margin-bottom: 0; +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(dark); +} + + +/* Misc */ + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +/* Context Menu */ + +QMenu::icon { + left: 4px; +} + +QMenu::separator { + background: rgb(110, 115, 141); + height: 1px; + margin: 3px 6px; +} + +QMenu::item:disabled { + color: rgb(128, 135, 162); + background: transparent; +} + +QMenu::right-arrow { + image: url(./Catppuccin/Dark/expand.svg); +} + +/* Top Menu Bar Items */ +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:selected { + background: rgb(73, 77, 100); +} + +/* Item Lists */ +QListWidget { + border-radius: 4px; +} + +QListWidget::item { + color: palette(text); +} + +QListWidget, +QMenu, +SceneTree, +SourceTree { + padding: 3px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item, +SourceTree::item { + border-radius: 4px; + color: palette(text); + border: 0px solid transparent; +} + +QMenu::item:selected, +QListWidget::item:selected, +SceneTree::item:selected, +SourceTree::item:selected { + background-color: rgb(73, 77, 100); +} + +QMenu::item:hover, +QListWidget::item:hover, +SceneTree::item:hover, +SourceTree::item:hover, +QMenu::item:selected:hover, +QListWidget::item:selected:hover, +SceneTree::item:selected:hover, +SourceTree::item:selected:hover { + background-color: rgb(54, 58, 79); + color: palette(text); +} + +QListWidget::item:disabled, +QListWidget::item:disabled:hover { + background: transparent; + color: rgb(128, 135, 162); +} + +QListWidget QLineEdit, +SceneTree QLineEdit, +SourceTree QLineEdit { + padding: 0px; + padding-bottom: 2px; + margin: 0px; + border: 1px solid #cdd6f4; + border-radius: 4px; +} + +QListWidget QLineEdit:focus, +SceneTree QLineEdit:focus, +SourceTree QLineEdit:focus { + border: 1px solid #cdd6f4; +} + +/* Settings QList */ + +OBSBasicSettings QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicSettings QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +/* Settings properties view */ +OBSBasicSettings #PropertiesContainer { + background-color: palette(dark); +} + +/* Dock Widget */ +OBSDock > QWidget { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +OBSDock QFrame { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +#transitionsContainer QPushButton { + margin: 0px 0px; + padding: 4px 6px; +} + +OBSDock QLabel { + background: transparent; +} + +OBSDock QComboBox, +OBSDock QPushButton { + margin: 1px 2px; +} + +QDockWidget { + font-size: 10.5pt; + font-weight: bold; + + titlebar-close-icon: url('./Catppuccin/Dark/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Dark/popout.svg'); +} + +QDockWidget::title { + text-align: left; + background-color: palette(base); + padding: 6px 8px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 0px solid transparent; + border-radius: 4px; + background: transparent; + margin-right: 1px; + opacity: .5; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: rgb(73, 77, 100); + opacity: 1; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +QScrollArea { + border-radius: 4px; +} + +OBSBasicStatusBar { + margin-top: 8px; +} + +/* Group Box */ + +QGroupBox { + background: palette(dark); + border-radius: 4px; + padding-top: 32px; + padding-bottom: 8px; + font-weight: bold; + margin-bottom: 6px; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 8px; + top: 8px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: transparent; + width: 14px; + margin: 0px; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 14px; + margin: 0px; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +QScrollBar::handle { + background-color: rgb(54, 58, 79); + margin: 2px; + border-radius: 2px; + border: 1px solid rgb(54, 58, 79); +} + +QScrollBar::handle:hover { + background-color: rgb(73, 77, 100); + border-color: rgb(73, 77, 100); +} + +QScrollBar::handle:pressed { + background-color: rgb(54, 58, 79); + border-color: rgb(54, 58, 79); +} + +QScrollBar::handle:vertical { + min-height: 20px; +} + +QScrollBar::handle:horizontal { + min-width: 20px; +} + +/* Source Context Bar */ + +#contextContainer { + background-color: palette(dark); + margin-top: 4px; + border-radius: 4px; +} + +#contextContainer QPushButton { + padding-left: 12px; + padding-right: 12px; +} + +QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(dark); + border: none; + padding: 0px; + margin: 4px 0px; +} + +QPushButton[toolButton="true"], +QToolButton, +QPushButton[toolButton="true"]:disabled, +QToolButton:disabled { + background-color: palette(base); + padding: 4px 6px; + margin: 0px 2px; + border-radius: 4px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QToolButton:hover { + background-color: rgb(73, 77, 100); +} + +QToolButton:pressed { + background-color: rgb(24, 25, 38); +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/trash.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/refresh.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Dark/cogs.svg); +} + +#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Dark/interact.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/media-pause.svg); +} + +* [themeID="filtersIcon"] { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +QToolBarExtension { + background: palette(button); + min-width: 12px; + max-width: 12px; + padding: 4px 0px; + margin-left: 0px; + + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 4px solid palette(base); +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar QToolButton { + background: rgb(54, 58, 79); + border: none; +} + +QTabBar::tab:top { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:bottom { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab { + background: palette(dark); + color: palette(text); + border: none; + padding: 8px 12px; + min-width: 50px; + margin: 1px 2px; +} + +QTabBar::tab:pressed { + background: rgb(24, 25, 38); +} + +QTabBar::tab:hover { + background: rgb(73, 77, 100); + color: palette(text); +} + +QTabBar::tab:selected { + background: rgb(54, 58, 79); + color: palette(text); +} + +QTabBar::tab:top:selected { + border-bottom: 2px solid rgb(202, 211, 245); +} + +QTabBar::tab:bottom:selected { + border-top: 2px solid rgb(202, 211, 245); +} + +QTabBar QToolButton { + background: palette(base); + min-width: 16px; + padding: 0px; +} + +/* ComboBox */ + +QComboBox, +QDateTimeEdit { + background-color: rgb(54, 58, 79); + border-style: solid; + border: 1px; + border-radius: 4px; + border-color: rgb(54, 58, 79); + padding: 4px; + padding-left: 10px; +} + +QComboBox:hover, +QComboBox:selected, +QDateTimeEdit:hover, +QDateTimeEdit:selected { + background-color: rgb(73, 77, 100); +} + +QComboBox::drop-down, +QDateTimeEdit::drop-down { + border:none; + border-left: 1px solid rgb(110, 115, 141); + width: 20px; +} + +QComboBox::down-arrow, +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/updown.svg); + width: 100%; +} + +QComboBox:on, +QDateTimeEdit:on { + background-color: rgb(73, 77, 100); +} + +QComboBox:editable:hover { + +} + +QComboBox::drop-down:editable, +QDateTimeEdit::drop-down:editable { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +QComboBox::down-arrow:editable, +QDateTimeEdit::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 8%; +} + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: rgb(54, 58, 79); + border: none; + border-radius: 4px; + padding: 5px 2px 5px 7px; + border: 2px solid transparent; +} + +QLineEdit:hover, +QTextEdit:hover, +QPlainTextEdit:hover { + border: 2px solid rgb(99,102,111); +} + +QLineEdit:focus, +QTextEdit:focus, +QPlainTextEdit:focus { + background-color: palette(mid); + border: 2px solid rgb(73, 77, 100); +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, +QDoubleSpinBox { + background-color: rgb(54, 58, 79); + border: 2px solid rgb(54, 58, 79); + border-radius: 4px; + margin-right: 3px; + padding: 3px 0px 4px 5px; +} + +QSpinBox:hover, +QDoubleSpinBox:hover { + border: 2px solid rgb(91, 96, 120); +} + +QSpinBox:focus, +QDoubleSpinBox:focus { + background-color: palette(mid); + border: 2px solid rgb(73, 77, 100); +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: padding; + subcontrol-position: top right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: padding; + subcontrol-position: bottom right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(73, 77, 100); +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: rgb(24, 25, 38); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: rgb(24, 25, 38); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: rgb(24, 25, 38); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Dark/up.svg); + width: 100%; + margin: 2px; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Dark/down.svg); + width: 100%; + padding: 2px; +} + + +/* Controls Dock */ +#controlsDock QPushButton { + margin: 1px; +} + +#streamButton, +#recordButton, +QPushButton[themeID="replayBufferButton"], +#broadcastButton { + padding: 10px; +} + +/* Primary Control Button Checked Coloring */ +#streamButton:!hover:!pressed:checked, +#recordButton:!hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!hover:!pressed:checked, +QPushButton[themeID="vcamButton"]:!hover:!pressed:checked, +#modeSwitch:!hover:!pressed:checked, +#broadcastButton:!hover:!pressed:checked { + background: rgb(138, 173, 244); + color: rgb(24, 25, 38); +} + +/* Primary Control Button Hover Coloring */ +#streamButton:hover:!pressed:checked, +#recordButton:hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!pressed:checked, +QPushButton[themeID="vcamButton"]:!pressed:checked, +#modeSwitch:hover:!pressed:checked, +#broadcastButton:hover:!pressed:checked { + background: rgb(183, 189, 248); + color: rgb(24, 25, 38); +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(button); + min-height: 18px; + border: none; + border-radius: 4px; + padding: 6px 16px; +} + +QPushButton::flat { + background-color: rgb(54, 58, 79); +} + +QPushButton:checked { + background-color: rgb(73, 77, 100); +} + +QPushButton:hover { + background-color: rgb(73, 77, 100); +} + +QPushButton:pressed { + background-color: rgb(24, 25, 38); +} + +QPushButton:disabled, QToolButton:disabled { + background-color: rgb(24, 25, 38); +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: rgb(54, 58, 79); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: rgb(54, 58, 79); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: rgb(186,194,222); +} + +QSlider::handle:disabled { + background-color: rgb(128, 135, 162); +} + +/* Volume Control */ + +#stackedMixerArea QPushButton { + min-width: 16px; + padding: 4px 8px; +} + +/* This is an incredibly cursed but necessary fix */ +#stackedMixerArea QPushButton:!hover { + background-color: palette(base); +} + +#stackedMixerArea QPushButton:hover { + background-color: rgb(73, 77, 100); +} + +#stackedMixerArea QPushButton:pressed { + background-color: rgb(24, 25, 38); +} + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(166, 218, 149); + qproperty-backgroundWarningColor: rgb(245, 169, 127); + qproperty-backgroundErrorColor: rgb(237, 135, 150); + qproperty-foregroundNominalColor: rgb(109, 194, 81); + qproperty-foregroundWarningColor: rgb(238, 111, 41); + qproperty-foregroundErrorColor: rgb(225, 54, 79); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(202, 211, 245); + qproperty-minorTickColor: rgb(110, 115, 141); + qproperty-peakDecayRate: 23.4; +} + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + background: palette(base); + gridline-color: palette(light); +} + +QTableView::item { + margin: 0px; + padding: 0px; +} + +QTableView QLineEdit { + background: palette(mid); + padding: 0; + margin: 0; +} + +QTableView QPushButton, +QTableView QToolButton { + margin: 1px 1px 2px; +} + +QHeaderView::section { + background-color: rgb(54, 58, 79); + color: palette(text); + border: none; + border-left: 1px solid palette(window); + border-right: 1px solid palette(window); + padding: 2px 4px; + margin-bottom: 2px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(138, 173, 244); +} + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(245, 169, 127); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(238, 153, 160); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(245, 169, 127); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(238, 153, 160); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(166, 218, 149); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 26pt; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 12pt; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Canvas / Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: rgb(24, 25, 38); + border-radius: 10px; +} + +/* Filters Window */ + +OBSBasicFilters QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicFilters QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +OBSBasicFilters #widget, +OBSBasicFilters #widget_2 { + margin: 0px; + padding: 0px; + padding-bottom: 4px; +} + +OBSBasicFilters #widget QPushButton, +OBSBasicFilters #widget_2 QPushButton { + min-width: 16px; + padding: 4px 8px; + margin-top: 0px; +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 14pt; + font-weight: bold; + color: rgb(165, 173, 203); + margin-bottom: 4px; +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Dark/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Dark/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Dark/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Dark/settings/advanced.svg); +} + +/* Checkboxes */ +QCheckBox { + +} + +QCheckBox::indicator, +QGroupBox::indicator { + width: 18px; + height: 18px; +} + +QGroupBox::indicator { + margin-left: 2px; +} + +QCheckBox::indicator:unchecked, +QGroupBox::indicator:unchecked { + image: url(./Catppuccin/Dark/checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover, +QGroupBox::indicator:unchecked:hover { + border: none; + image: url(./Catppuccin/Dark/checkbox_unchecked_focus.svg); +} + +QCheckBox::indicator:checked, +QGroupBox::indicator:checked { + image: url(./Catppuccin/Dark/checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + border: none; + image: url(./Catppuccin/Dark/checkbox_checked_focus.svg); +} + +QCheckBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + image: url(./Catppuccin/Dark/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:unchecked:disabled, +QGroupBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Dark/checkbox_unchecked_disabled.svg); +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator { + width: 16px; + height: 16px; +} + +LockedCheckBox::indicator:checked, +LockedCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/locked.svg); +} + +LockedCheckBox::indicator:unchecked, +LockedCheckBox::indicator:unchecked:hover { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator { + width: 16px; + height: 16px; +} + +VisibilityCheckBox::indicator:checked, +VisibilityCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked, +VisibilityCheckBox::indicator:unchecked:hover { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Dark/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(mid); + margin: 0; + padding: 0; +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(73, 77, 100); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(dark); +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator { + width: 16px; + height: 16px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:focus { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:checked:focus { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:checked:disabled { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +#hotkeyFilterReset { + margin-top: 0px; +} + +OBSHotkeyWidget { + padding: 8px 0px; + margin: 2px 0px; +} + +OBSHotkeyLabel { + padding: 4px 0px; +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(138, 173, 244); +} + +OBSHotkeyWidget QPushButton { + min-width: 16px; + padding: 4px 4px; + margin-top: 0px; + margin-left: 4px; +} + + +/* Sources List Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; + padding: 0px; +} + +SourceTreeSubItemCheckBox::indicator { + width: 12px; + height: 12px; +} + +SourceTreeSubItemCheckBox::indicator:checked, +SourceTreeSubItemCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked, +SourceTreeSubItemCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Dark/collapse.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Dark/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Dark/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Dark/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Dark/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Dark/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Dark/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Dark/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Dark/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Dark/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Dark/sources/windowaudio.svg); +} + +/* Scene Tree Grid Mode */ + +SceneTree { + qproperty-gridItemWidth: 154; + qproperty-gridItemHeight: 31; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(button); + border-radius: 4px; + margin: 2px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(73, 77, 100); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(73, 77, 100); +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(73, 77, 100); +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid #45475a; + height: 5px; + background: palette(dark); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(dark); + border: 1px solid #45475a; +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: #bac2de; + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: palette(text); + background-color: rgb(54, 58, 79); + border: none; + border-radius: 4px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background-color: rgb(73, 77, 100); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background-color: rgb(73, 77, 100); + border: none; +} + +#ytEventList QLabel[isSelectedEvent=true]:hover { + background-color: rgb(138, 173, 244); + color: palette(text); +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(mid); +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(base); + padding: 2px 16px; + border-radius: 4px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(73, 77, 100); + border-radius: 4px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(24, 25, 38); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(24, 25, 38); + border: none; + border-radius: 4px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(mid); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(122,121,122); +} + +/* VirtualCam Plugin Fixes */ + +#VirtualProperties QWidget { + margin-top: 0; + margin-bottom: 0; +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} + +/* Stats dialog */ +OBSBasicStats { + background: palette(dark); +} + +/* Advanced audio dialog */ +OBSBasicAdvAudio #scrollAreaWidgetContents { + background: palette(dark); +} diff --git a/.config/obs-studio/themes/Catppuccin Mocha (compact).qss b/.config/obs-studio/themes/Catppuccin Mocha (compact).qss new file mode 100644 index 0000000..86492f8 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Mocha (compact).qss @@ -0,0 +1,1054 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ +/* rgb(245, 224, 220); /* Rosewater */ +/* rgb(242, 205, 205); /* Flamingo */ +/* rgb(243, 139, 168); /* Red */ +/* rgb(235, 160, 172); /* Maroon */ +/* rgb(250, 179, 135); /* Peach */ +/* rgb(166, 227, 161); /* Green */ +/* rgb(137, 180, 250); /* Blue */ +/* rgb(205, 214, 244); /* Text */ +/* rgb(166, 173, 200); /* Subtext0 */ +/* rgb(127, 132, 156); /* Overlay1 */ +/* rgb(108, 112, 134); /* Overlay0 */ +/* rgb(69, 71, 90); /* Surface1 */ +/* rgb(49, 50, 68); /* Surface0 */ +/* rgb(30, 30, 46); /* Base */ +/* rgb(24, 24, 37); /* Mantle */ +/* rgb(17, 17, 27); /* Crust */ + +OBSThemeMeta { + dark: 'true'; + author: 'Catppuccin'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(30, 30, 46); + windowText: rgb(166, 173, 200); + base: rgb(24, 24, 37); + alternateBase: rgb(17, 17, 27); + text: rgb(205, 214, 244); + button: rgb(49, 50, 68); + buttonText: rgb(166, 173, 200); + brightText: rgb(166, 173, 200); + + light: rgb(49, 50, 68); + mid: rgb(30, 30, 46); + dark: rgb(24, 24, 37); + shadow: rgb(17, 17, 27); + + highlight: rgb(137, 180, 250); + highlightedText: rgb(166, 173, 200); + + link: rgb(245, 224, 220); + linkVisited: rgb(242, 205, 205); +} + +OBSTheme::disabled { + text: rgb(127, 132, 156); + buttonText: rgb(127, 132, 156); + brightText: rgb(24, 24, 37); +} + +OBSTheme::inactive { + highlight: rgb(17, 17, 27); + highlightedText: rgb(205, 214, 244); +} + + +/* General style, we override only what is needed. */ +QWidget { + background-color: palette(window); + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(69, 71, 90); + selection-color: palette(text); +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(base); +} + + +/* Misc */ + +QWidget::disabled { + color: 2px solid palette(bright-text); +} + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +QMenuBar::item { + background-color: palette(window); +} + +QListView::item:selected:!active, +SourceTree::item:selected:!active { + color: palette(text); + background-color: rgb(69, 71, 90); +} + +QListView QLineEdit, +SourceTree QLineEdit { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0; + padding-left: 2px; + border: none; + border-radius: none; +} + +/* macOS Separator Fix */ +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* Dock Widget */ + +QDockWidget { + titlebar-close-icon: url('./Catppuccin/Dark/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Dark/popout.svg'); +} + +QDockWidget::title { + text-align: center; + background-color: palette(base); +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 1px solid transparent; + background: transparent; + padding: 0px; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: transparent; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +/* Group Box */ + +QGroupBox { + border: 1px solid palette(base); + border-radius: 5px; + padding-top: 24px; + font-weight: bold; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 4px; + top: 4px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: palette(window); + width: 14px; + margin: 0px; +} + +QScrollBar::handle:vertical { + background-color: palette(light); + min-height: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: palette(window); + height: 14px; + margin: 0px; +} + +QScrollBar::handle:horizontal { + background-color: palette(light); + min-width: 20px; + margin: 2px; + border-radius: 5px; + border-width: 1px; + border: 1px solid palette(light); +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +/* Source Context */ +#contextContainer QPushButton { + padding: 4px 10px; +} + +#contextContainer QPushButton[themeID2=contextBarButton] { + padding: 4px 6px; +} + +#contextContainer QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +#contextContainer QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +#contextContainer QPushButton#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Dark/interact.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(window); + border: none; +} + +QPushButton[toolButton="true"], +QToolButton { + background: transparent; + border: none; + padding: 1px; + margin: 1px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QPushButton[toolButton="true"]:hover, +QToolButton:hover { + background-color: rgb(69, 71, 90); /* Surface1 */ + border-radius: none; +} + +QPushButton[toolButton="true"]:pressed, +QToolButton:pressed { + background-color: palette(shadow); + border-radius: none; +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/minus.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/refresh.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/media-pause.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Dark/cogs.svg); +} + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 1px solid palette(base); /* Mantle */ +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar::tab { + background-color: palette(light); + border: none; + padding: 5px; + min-width: 50px; + margin: 1px; +} + +QTabBar::tab:top { + border-bottom: 1px transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + +} + +QTabBar::tab:bottom { + padding-top: 1px; + margin-bottom: 4px; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + height: 14px; +} + +QTabBar::tab:selected { + background-color: palette(base); +} + +QTabBar::tab:hover { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +QTabBar::tab:pressed { + background-color: palette(base); +} + + +/* ComboBox */ + +QDateTimeEdit, +QComboBox { + background-color: palette(light); + border-style: solid; + border: 1px; + border-radius: 3px; + border-color: rgb(24, 24, 37); /* Mantle */ + padding: 2px; + padding-left: 10px; +} + +QDateTimeEdit:hover, +QComboBox:hover { + background-color: palette(button); +} + +QDateTimeEdit::drop-down, +QComboBox::drop-down { + border:none; + border-left: 1px solid rgba(24, 24, 37,155); /* Mantle */ + width: 20px; +} + +QDateTimeEdit::down-arrow, +QComboBox::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/updown.svg); + width: 100%; +} + +QDateTimeEdit:on, +QComboBox:on { + background-color: palette(base); +} + +QDateTimeEdit:editable, +QComboBox:editable { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +QDateTimeEdit::drop-down:editable, +QComboBox::drop-down:editable { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +QDateTimeEdit::down-arrow:editable, +QComboBox::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 8%; +} + + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: palette(base); + border: none; + border-radius: 3px; + padding: 2px 2px 3px 7px; +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, QDoubleSpinBox { + background-color: palette(base); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 2px 2px 3px 7px; +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: margin; + subcontrol-position: top right; /* position at the top right corner */ + + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: margin; + subcontrol-position: bottom right; /* position at the top right corner */ + background-color: palette(light); + border: 1px solid palette(base); + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: palette(window); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: palette(window); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: palette(window); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Dark/up.svg); + width: 100%; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 20px; + padding-right: 20px; +} + +QPushButton::flat { + background-color: palette(window); +} + +QPushButton:checked { + background-color: palette(base); +} + +QPushButton:hover { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +QPushButton:pressed { + background-color: palette(base); +} + +QPushButton:disabled { + background-color: rgb(17, 17, 27); + +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: palette(light); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: palette(light); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(window); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); /* Base */ + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: palette(bright-text); +} + +QSlider::handle:disabled { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +/* Volume Control */ + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(166, 227, 161); + qproperty-backgroundWarningColor: rgb(250, 179, 135); + qproperty-backgroundErrorColor: rgb(243, 139, 168); + qproperty-foregroundNominalColor: rgb(95, 205, 86); + qproperty-foregroundWarningColor: rgb(246, 120, 43); + qproperty-foregroundErrorColor: rgb(234, 52, 103); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(205, 214, 244); + qproperty-minorTickColor: rgb(108, 112, 134); + qproperty-meterThickness: 3; + + /* The meter scale numbers normally use your QWidget font, with size */ + /* multiplied by meterFontScaling to get a proportionally smaller font. */ + /* To use a unique font for the numbers, specify font-family and/or */ + /* font-size here, and set meterFontScaling to 1.0. */ + qproperty-meterFontScaling: 0.7; +} + + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + gridline-color: palette(light); +} + +QHeaderView::section { + background-color: palette(window); + color: palette(text); + border: 1px solid palette(base); + border-radius: 5px; +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(137, 180, 250); +} + +/* Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; +} + +SourceTreeSubItemCheckBox::indicator { + width: 10px; + height: 10px; +} + +SourceTreeSubItemCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/collapse.svg); +} + + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(250, 179, 135); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(235, 160, 172); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(250, 179, 135); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(235, 160, 172); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(166, 227, 161); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 36px; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 16px; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: palette(shadow); +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 18px; + font-weight: bold; + color: rgb(166, 173, 200); +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Dark/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Dark/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Dark/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Dark/settings/advanced.svg); +} + +OBSBasicSettings QListView::item { + padding-top: 5px; + padding-bottom: 5px; +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/locked.svg); +} + +LockedCheckBox::indicator:unchecked { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Dark/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(base); +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(69, 71, 90); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(base); +} + +OBSMissingFiles { + qproperty-warningIcon: url(./Catppuccin/Dark/alert.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Dark/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Dark/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Dark/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Dark/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Dark/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Dark/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Dark/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Dark/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Dark/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Dark/sources/windowaudio.svg); +} + +/* Scene Tree */ + +SceneTree { + qproperty-gridItemWidth: 150; + qproperty-gridItemHeight: 27; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px; + padding-left: 10px; + padding-right: 10px; + margin: 1px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +*[gridMode="true"] SceneTree::item:pressed { + background-color: palette(base); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(69, 71, 90); /* Surface1 */ +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid palette(light); + height: 5px; + background: palette(base); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(base);; + border: 1px solid palette(light); +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: palette(text); + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: rgb(166, 173, 200); /* Subtext0 */ + background-color: palette(light); + border: none; + border-radius: 3px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background: rgb(49, 50, 68); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background: rgb(69, 71, 90); + border: none; +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(base); /* Mantle */ +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(light); + padding: 2px 16px; + border-radius: 3px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(69, 71, 90); + border-radius: 3px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(17, 17, 27); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(17, 17, 27); + border: none; + border-radius: 3px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(base); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); + selection-background-color: rgb(17, 17, 27); + selection-color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(69, 71, 90); +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} diff --git a/.config/obs-studio/themes/Catppuccin Mocha.qss b/.config/obs-studio/themes/Catppuccin Mocha.qss new file mode 100644 index 0000000..e90a43d --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin Mocha.qss @@ -0,0 +1,1522 @@ +/******************************************************************************/ +/* Copyright (C) 2014-2015 by Philippe Groarke */ +/* */ +/* */ +/* This program is free software: you can redistribute it and/or modify */ +/* it under the terms of the GNU General Public License as published by */ +/* the Free Software Foundation, either version 2 of the License, or */ +/* (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU General Public License for more details. */ +/* */ +/* */ +/* You should have received a copy of the GNU General Public License */ +/* along with this program. If not, see . */ +/******************************************************************************/ + +/* Colors */ + +OBSThemeMeta { + dark: 'true'; + author: 'Xurdejl'; +} + +/* Custom theme information. This will set the application's QPalette, as + * well as pass to QML via the OBSTheme object. + * Can also use OBSTheme::disabled, OBSTheme::active, and OBSTheme::inactive. + * Using it without will set all three (making 'active' a bit redundant) */ +OBSTheme { + window: rgb(30, 30, 46); + windowText: rgb(166, 173, 200); + + base: rgb(24, 24, 37); + alternateBase: rgb(17, 17, 27); + + text: rgb(205, 214, 244); + + button: rgb(49, 50, 68); + buttonText: rgb(166, 173, 200); + + brightText: rgb(166, 173, 200); + + light: rgb(49, 50, 68); + mid: rgb(30, 30, 46); + dark: rgb(24, 24, 37); + shadow: rgb(17, 17, 27); + + primary: rgb(69, 71, 90); + primaryLight: rgb(137, 180, 250); + primaryDark: rgb(17, 17, 27); + + highlight: rgb(137, 180, 250); + highlightText: rgb(166, 173, 200); + + link: rgb(245, 224, 220); + linkVisited: rgb(242, 205, 205); +} + +OBSTheme::disabled { + windowText: rgb(127, 132, 156); + text: rgb(127, 132, 156); + button: rgb(30, 30, 46); + + buttonText: rgb(24, 24, 37); + brightText: rgb(24, 24, 37); +} + +OBSTheme::inactive { + text: rgb(166, 173, 200); + + highlight: rgb(17, 17, 27); + highlightText: rgb(205, 214, 244); +} + +/* Default widget style, we override only what is needed. */ + +QWidget { + alternate-background-color: palette(base); + color: palette(text); + selection-background-color: rgb(17, 17, 27); + selection-color: palette(text); + font-size: 10pt; + font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif; +} + +QWidget:disabled { + color: rgb(127, 132, 156); +} + +/* Container windows */ + +QDialog, +QMainWindow, +QStatusBar, +QMenuBar, +QMenu { + background-color: palette(window); +} + +/* macOS Separator Fix */ + +QMainWindow::separator { + background: transparent; + width: 4px; + height: 4px; +} + +/* General Widgets */ + +QLabel, +QGroupBox, +QCheckBox { + background: transparent; +} + +QComboBox, +QCheckBox, +QPushButton, +QSpinBox, +QDoubleSpinBox { + margin-top: 3px; + margin-bottom: 3px; +} + +QListWidget QWidget, +SceneTree QWidget, +SourceTree QWidget { + margin-top: 0; + margin-bottom: 0; +} + +* [frameShape="1"], * [frameShape="2"], * [frameShape="3"], * [frameShape="4"], * [frameShape="5"], * [frameShape="6"] { + border: 1px solid palette(dark); +} + + +/* Misc */ + +QAbstractItemView, QStackedWidget#stackedMixerArea QWidget { + background-color: palette(base); +} + +QToolTip { + background-color: palette(base); + color: palette(text); + border: none; +} + +/* Context Menu */ + +QMenu::icon { + left: 4px; +} + +QMenu::separator { + background: rgb(108, 112, 134); + height: 1px; + margin: 3px 6px; +} + +QMenu::item:disabled { + color: rgb(127, 132, 156); + background: transparent; +} + +QMenu::right-arrow { + image: url(./Catppuccin/Dark/expand.svg); +} + +/* Top Menu Bar Items */ +QMenuBar::item { + background-color: transparent; +} + +QMenuBar::item:selected { + background: rgb(69, 71, 90); +} + +/* Item Lists */ +QListWidget { + border-radius: 4px; +} + +QListWidget::item { + color: palette(text); +} + +QListWidget, +QMenu, +SceneTree, +SourceTree { + padding: 3px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item { + padding: 6px; +} + +QListWidget::item, +SourceTreeItem, +QMenu::item, +SceneTree::item, +SourceTree::item { + border-radius: 4px; + color: palette(text); + border: 0px solid transparent; +} + +QMenu::item:selected, +QListWidget::item:selected, +SceneTree::item:selected, +SourceTree::item:selected { + background-color: rgb(69, 71, 90); +} + +QMenu::item:hover, +QListWidget::item:hover, +SceneTree::item:hover, +SourceTree::item:hover, +QMenu::item:selected:hover, +QListWidget::item:selected:hover, +SceneTree::item:selected:hover, +SourceTree::item:selected:hover { + background-color: rgb(49, 50, 68); + color: palette(text); +} + +QListWidget::item:disabled, +QListWidget::item:disabled:hover { + background: transparent; + color: rgb(127, 132, 156); +} + +QListWidget QLineEdit, +SceneTree QLineEdit, +SourceTree QLineEdit { + padding: 0px; + padding-bottom: 2px; + margin: 0px; + border: 1px solid #cdd6f4; + border-radius: 4px; +} + +QListWidget QLineEdit:focus, +SceneTree QLineEdit:focus, +SourceTree QLineEdit:focus { + border: 1px solid #cdd6f4; +} + +/* Settings QList */ + +OBSBasicSettings QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicSettings QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +/* Settings properties view */ +OBSBasicSettings #PropertiesContainer { + background-color: palette(dark); +} + +/* Dock Widget */ +OBSDock > QWidget { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +OBSDock QFrame { + background: palette(dark); + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +#transitionsContainer QPushButton { + margin: 0px 0px; + padding: 4px 6px; +} + +OBSDock QLabel { + background: transparent; +} + +OBSDock QComboBox, +OBSDock QPushButton { + margin: 1px 2px; +} + +QDockWidget { + font-size: 10.5pt; + font-weight: bold; + + titlebar-close-icon: url('./Catppuccin/Dark/close.svg'); + titlebar-normal-icon: url('./Catppuccin/Dark/popout.svg'); +} + +QDockWidget::title { + text-align: left; + background-color: palette(base); + padding: 6px 8px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QDockWidget::close-button, QDockWidget::float-button { + border: 0px solid transparent; + border-radius: 4px; + background: transparent; + margin-right: 1px; + opacity: .5; +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover { + background: rgb(69, 71, 90); + opacity: 1; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed { + padding: 1px -1px -1px 1px; +} + +QScrollArea { + border-radius: 4px; +} + +OBSBasicStatusBar { + margin-top: 8px; +} + +/* Group Box */ + +QGroupBox { + background: palette(dark); + border-radius: 4px; + padding-top: 32px; + padding-bottom: 8px; + font-weight: bold; + margin-bottom: 6px; +} + +QGroupBox::title { + subcontrol-origin: margin; + left: 8px; + top: 8px; +} + + +/* ScrollBars */ + +::corner { + background-color: palette(window); + border: none; +} + +QScrollBar:vertical { + background-color: transparent; + width: 14px; + margin: 0px; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + border: none; + background: none; + height: 0px; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical, QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + border: none; + background: none; + color: none; +} + +QScrollBar:horizontal { + background-color: transparent; + height: 14px; + margin: 0px; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + border: none; + background: none; + width: 0px; +} + +QScrollBar::left-arrow:horizontal, QScrollBar::right-arrow:horizontal, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + border: none; + background: none; + color: none; +} + +QScrollBar::handle { + background-color: rgb(49, 50, 68); + margin: 2px; + border-radius: 2px; + border: 1px solid rgb(49, 50, 68); +} + +QScrollBar::handle:hover { + background-color: rgb(69, 71, 90); + border-color: rgb(69, 71, 90); +} + +QScrollBar::handle:pressed { + background-color: rgb(49, 50, 68); + border-color: rgb(49, 50, 68); +} + +QScrollBar::handle:vertical { + min-height: 20px; +} + +QScrollBar::handle:horizontal { + min-width: 20px; +} + +/* Source Context Bar */ + +#contextContainer { + background-color: palette(dark); + margin-top: 4px; + border-radius: 4px; +} + +#contextContainer QPushButton { + padding-left: 12px; + padding-right: 12px; +} + +QPushButton#sourcePropertiesButton { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +QPushButton#sourceFiltersButton { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +/* Scenes and Sources toolbar */ + +QToolBar { + background-color: palette(dark); + border: none; + padding: 0px; + margin: 4px 0px; +} + +QPushButton[toolButton="true"], +QToolButton, +QPushButton[toolButton="true"]:disabled, +QToolButton:disabled { + background-color: palette(base); + padding: 4px 6px; + margin: 0px 2px; + border-radius: 4px; +} + +QPushButton[toolButton="true"]:last-child, +QToolButton:last-child { + margin-right: 0px; +} + +QToolButton:hover { + background-color: rgb(69, 71, 90); +} + +QToolButton:pressed { + background-color: rgb(17, 17, 27); +} + +* [themeID="addIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/plus.svg); +} + +* [themeID="removeIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/trash.svg); +} + +* [themeID="clearIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/entry-clear.svg); +} + +* [themeID="propertiesIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="configIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/settings/general.svg); +} + +* [themeID="menuIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + +* [themeID="refreshIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/refresh.svg); +} + +* [themeID="cogsIcon"] { + qproperty-icon: url(./Catppuccin/Dark/cogs.svg); +} + +#sourceInteractButton { + qproperty-icon: url(./Catppuccin/Dark/interact.svg); +} + +* [themeID="upArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/up.svg); +} + +* [themeID="downArrowIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/down.svg); +} + +* [themeID="pauseIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/media-pause.svg); +} + +* [themeID="filtersIcon"] { + qproperty-icon: url(./Catppuccin/Dark/filter.svg); +} + +QToolBarExtension { + background: palette(button); + min-width: 12px; + max-width: 12px; + padding: 4px 0px; + margin-left: 0px; + + qproperty-icon: url(./Catppuccin/Dark/dots-vert.svg); +} + + +/* Tab Widget */ + +QTabWidget::pane { /* The tab widget frame */ + border-top: 4px solid palette(base); +} + +QTabWidget::tab-bar { + alignment: left; +} + +QTabBar QToolButton { + background: rgb(49, 50, 68); + border: none; +} + +QTabBar::tab:top { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:bottom { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab { + background: palette(dark); + color: palette(text); + border: none; + padding: 8px 12px; + min-width: 50px; + margin: 1px 2px; +} + +QTabBar::tab:pressed { + background: rgb(17, 17, 27); +} + +QTabBar::tab:hover { + background: rgb(69, 71, 90); + color: palette(text); +} + +QTabBar::tab:selected { + background: rgb(49, 50, 68); + color: palette(text); +} + +QTabBar::tab:top:selected { + border-bottom: 2px solid rgb(205, 214, 244); +} + +QTabBar::tab:bottom:selected { + border-top: 2px solid rgb(205, 214, 244); +} + +QTabBar QToolButton { + background: palette(base); + min-width: 16px; + padding: 0px; +} + +/* ComboBox */ + +QComboBox, +QDateTimeEdit { + background-color: rgb(49, 50, 68); + border-style: solid; + border: 1px; + border-radius: 4px; + border-color: rgb(49, 50, 68); + padding: 4px; + padding-left: 10px; +} + +QComboBox:hover, +QComboBox:selected, +QDateTimeEdit:hover, +QDateTimeEdit:selected { + background-color: rgb(69, 71, 90); +} + +QComboBox::drop-down, +QDateTimeEdit::drop-down { + border:none; + border-left: 1px solid rgb(25,28,34); + width: 20px; +} + +QComboBox::down-arrow, +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/updown.svg); + width: 100%; +} + +QComboBox:on, +QDateTimeEdit:on { + background-color: rgb(69, 71, 90); +} + +QComboBox:editable:hover { + +} + +QComboBox::drop-down:editable, +QDateTimeEdit::drop-down:editable { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +QComboBox::down-arrow:editable, +QDateTimeEdit::down-arrow:editable { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 8%; +} + +/* Textedits etc */ + +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: rgb(49, 50, 68); + border: none; + border-radius: 4px; + padding: 5px 2px 5px 7px; + border: 2px solid transparent; +} + +QLineEdit:hover, +QTextEdit:hover, +QPlainTextEdit:hover { + border: 2px solid rgb(99,102,111); +} + +QLineEdit:focus, +QTextEdit:focus, +QPlainTextEdit:focus { + background-color: palette(mid); + border: 2px solid rgb(69, 71, 90); +} + +/* Spinbox and doubleSpinbox */ + +QSpinBox, +QDoubleSpinBox { + background-color: rgb(49, 50, 68); + border: 2px solid rgb(49, 50, 68); + border-radius: 4px; + margin-right: 3px; + padding: 3px 0px 4px 5px; +} + +QSpinBox:hover, +QDoubleSpinBox:hover { + border: 2px solid rgb(88, 91, 112); +} + +QSpinBox:focus, +QDoubleSpinBox:focus { + background-color: palette(mid); + border: 2px solid rgb(69, 71, 90); +} + +QSpinBox::up-button, QDoubleSpinBox::up-button { + subcontrol-origin: padding; + subcontrol-position: top right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-width: 0; +} + +QSpinBox::down-button, QDoubleSpinBox::down-button { + subcontrol-origin: padding; + subcontrol-position: bottom right; /* position at the top right corner */ + right: 2px; + border-radius: 3px; + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; +} + +QSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::up-button:hover, QDoubleSpinBox::down-button:hover { + background-color: rgb(69, 71, 90); +} + +QSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::up-button:pressed, QDoubleSpinBox::down-button:pressed { + background-color: rgb(17, 17, 27); +} + +QSpinBox::up-button:disabled, QSpinBox::up-button:off, QSpinBox::down-button:disabled, QSpinBox::down-button:off { + background-color: rgb(17, 17, 27); +} + +QDoubleSpinBox::up-button:disabled, QDoubleSpinBox::up-button:off, QDoubleSpinBox::down-button:disabled, QDoubleSpinBox::down-button:off { + background-color: rgb(17, 17, 27); +} + +QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { + image: url(./Catppuccin/Dark/up.svg); + width: 100%; + margin: 2px; +} + +QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { + image: url(./Catppuccin/Dark/down.svg); + width: 100%; + padding: 2px; +} + + +/* Controls Dock */ +#controlsDock QPushButton { + margin: 1px; +} + +#streamButton, +#recordButton, +QPushButton[themeID="replayBufferButton"], +#broadcastButton { + padding: 10px; +} + +/* Primary Control Button Checked Coloring */ +#streamButton:!hover:!pressed:checked, +#recordButton:!hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!hover:!pressed:checked, +QPushButton[themeID="vcamButton"]:!hover:!pressed:checked, +#modeSwitch:!hover:!pressed:checked, +#broadcastButton:!hover:!pressed:checked { + background: rgb(137, 180, 250); + color: rgb(17, 17, 27); +} + +/* Primary Control Button Hover Coloring */ +#streamButton:hover:!pressed:checked, +#recordButton:hover:!pressed:checked, +QPushButton[themeID="replayBufferButton"]:!pressed:checked, +QPushButton[themeID="vcamButton"]:!pressed:checked, +#modeSwitch:hover:!pressed:checked, +#broadcastButton:hover:!pressed:checked { + background: rgb(180, 190, 254); + color: rgb(17, 17, 27); +} + + +/* Buttons */ + +QPushButton { + color: palette(text); + background-color: palette(button); + min-height: 18px; + border: none; + border-radius: 4px; + padding: 6px 16px; +} + +QPushButton::flat { + background-color: rgb(49, 50, 68); +} + +QPushButton:checked { + background-color: rgb(69, 71, 90); +} + +QPushButton:hover { + background-color: rgb(69, 71, 90); +} + +QPushButton:pressed { + background-color: rgb(17, 17, 27); +} + +QPushButton:disabled, QToolButton:disabled { + background-color: rgb(17, 17, 27); +} + +QPushButton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + subcontrol-origin: padding; + width: 25px; +} + +/* Sliders */ + +QSlider::groove:horizontal { + background-color: rgb(49, 50, 68); + height: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:horizontal { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + height: 10px; + width: 18px; + margin: -3px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:horizontal:pressed { + background-color: palette(text); +} + +QSlider::sub-page:horizontal { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::sub-page:horizontal:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::groove:vertical { + background-color: rgb(49, 50, 68); + width: 4px; + border: none; + border-radius: 2px; +} + +QSlider::handle:vertical { + background-color: palette(text); + border: 1px solid palette(mid); + border-radius: 3px; + width: 10px; + height: 18px; + margin: 0 -3px; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ +} + +QSlider::handle:vertical:pressed { + background-color: palette(text); +} + +QSlider::add-page:vertical { + background-color: palette(highlight); + border-radius: 2px; +} + +QSlider::add-page:vertical:disabled { + background-color: palette(window); + border-radius: 2px; +} + +QSlider::handle:hover { + background-color: rgb(186,194,222); +} + +QSlider::handle:disabled { + background-color: rgb(127, 132, 156); +} + +/* Volume Control */ + +#stackedMixerArea QPushButton { + min-width: 16px; + padding: 4px 8px; +} + +/* This is an incredibly cursed but necessary fix */ +#stackedMixerArea QPushButton:!hover { + background-color: palette(base); +} + +#stackedMixerArea QPushButton:hover { + background-color: rgb(69, 71, 90); +} + +#stackedMixerArea QPushButton:pressed { + background-color: rgb(17, 17, 27); +} + +VolumeMeter { + qproperty-backgroundNominalColor: rgb(166, 227, 161); + qproperty-backgroundWarningColor: rgb(250, 179, 135); + qproperty-backgroundErrorColor: rgb(243, 139, 168); + qproperty-foregroundNominalColor: rgb(95, 205, 86); + qproperty-foregroundWarningColor: rgb(246, 120, 43); + qproperty-foregroundErrorColor: rgb(234, 52, 103); + qproperty-magnitudeColor: rgb(49, 50, 8); + qproperty-majorTickColor: rgb(205, 214, 244); + qproperty-minorTickColor: rgb(108, 112, 134); + qproperty-peakDecayRate: 23.4; +} + +/* Status Bar */ + +QStatusBar::item { + border: none; +} + +/* Table View */ + +QTableView { + background: palette(base); + gridline-color: palette(light); +} + +QTableView::item { + margin: 0px; + padding: 0px; +} + +QTableView QLineEdit { + background: palette(mid); + padding: 0; + margin: 0; +} + +QTableView QPushButton, +QTableView QToolButton { + margin: 1px 1px 2px; +} + +QHeaderView::section { + background-color: rgb(49, 50, 68); + color: palette(text); + border: none; + border-left: 1px solid palette(window); + border-right: 1px solid palette(window); + padding: 2px 4px; + margin-bottom: 2px; +} + +/* Mute CheckBox */ + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(137, 180, 250); +} + +/* Label warning/error */ + +QLabel#warningLabel { + color: rgb(250, 179, 135); + font-weight: bold; +} + +QLabel#errorLabel { + color: rgb(235, 160, 172); + font-weight: bold; +} + +* [themeID="warning"] { + color: rgb(250, 179, 135); + font-weight: bold; +} + +* [themeID="error"] { + color: rgb(235, 160, 172); + font-weight: bold; +} + +* [themeID="good"] { + color: rgb(166, 227, 161); + font-weight: bold; +} + +/* About dialog */ + +* [themeID="aboutName"] { + font-size: 26pt; + font-weight: bold; +} + +* [themeID="aboutVersion"] { + font-size: 12pt; + margin-bottom: 20px; +} + +* [themeID="aboutInfo"] { + margin-bottom: 20px; +} + +* [themeID="aboutHLayout"] { + background-color: palette(base); +} + +/* Canvas / Preview background color */ + +OBSQTDisplay { + qproperty-displayBackgroundColor: rgb(17, 17, 27); + border-radius: 10px; +} + +/* Filters Window */ + +OBSBasicFilters QListWidget { + border-radius: 4px; + padding: 3px; +} + +OBSBasicFilters QListWidget::item { + border-radius: 4px; + padding: 6px; +} + +OBSBasicFilters #widget, +OBSBasicFilters #widget_2 { + margin: 0px; + padding: 0px; + padding-bottom: 4px; +} + +OBSBasicFilters #widget QPushButton, +OBSBasicFilters #widget_2 QPushButton { + min-width: 16px; + padding: 4px 8px; + margin-top: 0px; +} + +/* Preview/Program labels */ + +* [themeID="previewProgramLabels"] { + font-size: 14pt; + font-weight: bold; + color: rgb(166, 173, 200); + margin-bottom: 4px; +} + +/* Settings Icons */ + +OBSBasicSettings { + qproperty-generalIcon: url(./Catppuccin/Dark/settings/general.svg); + qproperty-streamIcon: url(./Catppuccin/Dark/settings/stream.svg); + qproperty-outputIcon: url(./Catppuccin/Dark/settings/output.svg); + qproperty-audioIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-videoIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-hotkeysIcon: url(./Catppuccin/Dark/settings/hotkeys.svg); + qproperty-accessibilityIcon: url(./Catppuccin/Dark/settings/accessibility.svg); + qproperty-advancedIcon: url(./Catppuccin/Dark/settings/advanced.svg); +} + +/* Checkboxes */ +QCheckBox { + +} + +QCheckBox::indicator, +QGroupBox::indicator { + width: 18px; + height: 18px; +} + +QGroupBox::indicator { + margin-left: 2px; +} + +QCheckBox::indicator:unchecked, +QGroupBox::indicator:unchecked { + image: url(./Catppuccin/Dark/checkbox_unchecked.svg); +} + +QCheckBox::indicator:unchecked:hover, +QGroupBox::indicator:unchecked:hover { + border: none; + image: url(./Catppuccin/Dark/checkbox_unchecked_focus.svg); +} + +QCheckBox::indicator:checked, +QGroupBox::indicator:checked { + image: url(./Catppuccin/Dark/checkbox_checked.svg); +} + +QCheckBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + border: none; + image: url(./Catppuccin/Dark/checkbox_checked_focus.svg); +} + +QCheckBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + image: url(./Catppuccin/Dark/checkbox_checked_disabled.svg); +} + +QCheckBox::indicator:unchecked:disabled, +QGroupBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Dark/checkbox_unchecked_disabled.svg); +} + +/* Locked CheckBox */ + +LockedCheckBox { + outline: none; + background: transparent; +} + +LockedCheckBox::indicator { + width: 16px; + height: 16px; +} + +LockedCheckBox::indicator:checked, +LockedCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/locked.svg); +} + +LockedCheckBox::indicator:unchecked, +LockedCheckBox::indicator:unchecked:hover { + image: url(:res/images/unlocked.svg); +} + +/* Visibility CheckBox */ + +VisibilityCheckBox { + outline: none; + background: transparent; +} + +VisibilityCheckBox::indicator { + width: 16px; + height: 16px; +} + +VisibilityCheckBox::indicator:checked, +VisibilityCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/visible.svg); +} + +VisibilityCheckBox::indicator:unchecked, +VisibilityCheckBox::indicator:unchecked:hover { + image: url(:res/images/invisible.svg); +} + +* [themeID="revertIcon"] { + qproperty-icon: url(./Catppuccin/Dark/revert.svg); +} + +QPushButton#extraPanelDelete { + background-color: palette(mid); + margin: 0; + padding: 0; +} + +QPushButton#extraPanelDelete:hover { + background-color: rgb(69, 71, 90); +} + +QPushButton#extraPanelDelete:pressed { + background-color: palette(dark); +} + +/* Mute CheckBox */ + +MuteCheckBox { + outline: none; +} + +MuteCheckBox::indicator { + width: 16px; + height: 16px; +} + +MuteCheckBox::indicator:checked { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:unchecked:focus { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +MuteCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:checked:focus { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:checked:disabled { + image: url(./Catppuccin/Dark/mute.svg); +} + +MuteCheckBox::indicator:unchecked:disabled { + image: url(./Catppuccin/Dark/settings/audio.svg); +} + +#hotkeyFilterReset { + margin-top: 0px; +} + +OBSHotkeyWidget { + padding: 8px 0px; + margin: 2px 0px; +} + +OBSHotkeyLabel { + padding: 4px 0px; +} + +OBSHotkeyLabel[hotkeyPairHover=true] { + color: rgb(137, 180, 250); +} + +OBSHotkeyWidget QPushButton { + min-width: 16px; + padding: 4px 4px; + margin-top: 0px; + margin-left: 4px; +} + + +/* Sources List Group Collapse Checkbox */ + +SourceTreeSubItemCheckBox { + background: transparent; + outline: none; + padding: 0px; +} + +SourceTreeSubItemCheckBox::indicator { + width: 12px; + height: 12px; +} + +SourceTreeSubItemCheckBox::indicator:checked, +SourceTreeSubItemCheckBox::indicator:checked:hover { + image: url(./Catppuccin/Dark/expand.svg); +} + +SourceTreeSubItemCheckBox::indicator:unchecked, +SourceTreeSubItemCheckBox::indicator:unchecked:hover { + image: url(./Catppuccin/Dark/collapse.svg); +} + +/* Source Icons */ + +OBSBasic { + qproperty-imageIcon: url(./Catppuccin/Dark/sources/image.svg); + qproperty-colorIcon: url(./Catppuccin/Dark/sources/brush.svg); + qproperty-slideshowIcon: url(./Catppuccin/Dark/sources/slideshow.svg); + qproperty-audioInputIcon: url(./Catppuccin/Dark/sources/microphone.svg); + qproperty-audioOutputIcon: url(./Catppuccin/Dark/settings/audio.svg); + qproperty-desktopCapIcon: url(./Catppuccin/Dark/settings/video.svg); + qproperty-windowCapIcon: url(./Catppuccin/Dark/sources/window.svg); + qproperty-gameCapIcon: url(./Catppuccin/Dark/sources/gamepad.svg); + qproperty-cameraIcon: url(./Catppuccin/Dark/sources/camera.svg); + qproperty-textIcon: url(./Catppuccin/Dark/sources/text.svg); + qproperty-mediaIcon: url(./Catppuccin/Dark/sources/media.svg); + qproperty-browserIcon: url(./Catppuccin/Dark/sources/globe.svg); + qproperty-groupIcon: url(./Catppuccin/Dark/sources/group.svg); + qproperty-sceneIcon: url(./Catppuccin/Dark/sources/scene.svg); + qproperty-defaultIcon: url(./Catppuccin/Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Catppuccin/Dark/sources/windowaudio.svg); +} + +/* Scene Tree Grid Mode */ + +SceneTree { + qproperty-gridItemWidth: 154; + qproperty-gridItemHeight: 31; +} + +*[gridMode="true"] SceneTree::item { + color: palette(text); + background-color: palette(button); + border-radius: 4px; + margin: 2px; +} + +*[gridMode="true"] SceneTree::item:selected { + background-color: rgb(69, 71, 90); +} + +*[gridMode="true"] SceneTree::item:checked { + background-color: rgb(69, 71, 90); +} + +*[gridMode="true"] SceneTree::item:hover { + background-color: rgb(69, 71, 90); +} + +/* Save icon */ + +* [themeID="replayIconSmall"] { + qproperty-icon: url(./Catppuccin/Dark/save.svg); +} + +/* Studio Mode T-Bar */ + +QSlider[themeID="tBarSlider"] { + height: 24px; +} + +QSlider::groove:horizontal[themeID="tBarSlider"] { + border: 1px solid #45475a; + height: 5px; + background: palette(dark); +} + +QSlider::sub-page:horizontal[themeID="tBarSlider"] { + background: palette(dark); + border: 1px solid #45475a; +} + +QSlider::handle:horizontal[themeID="tBarSlider"] { + background-color: #bac2de; + width: 12px; + height: 24px; + margin: -24px 0px; +} + +/* Media icons */ + +* [themeID="playIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_play.svg); +} + +* [themeID="pauseIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_pause.svg); +} + +* [themeID="restartIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_restart.svg); +} + +* [themeID="stopIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_stop.svg); +} + +* [themeID="nextIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_next.svg); +} + +* [themeID="previousIcon"] { + qproperty-icon: url(./Catppuccin/Dark/media/media_previous.svg); +} + +/* YouTube Integration */ +OBSYoutubeActions { + qproperty-thumbPlaceholder: url(./Catppuccin/Dark/sources/image.svg); +} + +#ytEventList QLabel { + color: palette(text); + background-color: rgb(49, 50, 68); + border: none; + border-radius: 4px; + padding: 4px 20px; +} + +#ytEventList QLabel:hover { + background-color: rgb(69, 71, 90); +} + +#ytEventList QLabel[isSelectedEvent=true] { + background-color: rgb(69, 71, 90); + border: none; +} + +#ytEventList QLabel[isSelectedEvent=true]:hover { + background-color: rgb(137, 180, 250); + color: palette(text); +} + +/* Calendar Widget */ +QDateTimeEdit::down-arrow { + qproperty-alignment: AlignTop; + image: url(./Catppuccin/Dark/down.svg); + width: 100%; +} + +QDateTimeEdit:on { + background-color: palette(mid); +} + +/* Calendar Top Bar */ +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: palette(base); + padding: 4px 8px; +} + +/* Calendar Top Bar Buttons */ +QCalendarWidget QToolButton { + background-color: palette(base); + padding: 2px 16px; + border-radius: 4px; + margin: 2px; +} + +#qt_calendar_monthbutton::menu-indicator { + image: url(./Catppuccin/Dark/down.svg); + subcontrol-position: right; + padding-top: 2px; + padding-right: 6px; + height: 10px; + width: 10px; +} + +QCalendarWidget #qt_calendar_prevmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/left.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget #qt_calendar_nextmonth { + padding: 2px; + qproperty-icon: url(./Catppuccin/Dark/right.svg); + icon-size: 16px, 16px; +} + +QCalendarWidget QToolButton:hover { + background-color: rgb(69, 71, 90); + border-radius: 4px; +} + +QCalendarWidget QToolButton:pressed { + background-color: rgb(17, 17, 27); +} + +/* Month Dropdown Menu */ +QCalendarWidget QMenu { + +} +/* Year spinbox */ +QCalendarWidget QSpinBox { + background-color: rgb(17, 17, 27); + border: none; + border-radius: 4px; + margin: 0px 3px 0px 0px; + padding: 4px 16px; +} + +QCalendarWidget QSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; width: 16px; } +QCalendarWidget QSpinBox::down-button {subcontrol-origin: border; subcontrol-position: bottom right; width: 16px;} +QCalendarWidget QSpinBox::up-arrow { width: 10px; height: 10px; } +QCalendarWidget QSpinBox::down-arrow { width: 10px; height: 10px; } + +/* Days of the Week Bar */ +QCalendarWidget QWidget { alternate-background-color: palette(mid); } + +QCalendarWidget QAbstractItemView:enabled { + background-color: palette(base); + color: palette(text); +} + +QCalendarWidget QAbstractItemView:disabled { + color: rgb(122,121,122); +} + +/* VirtualCam Plugin Fixes */ + +#VirtualProperties QWidget { + margin-top: 0; + margin-bottom: 0; +} + +/* Disable icons on QDialogButtonBox */ +QDialogButtonBox { + dialogbuttonbox-buttons-have-icons: 0; +} + +/* Stats dialog */ +OBSBasicStats { + background: palette(dark); +} + +/* Advanced audio dialog */ +OBSBasicAdvAudio #scrollAreaWidgetContents { + background: palette(dark); +} diff --git a/.config/obs-studio/themes/Catppuccin/Dark/alert.svg b/.config/obs-studio/themes/Catppuccin/Dark/alert.svg new file mode 100644 index 0000000..30d6ea8 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/alert.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked.svg b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked.svg new file mode 100644 index 0000000..6448ba9 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked_disabled.svg b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked_disabled.svg new file mode 100644 index 0000000..ece5841 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked_disabled.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked_focus.svg b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked_focus.svg new file mode 100644 index 0000000..ff1f0c7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_checked_focus.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked.svg b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked.svg new file mode 100644 index 0000000..7b3f10b --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked_disabled.svg b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked_disabled.svg new file mode 100644 index 0000000..104f8b5 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked_disabled.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked_focus.svg b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked_focus.svg new file mode 100644 index 0000000..66f3f15 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/checkbox_unchecked_focus.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/close.svg b/.config/obs-studio/themes/Catppuccin/Dark/close.svg new file mode 100644 index 0000000..2a10db8 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/cogs.svg b/.config/obs-studio/themes/Catppuccin/Dark/cogs.svg new file mode 100644 index 0000000..3a013db --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/cogs.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/collapse.svg b/.config/obs-studio/themes/Catppuccin/Dark/collapse.svg new file mode 100644 index 0000000..edd2ae0 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/collapse.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/dots-vert.svg b/.config/obs-studio/themes/Catppuccin/Dark/dots-vert.svg new file mode 100644 index 0000000..ae702ad --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/dots-vert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/dots.svg b/.config/obs-studio/themes/Catppuccin/Dark/dots.svg new file mode 100644 index 0000000..41dd93e --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/dots.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/down.svg b/.config/obs-studio/themes/Catppuccin/Dark/down.svg new file mode 100644 index 0000000..b475714 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/down.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/entry-clear.svg b/.config/obs-studio/themes/Catppuccin/Dark/entry-clear.svg new file mode 100644 index 0000000..d302984 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/entry-clear.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/expand.svg b/.config/obs-studio/themes/Catppuccin/Dark/expand.svg new file mode 100644 index 0000000..a1afddf --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/expand.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/filter.svg b/.config/obs-studio/themes/Catppuccin/Dark/filter.svg new file mode 100644 index 0000000..0038a76 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/filter.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/interact.svg b/.config/obs-studio/themes/Catppuccin/Dark/interact.svg new file mode 100644 index 0000000..b1dc53f --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/interact.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/left.svg b/.config/obs-studio/themes/Catppuccin/Dark/left.svg new file mode 100644 index 0000000..469481f --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/locked.svg b/.config/obs-studio/themes/Catppuccin/Dark/locked.svg new file mode 100644 index 0000000..1678500 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/locked.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media-pause.svg b/.config/obs-studio/themes/Catppuccin/Dark/media-pause.svg new file mode 100644 index 0000000..2743bc4 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media-pause.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media/media_next.svg b/.config/obs-studio/themes/Catppuccin/Dark/media/media_next.svg new file mode 100644 index 0000000..db82996 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media/media_next.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media/media_pause.svg b/.config/obs-studio/themes/Catppuccin/Dark/media/media_pause.svg new file mode 100644 index 0000000..2743bc4 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media/media_pause.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media/media_play.svg b/.config/obs-studio/themes/Catppuccin/Dark/media/media_play.svg new file mode 100644 index 0000000..cb08f84 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media/media_play.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media/media_previous.svg b/.config/obs-studio/themes/Catppuccin/Dark/media/media_previous.svg new file mode 100644 index 0000000..15c3342 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media/media_previous.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media/media_restart.svg b/.config/obs-studio/themes/Catppuccin/Dark/media/media_restart.svg new file mode 100644 index 0000000..be65361 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media/media_restart.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/media/media_stop.svg b/.config/obs-studio/themes/Catppuccin/Dark/media/media_stop.svg new file mode 100644 index 0000000..caa1f2d --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/media/media_stop.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/minus.svg b/.config/obs-studio/themes/Catppuccin/Dark/minus.svg new file mode 100644 index 0000000..73df860 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/minus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/mute.svg b/.config/obs-studio/themes/Catppuccin/Dark/mute.svg new file mode 100644 index 0000000..9a63c7e --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/mute.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/no_sources.svg b/.config/obs-studio/themes/Catppuccin/Dark/no_sources.svg new file mode 100644 index 0000000..3c7bd7c --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/no_sources.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/plus.svg b/.config/obs-studio/themes/Catppuccin/Dark/plus.svg new file mode 100644 index 0000000..4bf3192 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/plus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/popout.svg b/.config/obs-studio/themes/Catppuccin/Dark/popout.svg new file mode 100644 index 0000000..afba03a --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/popout.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/refresh.svg b/.config/obs-studio/themes/Catppuccin/Dark/refresh.svg new file mode 100644 index 0000000..5549e68 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/refresh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/revert.svg b/.config/obs-studio/themes/Catppuccin/Dark/revert.svg new file mode 100644 index 0000000..3f7b985 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/revert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/right.svg b/.config/obs-studio/themes/Catppuccin/Dark/right.svg new file mode 100644 index 0000000..cb03edf --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/save.svg b/.config/obs-studio/themes/Catppuccin/Dark/save.svg new file mode 100644 index 0000000..52d0464 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/save.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/accessibility.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/accessibility.svg new file mode 100644 index 0000000..f81e046 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/accessibility.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/advanced.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/advanced.svg new file mode 100644 index 0000000..4e20a9a --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/advanced.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/audio.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/audio.svg new file mode 100644 index 0000000..5470659 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/audio.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/general.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/general.svg new file mode 100644 index 0000000..78511bb --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/general.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/hotkeys.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/hotkeys.svg new file mode 100644 index 0000000..f86f15e --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/hotkeys.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/output.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/output.svg new file mode 100644 index 0000000..6f064d7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/output.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/stream.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/stream.svg new file mode 100644 index 0000000..f764787 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/stream.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/settings/video.svg b/.config/obs-studio/themes/Catppuccin/Dark/settings/video.svg new file mode 100644 index 0000000..ae0076b --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/settings/video.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/brush.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/brush.svg new file mode 100644 index 0000000..a975657 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/brush.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/camera.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/camera.svg new file mode 100644 index 0000000..1903979 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/camera.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/default.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/default.svg new file mode 100644 index 0000000..cc505c8 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/default.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/gamepad.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/gamepad.svg new file mode 100644 index 0000000..a78be69 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/gamepad.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/globe.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/globe.svg new file mode 100644 index 0000000..809552c --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/globe.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/group.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/group.svg new file mode 100644 index 0000000..43c48b7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/group.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/image.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/image.svg new file mode 100644 index 0000000..0e35684 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/image.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/media.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/media.svg new file mode 100644 index 0000000..cb08f84 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/media.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/microphone.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/microphone.svg new file mode 100644 index 0000000..4c6259e --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/microphone.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/scene.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/scene.svg new file mode 100644 index 0000000..faab772 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/scene.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/slideshow.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/slideshow.svg new file mode 100644 index 0000000..d5b9245 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/slideshow.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/text.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/text.svg new file mode 100644 index 0000000..e4c86f9 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/text.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/window.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/window.svg new file mode 100644 index 0000000..1798d1f --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/window.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/sources/windowaudio.svg b/.config/obs-studio/themes/Catppuccin/Dark/sources/windowaudio.svg new file mode 100644 index 0000000..a5d9712 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/sources/windowaudio.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/trash.svg b/.config/obs-studio/themes/Catppuccin/Dark/trash.svg new file mode 100644 index 0000000..0e4c408 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/trash.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/up.svg b/.config/obs-studio/themes/Catppuccin/Dark/up.svg new file mode 100644 index 0000000..53d8e75 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/up.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/updown.svg b/.config/obs-studio/themes/Catppuccin/Dark/updown.svg new file mode 100644 index 0000000..0e94483 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/updown.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Dark/visible.svg b/.config/obs-studio/themes/Catppuccin/Dark/visible.svg new file mode 100644 index 0000000..d4ff003 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Dark/visible.svg @@ -0,0 +1,2 @@ + +image/svg+xmlGnome Symbolic Icon ThemeGnome Symbolic Icon Theme diff --git a/.config/obs-studio/themes/Catppuccin/Light/alert.svg b/.config/obs-studio/themes/Catppuccin/Light/alert.svg new file mode 100644 index 0000000..1205be7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/alert.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked.svg b/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked.svg new file mode 100644 index 0000000..456dc07 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked_disabled.svg b/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked_disabled.svg new file mode 100644 index 0000000..725b794 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked_disabled.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked_focus.svg b/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked_focus.svg new file mode 100644 index 0000000..86bb686 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/checkbox_checked_focus.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked.svg b/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked.svg new file mode 100644 index 0000000..9f90d3a --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked_disabled.svg b/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked_disabled.svg new file mode 100644 index 0000000..9494782 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked_disabled.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked_focus.svg b/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked_focus.svg new file mode 100644 index 0000000..8d8870c --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/checkbox_unchecked_focus.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/close.svg b/.config/obs-studio/themes/Catppuccin/Light/close.svg new file mode 100644 index 0000000..ad7aecd --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/cogs.svg b/.config/obs-studio/themes/Catppuccin/Light/cogs.svg new file mode 100644 index 0000000..b5b4102 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/cogs.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Light/collapse.svg b/.config/obs-studio/themes/Catppuccin/Light/collapse.svg new file mode 100644 index 0000000..325cd64 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/collapse.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/dots-vert.svg b/.config/obs-studio/themes/Catppuccin/Light/dots-vert.svg new file mode 100644 index 0000000..3ae2e00 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/dots-vert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/dots.svg b/.config/obs-studio/themes/Catppuccin/Light/dots.svg new file mode 100644 index 0000000..bf2b902 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/dots.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/down.svg b/.config/obs-studio/themes/Catppuccin/Light/down.svg new file mode 100644 index 0000000..d62efa4 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/down.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/entry-clear.svg b/.config/obs-studio/themes/Catppuccin/Light/entry-clear.svg new file mode 100644 index 0000000..43c9deb --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/entry-clear.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/expand.svg b/.config/obs-studio/themes/Catppuccin/Light/expand.svg new file mode 100644 index 0000000..8b4837a --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/expand.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/filter.svg b/.config/obs-studio/themes/Catppuccin/Light/filter.svg new file mode 100644 index 0000000..ed6de81 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/filter.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/interact.svg b/.config/obs-studio/themes/Catppuccin/Light/interact.svg new file mode 100644 index 0000000..806b0a0 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/interact.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/left.svg b/.config/obs-studio/themes/Catppuccin/Light/left.svg new file mode 100644 index 0000000..4bd2ec8 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/left.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/locked.svg b/.config/obs-studio/themes/Catppuccin/Light/locked.svg new file mode 100644 index 0000000..a30bc94 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/locked.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media-pause.svg b/.config/obs-studio/themes/Catppuccin/Light/media-pause.svg new file mode 100644 index 0000000..54f9df4 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media-pause.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media/media_next.svg b/.config/obs-studio/themes/Catppuccin/Light/media/media_next.svg new file mode 100644 index 0000000..5e92672 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media/media_next.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media/media_pause.svg b/.config/obs-studio/themes/Catppuccin/Light/media/media_pause.svg new file mode 100644 index 0000000..54f9df4 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media/media_pause.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media/media_play.svg b/.config/obs-studio/themes/Catppuccin/Light/media/media_play.svg new file mode 100644 index 0000000..6664825 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media/media_play.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media/media_previous.svg b/.config/obs-studio/themes/Catppuccin/Light/media/media_previous.svg new file mode 100644 index 0000000..8727f49 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media/media_previous.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media/media_restart.svg b/.config/obs-studio/themes/Catppuccin/Light/media/media_restart.svg new file mode 100644 index 0000000..b876112 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media/media_restart.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/media/media_stop.svg b/.config/obs-studio/themes/Catppuccin/Light/media/media_stop.svg new file mode 100644 index 0000000..f79552d --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/media/media_stop.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/minus.svg b/.config/obs-studio/themes/Catppuccin/Light/minus.svg new file mode 100644 index 0000000..d5369ac --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/minus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/mute.svg b/.config/obs-studio/themes/Catppuccin/Light/mute.svg new file mode 100644 index 0000000..9a63c7e --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/mute.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/no_sources.svg b/.config/obs-studio/themes/Catppuccin/Light/no_sources.svg new file mode 100644 index 0000000..154fcbd --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/no_sources.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/plus.svg b/.config/obs-studio/themes/Catppuccin/Light/plus.svg new file mode 100644 index 0000000..149e6d0 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/plus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/popout.svg b/.config/obs-studio/themes/Catppuccin/Light/popout.svg new file mode 100644 index 0000000..afba03a --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/popout.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Light/refresh.svg b/.config/obs-studio/themes/Catppuccin/Light/refresh.svg new file mode 100644 index 0000000..4871cb4 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/refresh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/revert.svg b/.config/obs-studio/themes/Catppuccin/Light/revert.svg new file mode 100644 index 0000000..2d0aa4c --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/revert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/right.svg b/.config/obs-studio/themes/Catppuccin/Light/right.svg new file mode 100644 index 0000000..246a3ab --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/save.svg b/.config/obs-studio/themes/Catppuccin/Light/save.svg new file mode 100644 index 0000000..4a05c05 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/save.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/accessibility.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/accessibility.svg new file mode 100644 index 0000000..1d884bc --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/accessibility.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/advanced.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/advanced.svg new file mode 100644 index 0000000..8e2d843 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/advanced.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/audio.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/audio.svg new file mode 100644 index 0000000..13f201d --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/audio.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/general.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/general.svg new file mode 100644 index 0000000..52a5d7f --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/general.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/hotkeys.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/hotkeys.svg new file mode 100644 index 0000000..d04531f --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/hotkeys.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/output.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/output.svg new file mode 100644 index 0000000..3ab573c --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/output.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/stream.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/stream.svg new file mode 100644 index 0000000..85f0145 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/stream.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/settings/video.svg b/.config/obs-studio/themes/Catppuccin/Light/settings/video.svg new file mode 100644 index 0000000..1bad561 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/settings/video.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/brush.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/brush.svg new file mode 100644 index 0000000..077e070 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/brush.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/camera.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/camera.svg new file mode 100644 index 0000000..be12c1b --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/camera.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/default.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/default.svg new file mode 100644 index 0000000..c3d9db0 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/default.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/gamepad.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/gamepad.svg new file mode 100644 index 0000000..d668a16 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/gamepad.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/globe.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/globe.svg new file mode 100644 index 0000000..5a753c2 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/globe.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/group.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/group.svg new file mode 100644 index 0000000..99af8d3 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/group.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/image.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/image.svg new file mode 100644 index 0000000..4f99a8c --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/image.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/media.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/media.svg new file mode 100644 index 0000000..6664825 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/media.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/microphone.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/microphone.svg new file mode 100644 index 0000000..b3caeb0 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/microphone.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/scene.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/scene.svg new file mode 100644 index 0000000..c2fc500 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/scene.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/slideshow.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/slideshow.svg new file mode 100644 index 0000000..cf30442 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/slideshow.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/text.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/text.svg new file mode 100644 index 0000000..6bacd74 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/text.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/window.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/window.svg new file mode 100644 index 0000000..2f4659a --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/window.svg @@ -0,0 +1,2 @@ + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/sources/windowaudio.svg b/.config/obs-studio/themes/Catppuccin/Light/sources/windowaudio.svg new file mode 100644 index 0000000..2bbf780 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/sources/windowaudio.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/trash.svg b/.config/obs-studio/themes/Catppuccin/Light/trash.svg new file mode 100644 index 0000000..86eeda7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/trash.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/up.svg b/.config/obs-studio/themes/Catppuccin/Light/up.svg new file mode 100644 index 0000000..67ccd46 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/up.svg @@ -0,0 +1,4 @@ + + + + diff --git a/.config/obs-studio/themes/Catppuccin/Light/updown.svg b/.config/obs-studio/themes/Catppuccin/Light/updown.svg new file mode 100644 index 0000000..3c33fd7 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/updown.svg @@ -0,0 +1 @@ + diff --git a/.config/obs-studio/themes/Catppuccin/Light/visible.svg b/.config/obs-studio/themes/Catppuccin/Light/visible.svg new file mode 100644 index 0000000..fafc408 --- /dev/null +++ b/.config/obs-studio/themes/Catppuccin/Light/visible.svg @@ -0,0 +1,2 @@ + +image/svg+xmlGnome Symbolic Icon ThemeGnome Symbolic Icon Theme diff --git a/.emacs.d/config.el b/.emacs.d/config.el new file mode 100755 index 0000000..8b05587 --- /dev/null +++ b/.emacs.d/config.el @@ -0,0 +1,159 @@ +;;(defvar elpaca-installer-version 0.4) +;;(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) +;;(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) +;;(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) +;;(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" +;; :ref nil +;; :files (:defaults (:exclude "extensions")) +;; :build (:not elpaca--activate-package))) +;;(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) +;; (build (expand-file-name "elpaca/" elpaca-builds-directory)) +;; (order (cdr elpaca-order)) +;; (default-directory repo)) +;; (add-to-list 'load-path (if (file-exists-p build) build repo)) +;; (unless (file-exists-p repo) +;; (make-directory repo t) +;; (when (< emacs-major-version 28) (require 'subr-x)) +;; (condition-case-unless-debug err +;; (if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) +;; ((zerop (call-process "git" nil buffer t "clone" +;; (plist-get order :repo) repo))) +;; ((zerop (call-process "git" nil buffer t "checkout" +;; (or (plist-get order :ref) "--")))) +;; (emacs (concat invocation-directory invocation-name)) +;; ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" +;; "--eval" "(byte-recompile-directory \".\" 0 'force)"))) +;; ((require 'elpaca)) +;; ((elpaca-generate-autoloads "elpaca" repo))) +;; (kill-buffer buffer) +;; (error "%s" (with-current-buffer buffer (buffer-string)))) +;; ((error) (warn "%s" err) (delete-directory repo 'recursive)))) +;; (unless (require 'elpaca-autoloads nil t) +;; (require 'elpaca) +;; (elpaca-generate-autoloads "elpaca" repo) +;; (load "./elpaca-autoloads"))) +;;(add-hook 'after-init-hook #'elpaca-process-queues) +;;(elpaca `(,@elpaca-order)) + +;; Install use-package support + +;;(elpaca elpaca-use-package + ;; Enable :elpaca use-package keyword. +;; (elpaca-use-package-mode) + ;; Assume :elpaca t unless otherwise specified. + ;; (setq elpaca-use-package-by-default t)) + +;; Block until current queue processed. +#(elpaca-wait) + +;;When installing a package which modifies a form used at the top-level +;;(e.g. a package which adds a use-package key word), +;;use `elpaca-wait' to block until that package has been installed/configured. +;;For example: +;;(use-package general :demand t) +;;(elpaca-wait) + +;; Expands to: (elpaca evil (use-package evil :demand t)) +(use-package evil + :init ;; tweak evil's configuration before loading it + (setq evil-want-integration t) ;; This is optional since it's already set to t by default. + (setq evil-want-keybinding nil) + (setq evil-vsplit-window-right t) + (setq evil-split-window-below t) + (evil-mode)) + (use-package evil-collection + :after evil + :config + (setq evil-collection-mode-list '(dashboard dired ibuffer)) + (evil-collection-init)) + (use-package evil-tutor) + +;;Turns off elpaca-use-package-mode current declartion +;;Note this will cause the declaration to be interpreted immediately (not deferred). +;;Useful for configuring built-in emacs features. +#(use-package emacs :elpaca nil :config (setq ring-bell-function #'ignore)) + +;; Don't install anything. Defer execution of BODY +(elpaca nil (message "deferred")) + +(use-package general + :config + (general-evil-setup) + + ;; set up 'SPC' as the global leader key + (general-create-definer dt/leader-keys + :states '(normal insert visual emacs) + :keymaps 'override + :prefix "SPC" ;; set leader + :global-prefix "M-SPC") ;; access leader in insert mode + + (dt/leader-keys + "b" '(:ignore t :wk "buffer") + "bb" '(switch-to-buffer :wk "Switch buffer") + "bk" '(kill-this-buffer :wk "Kill this buffer") + "bn" '(next-buffer :wk "Next buffer") + "bp" '(previous-buffer :wk "Previous buffer") + "br" '(revert-buffer :wk "Reload buffer")) + +) + +(set-face-attribute 'default nil + :font "JetBrains Mono" + :height 110 + :weight 'medium) +(set-face-attribute 'variable-pitch nil + :font "Ubuntu" + :height 120 + :weight 'medium) +(set-face-attribute 'fixed-pitch nil + :font "JetBrains Mono" + :height 110 + :weight 'medium) +;; Makes commented text and keywords italics. +;; This is working in emacsclient but not emacs. +;; Your font must have an italic face available. +(set-face-attribute 'font-lock-comment-face nil + :slant 'italic) +(set-face-attribute 'font-lock-keyword-face nil + :slant 'italic) + +;; This sets the default font on all graphical frames created after restarting Emacs. +;; Does the same thing as 'set-face-attribute default' above, but emacsclient fonts +;; are not right unless I also add this method of setting the default font. +(add-to-list 'default-frame-alist '(font . "JetBrains Mono-11")) + +;; Uncomment the following line if line spacing needs adjusting. +(setq-default line-spacing 0.12) + +(menu-bar-mode -1) +(tool-bar-mode -1) +(scroll-bar-mode -1) + +(global-display-line-numbers-mode 1) +(global-visual-line-mode t) + +(use-package toc-org + :commands toc-org-enable + :init (add-hook 'org-mode-hook 'toc-org-enable)) + +(add-hook 'org-mode-hook 'org-indent-mode) +(use-package org-bullets) +(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) + +(use-package which-key + :init + (which-key-mode 1) + :config + (setq which-key-side-window-location 'bottom + which-key-sort-order #'which-key-key-order-alpha + which-key-sort-uppercase-first nil + which-key-add-column-padding 1 + which-key-max-display-columns nil + which-key-min-display-lines 6 + which-key-side-window-slot -10 + which-key-side-window-max-height 0.25 + which-key-idle-delay 0.8 + which-key-max-description-length 25 + which-key-allow-imprecise-window-fit t + which-key-separator " โ†’ " )) + diff --git a/.emacs.d/early-init.el b/.emacs.d/early-init.el new file mode 100755 index 0000000..0ded808 --- /dev/null +++ b/.emacs.d/early-init.el @@ -0,0 +1 @@ +(setq package-enable-at-startup nil) \ No newline at end of file diff --git a/.emacs.d/init.el b/.emacs.d/init.el new file mode 100755 index 0000000..35f889e --- /dev/null +++ b/.emacs.d/init.el @@ -0,0 +1,8 @@ +(org-babel-load-file + (expand-file-name + "config.org" + user-emacs-directory)) + (add-to-list 'custom-theme-load-path "~/.emacs.d/themes") +(load-theme 'catppuccin t) +(setq catppuccin-flavor 'frappe) ;; or 'latte, 'macchiato, or 'mocha +(catppuccin-reload) diff --git a/.emacs.d/themes/catppuccin-theme.el b/.emacs.d/themes/catppuccin-theme.el new file mode 100755 index 0000000..9f12490 --- /dev/null +++ b/.emacs.d/themes/catppuccin-theme.el @@ -0,0 +1,1152 @@ +;;; catppuccin-theme.el --- Catppuccin for Emacs - ๐Ÿ„ Soothing pastel theme for Emacs -*- lexical-binding: t; no-byte-compile: t; -*- + +;; Copyright 2022-present, All rights reserved +;; +;; Code licensed under the MIT license + +;; Maintainer: Carsten Kragelund +;; Author: nyxkrage +;; Original-Author: film42 +;; Version: 1.0.0 +;; Package-Requires: ((emacs "25.1")) +;; URL: https://github.com/catppuccin/emacs + +;;; Commentary: + +;; ๐Ÿ„ Soothing pastel theme for Emacs + +;;; Code: +(deftheme catppuccin) + +;;;; Configuration options: + +(defgroup catppuccin nil + "Catppuccin theme options. + +The theme has to be reloaded after changing anything in this group." + :group 'faces) + +(defcustom catppuccin-enlarge-headings t + "Use different font sizes for some headings and titles." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-height-title-1 1.3 + "Header 1 font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-height-title-2 1.2 + "Header 2 font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-height-title-3 1.2 + "Header 3 font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-height-doc-title 1.44 + "Documentation Title font size." + :type 'number + :group 'catppuccin) + +(defcustom catppuccin-highlight-matches nil + "Use background color to make highlighted matches more visible." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-italic-comments nil + "Use :slant italic for comments." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-italic-variables nil + "Use :slant italic for variables." + :type 'boolean + :group 'catppuccin) + +(defcustom catppuccin-flavor 'mocha + "The flavor to use for the Catppuccin theme. +Must be one of `mocha`, `macchiato`, `frappe`, or `latte`." + :type '(choice (const :tag "Mocha" mocha) + (const :tag "Macchiato" macchiato) + (const :tag "Frappe" frappe) + (const :tag "Latte" latte)) + :group 'catppuccin) + +(defcustom catppuccin-mocha-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") + (subtext0 . "#a6adc8") + (overlay2 . "#9399b2") + (overlay1 . "#7f849c") + (overlay0 . "#6c7086") + (surface2 . "#585b70") + (surface1 . "#45475a") + (surface0 . "#313244") + (base . "#1e1e2e") + (mantle . "#181825") + (crust . "#11111b")) + "Colors used for catppuccin-mocha." + :tag "Mocha Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +(defcustom catppuccin-macchiato-colors '((rosewater . "#f4dbd6") + (flamingo . "#f0c6c6") + (pink . "#f5bde6") + (mauve . "#c6a0f6") + (red . "#ed8796") + (maroon . "#ee99a0") + (peach . "#f5a97f") + (yellow . "#eed49f") + (green . "#a6da95") + (teal . "#8bd5ca") + (sky . "#91d7e3") + (sapphire . "#7dc4e4") + (blue . "#8aadf4") + (lavender . "#b7bdf8") + (text . "#cad3f5") + (subtext1 . "#b8c0e0") + (subtext0 . "#a5adcb") + (overlay2 . "#939ab7") + (overlay1 . "#8087a2") + (overlay0 . "#6e738d") + (surface2 . "#5b6078") + (surface1 . "#494d64") + (surface0 . "#363a4f") + (base . "#24273a") + (mantle . "#1e2030") + (crust . "#181926")) + "Colors used for catppuccin-macchiato." + :tag "Macchiato Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +(defcustom catppuccin-frappe-colors '((rosewater . "#f2d5cf") + (flamingo . "#eebebe") + (pink . "#f4b8e4") + (mauve . "#ca9ee6") + (red . "#e78284") + (maroon . "#ea999c") + (peach . "#ef9f76") + (yellow . "#e5c890") + (green . "#a6d189") + (teal . "#81c8be") + (sky . "#99d1db") + (sapphire . "#85c1dc") + (blue . "#8caaee") + (lavender . "#babbf1") + (text . "#c6d0f5") + (subtext1 . "#b5bfe2") + (subtext0 . "#a5adce") + (overlay2 . "#949cbb") + (overlay1 . "#838ba7") + (overlay0 . "#737994") + (surface2 . "#626880") + (surface1 . "#51576d") + (surface0 . "#414559") + (base . "#303446") + (mantle . "#292c3c") + (crust . "#232634")) + "Colors used for catppuccin-frappe." + :tag "Frappe Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +(defcustom catppuccin-latte-colors '((rosewater . "#dc8a78") + (flamingo . "#dd7878") + (pink . "#ea76cb") + (mauve . "#8839ef") + (red . "#d20f39") + (maroon . "#e64553") + (peach . "#fe640b") + (yellow . "#df8e1d") + (green . "#40a02b") + (teal . "#179299") + (sky . "#04a5e5") + (sapphire . "#209fb5") + (blue . "#1e66f5") + (lavender . "#7287fd") + (text . "#4c4f69") + (subtext1 . "#5c5f77") + (subtext0 . "#6c6f85") + (overlay2 . "#7c7f93") + (overlay1 . "#8c8fa1") + (overlay0 . "#9ca0b0") + (surface2 . "#acb0be") + (surface1 . "#bcc0cc") + (surface0 . "#ccd0da") + (base . "#eff1f5") + (mantle . "#e6e9ef") + (crust . "#dce0e8")) + "Colors used for catppuccin-latte." + :tag "Latte Colors" + :options '(rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust) + :type '(alist :key-type symbol :value-type string) + :group 'catppuccin) + +;;;; Internal functions + +(defun catppuccin-quantize-color (color) + "Quantize COLOR to a 256 color palette." + (let ((i 1) + (str "#")) + (while (<= i 5) + (setq str + (concat + str + (format + "%02x" + (* (round + (/ + (string-to-number (substring color i (+ i 2)) 16) + 17)) + 17)))) + (setq i (+ i 2))) + str)) + +;; Color operations +(let* ((hex-to-rgb (lambda (color) + (mapcar + (lambda (i) (string-to-number (substring color i (+ i 2)) 16)) + '(1 3 5)))) + (rgb-to-hex (lambda (r g b) + (format "#%02x%02x%02x" r g b))) + (rnd (lambda (n) (round (+ .5 n))))) + + (defun catppuccin-lighten (color value) + "Lighten COLOR by VALUE%." + (let* ((factor (/ value 100.0))) + (apply rgb-to-hex (mapcar (lambda (v) (funcall rnd (min 255 (+ (* (- 255 v) factor) v)))) + (funcall hex-to-rgb color))))) + + (defun catppuccin-darken (color value) + "Darken COLOR by VALUE%." + (let* ((factor (/ value 100.0))) + (apply rgb-to-hex (mapcar (lambda (v) (floor (* (- 1 factor) v))) + (funcall hex-to-rgb color)))))) + +;;; User functions + +(defun catppuccin-reload () + "Reload the Catppuccin theme, useful for after having set custom colors with `catppuccin-set-color`." + (interactive) + (disable-theme 'catppuccin) + (load-theme 'catppuccin t)) + +(defun catppuccin-set-color (color value &optional flavor) + "Set the COLOR of FLAVOR or the current flavor to VALUE." + (interactive "SChange color: \nsSet %s to: ") + (setcdr (assoc color (symbol-value (intern-soft (concat "catppuccin-" (symbol-name (or flavor catppuccin-flavor)) "-colors")))) value)) + +(defun catppuccin-get-color (color &optional flavor) + "Get the COLOR of FLAVOR or the current flavor." + (interactive "SThe color to get: ") + (alist-get color (symbol-value (intern-soft (concat "catppuccin-" (symbol-name (or flavor catppuccin-flavor)) "-colors"))))) + +;;;; Theme definition: +(let ((colors '((undef "#ff00ff" "#ff00ff") + (ctp-rosewater (catppuccin-get-color 'rosewater) (catppuccin-quantize-color (catppuccin-get-color 'rosewater))) + (ctp-flamingo (catppuccin-get-color 'flamingo) (catppuccin-quantize-color (catppuccin-get-color 'flamingo))) + (ctp-pink (catppuccin-get-color 'pink) (catppuccin-quantize-color (catppuccin-get-color 'pink))) + (ctp-mauve (catppuccin-get-color 'mauve) (catppuccin-quantize-color (catppuccin-get-color 'mauve))) + (ctp-red (catppuccin-get-color 'red) (catppuccin-quantize-color (catppuccin-get-color 'red))) + (ctp-maroon (catppuccin-get-color 'maroon) (catppuccin-quantize-color (catppuccin-get-color 'maroon))) + (ctp-peach (catppuccin-get-color 'peach) (catppuccin-quantize-color (catppuccin-get-color 'peach))) + (ctp-yellow (catppuccin-get-color 'yellow) (catppuccin-quantize-color (catppuccin-get-color 'yellow))) + (ctp-green (catppuccin-get-color 'green) (catppuccin-quantize-color (catppuccin-get-color 'green))) + (ctp-teal (catppuccin-get-color 'teal) (catppuccin-quantize-color (catppuccin-get-color 'teal))) + (ctp-sky (catppuccin-get-color 'sky) (catppuccin-quantize-color (catppuccin-get-color 'sky))) + (ctp-sapphire (catppuccin-get-color 'sapphire) (catppuccin-quantize-color (catppuccin-get-color 'sapphire))) + (ctp-blue (catppuccin-get-color 'blue) (catppuccin-quantize-color (catppuccin-get-color 'blue))) + (ctp-lavender (catppuccin-get-color 'lavender) (catppuccin-quantize-color (catppuccin-get-color 'lavender))) + (ctp-text (catppuccin-get-color 'text) (catppuccin-quantize-color (catppuccin-get-color 'text))) + (ctp-subtext1 (catppuccin-get-color 'subtext1) (catppuccin-quantize-color (catppuccin-get-color 'subtext1))) + (ctp-subtext0 (catppuccin-get-color 'subtext0) (catppuccin-quantize-color (catppuccin-get-color 'subtext0))) + (ctp-overlay2 (catppuccin-get-color 'overlay2) (catppuccin-quantize-color (catppuccin-get-color 'overlay2))) + (ctp-overlay1 (catppuccin-get-color 'overlay1) (catppuccin-quantize-color (catppuccin-get-color 'overlay1))) + (ctp-overlay0 (catppuccin-get-color 'overlay0) (catppuccin-quantize-color (catppuccin-get-color 'overlay0))) + (ctp-surface2 (catppuccin-get-color 'surface2) (catppuccin-quantize-color (catppuccin-get-color 'surface2))) + (ctp-surface1 (catppuccin-get-color 'surface1) (catppuccin-quantize-color (catppuccin-get-color 'surface1))) + (ctp-surface0 (catppuccin-get-color 'surface0) (catppuccin-quantize-color (catppuccin-get-color 'surface0))) + (ctp-base (catppuccin-get-color 'base) (catppuccin-quantize-color (catppuccin-get-color 'base))) + (ctp-mantle (catppuccin-get-color 'mantle) (catppuccin-quantize-color (catppuccin-get-color 'mantle))) + (ctp-crust (catppuccin-get-color 'crust) (catppuccin-quantize-color (catppuccin-get-color 'crust))) + + (ctp-current (if (eq catppuccin-flavor 'latte) + (catppuccin-darken (catppuccin-get-color 'base) 5) + (catppuccin-lighten (catppuccin-get-color 'base) 5)) + (catppuccin-quantize-color (if (eq catppuccin-flavor 'latte) + (catppuccin-darken (catppuccin-get-color 'base) 5) + (catppuccin-lighten (catppuccin-get-color 'base) 5)))))) + (faces '(;; default / basic faces + (cursor :background ,ctp-rosewater) ;; If you want to change this to a nicer color you can do so by swapping "ctp-rosewater" with another colour var like "ctp-red" + (default :background ,ctp-base :foreground ,ctp-text) + (default-italic :slant italic) + (hl-todo :foreground ,ctp-peach) + (error :foreground ,ctp-red) + (ffap :foreground ,undef) + (fringe :background ,ctp-base :foreground ,ctp-surface1) + (header-line :inherit 'mode-line) + (highlight :foreground ,ctp-text :background ,ctp-current) + (hl-line :background ,ctp-current :extend t) + (info-quoted-name :foreground ,undef) + (info-string :foreground ,ctp-green) + (lazy-highlight :foreground ,ctp-subtext1 :background ,ctp-surface1) + (link :foreground ,ctp-lavender :underline t) + (link-unvisited :foreground ,ctp-blue :underline t) + (linum :foreground ,ctp-surface1 :background ,ctp-base) + (line-number :foreground ,ctp-surface1 :background ,ctp-base) + (line-number-current-line :inherit line-number :foreground ,ctp-lavender) + (match :background ,ctp-red :foreground ,ctp-mantle) + (menu :background ,ctp-current :inverse-video nil :foreground ,ctp-text) + (minibuffer-prompt :weight normal :foreground ,ctp-subtext0) + (mode-line :background ,ctp-mantle nil :foreground ,ctp-text) + (mode-line-inactive + :background ,ctp-crust :inverse-video nil :foreground ,ctp-overlay0) + (read-multiple-choice-face :inherit completions-first-difference) + (region :background ,ctp-surface0 :extend t) + (shadow :foreground ,ctp-overlay0) + (success :foreground ,ctp-green) + (warning :foreground ,ctp-yellow) + (tooltip :foreground ,ctp-overlay2 :background ,ctp-surface0) + (trailing-whitespace :inherit warning) + (window-divider :foreground ,ctp-mantle) + (vertical-border :foreground ,ctp-mantle) + + ;;tty menu + (tty-menu-enabled-face :foreground ,ctp-text :inverse-video nil :background ,ctp-current) + (tty-menu-disabled-face :background ,ctp-crust :inverse-video nil :foreground ,ctp-overlay0) + (tty-menu-selected-face :foreground ,ctp-text :background ,ctp-surface1) + + ;; solaire-mode + (solaire-default-face :background ,ctp-mantle :foreground ,ctp-text) + (solaire-fringe-face :background ,ctp-mantle :foreground ,ctp-surface1) + (solaire-line-number-face :foreground ,ctp-surface1 :background ,ctp-mantle) + (solaire-mode-line-face :background ,ctp-crust nil :foreground ,ctp-text) + (solaire-mode-line-inactive-face + :background ,ctp-crust :inverse-video nil :foreground ,ctp-subtext1) + (solaire-header-line-face :inherit 'solaire-mode-line-face) + + ;; evil + (evil-ex-lazy-highlight :inherit lazy-highlight) + (evil-ex-substitute-matches :foreground ,ctp-red :underline t) + (evil-ex-substitute-replacement :foreground ,ctp-green :underline t) + + ;; syntax / font-lock + (font-lock-bracket-face :foreground ,ctp-overlay2) + (font-lock-builtin-face :foreground ,ctp-red) + (font-lock-comment-face ,@(if catppuccin-italic-comments + '(:inherit (shadow italic)) + '(:inherit shadow))) + (font-lock-comment-delimiter-face :inherit shadow) + (font-lock-constant-face :foreground ,ctp-peach) + (font-lock-delimiter-face :foreground ,ctp-overlay2) + (font-lock-doc-face :inherit font-lock-comment-face) + (font-lock-escape-face :foreground ,ctp-pink) + (font-lock-function-call-face :foreground ,ctp-blue) + (font-lock-function-name-face :foreground ,ctp-blue) + (font-lock-keyword-face :foreground ,ctp-mauve) + (font-lock-negation-char-face :foreground ,ctp-sky) + (font-lock-number-face :foreground ,ctp-peach) + (font-lock-operator-face :foreground ,ctp-sky) + (font-lock-preprocessor-face :foreground ,ctp-yellow) + (font-lock-reference-face :inherit font-lock-constant-face) ;; obsolete + (font-lock-regexp-grouping-backslash :foreground ,undef) + (font-lock-regexp-grouping-construct :foreground ,undef) + (font-lock-string-face :foreground ,ctp-green) + (font-lock-type-face :foreground ,ctp-yellow) + (font-lock-variable-name-face :foreground ,ctp-text ,@(when catppuccin-italic-variables + '(:inherit italic))) + (font-lock-variable-use-face :foreground ,ctp-text ,@(when catppuccin-italic-variables + '(:inherit italic))) + (font-lock-warning-face :inherit warning) + ;; auto-complete + (ac-completion-face :underline t :foreground ,undef) + ;; avy + (avy-background-face :foreground ,ctp-text :background ,ctp-base) + (avy-goto-char-timer-face :foreground ,ctp-blue :background ,ctp-surface0) + (avy-lead-face :foreground ,ctp-base :background ,ctp-mauve) + (avy-lead-face-0 :foreground ,ctp-base :background ,ctp-yellow) + (avy-lead-face-1 :foreground ,ctp-base :background ,ctp-overlay0) + (avy-lead-face-2 :foreground ,ctp-base :background ,ctp-sky) + ;; company + ;; TODO: find undef'ed faces + (company-echo-common :foreground ,ctp-base :background ,ctp-text) + (company-preview :background ,ctp-current :foreground ,undef) + (company-preview-common :inherit company-preview + :foreground ,ctp-green) + (company-preview-search :inherit company-preview + :foreground ,undef) + (company-scrollbar-bg :background ,ctp-surface0) + (company-scrollbar-fg :foreground ,undef) + (company-tooltip :inherit tooltip) + (company-tooltip-search :foreground ,undef + :underline t) + (company-tooltip-search-selection :background ,undef + :foreground ,ctp-base) + (company-tooltip-selection :inherit match) + (company-tooltip-mouse :background ,ctp-base) + (company-tooltip-common :foreground ,ctp-text :weight bold) + ;;(company-tooltip-common-selection :inherit company-tooltip-common) + (company-tooltip-annotation :foreground ,ctp-green) + (company-tooltip-annotation-selection :foreground ,ctp-mauve) + ;; completions (minibuffer.el) + (completions-annotations :inherit font-lock-comment-face) + (completions-common-part :foreground ,ctp-sky) + (completions-first-difference :foreground ,ctp-text) + ;; diff-hl + (diff-hl-change :foreground ,ctp-blue :background ,ctp-blue) + (diff-hl-delete :foreground ,ctp-red :background ,ctp-red) + (diff-hl-insert :foreground ,ctp-green :background ,ctp-green) + ;; diff-refine + (diff-refine-removed :weight bold) + (diff-refine-added :weight bold) + ;; git-gutter + (git-gutter:modified :foreground ,ctp-peach) + (git-gutter:deleted :foreground ,ctp-red) + (git-gutter:added :foreground ,ctp-green) + (git-gutter:seperator :inherit font-lock-comment-face) + (git-gutter:unchanged :foreground ,ctp-surface0) + ;; git-gutter fringe + (git-gutter-fr:modified :inherit git-gutter:modified) + (git-gutter-fr:deleted :inherit git-gutter:deleted) + (git-gutter-fr:added :inherit git-gutter:added) + ;; dired + (dired-flagged :foreground ,ctp-maroon :weight bold) + (dired-marked :weight bold) + (dired-mark :inherit dired-marked) + (dired-header :foreground ,ctp-sapphire :weight bold) + (dired-ignored :inherit font-lock-comment-face) + (dired-special :foreground ,ctp-yellow) + (dired-symlink :foreground ,ctp-pink) + (dired-warning :inherit warning) + (dired-directory :foreground ,ctp-blue) + (dired-perm-write :foreground ,ctp-green) + (dired-broken-symlink :foreground ,ctp-text :background ,ctp-red) + ;; dired+ (kept for legacy support) + ;; TODO (maybe): Show deprecation warning + ;; This doesn't make sense to keep around + (diredp-compressed-file-name :inherit dired-file-name) + (diredp-compressed-file-suffix :foreground ,ctp-green) + (diredp-date-time :foreground ,ctp-subtext0) + (diredp-deletion-file-name :inherit dired-flagged) + (diredp-deletion :inherit dired-flagged) + (diredp-dir-heading :inherit dired-header) + (diredp-dir-name :inherit dired-directory) + (diredp-dir-priv :inherit dired-directory) + (diredp-executable-tag :foreground ,ctp-red) + (diredp-file-suffix :inherit dired-file-name) + (diredp-flag-mark-line :inherit dired-marked) + (diredp-flag-mark :inherit dired-mark) + (diredp-ignored-file-name :foreground ,ctp-text) + (diredp-mode-line-flagged :foreground ,undef) + (diredp-mode-line-marked :foreground ,undef) + (diredp-no-priv :foreground ,ctp-surface2) + (diredp-number :foreground ,ctp-yellow) + (diredp-other-priv :inherit diredp-exec-priv) + (diredp-rare-priv :inherit diredp-exec-priv) + (diredp-read-priv :foreground ,ctp-sky) + (diredp-write-priv :inherit dired-perm-write) + (diredp-exec-priv :foreground ,ctp-red) + (diredp-symlink :inherit dired-symlink) + (diredp-link-priv :inherit dired-symlink) + (diredp-autofile-name :foreground ,undef) + (diredp-tagged-autofile-name :foreground ,undef) + ;; diredfl (more modernly published dired+) + (diredfl-file-name :inherit dired-file-name) + (diredfl-compressed-file-name :inherit dired-file-name) + (diredfl-compressed-file-suffix :foreground ,ctp-green) + (diredfl-date-time :foreground ,ctp-subtext0) + (diredfl-deletion-file-name :inherit dired-flagged) + (diredfl-deletion :inherit dired-flagged) + (diredfl-dir-heading :inherit dired-header) + (diredfl-dir-name :inherit dired-directory) + (diredfl-dir-priv :inherit dired-directory) + (diredfl-executable-tag :foreground ,ctp-red) + (diredfl-file-suffix :inherit dired-file-name) + (diredfl-flag-mark-line :inherit dired-marked) + (diredfl-flag-mark :inherit dired-mark) + (diredfl-ignored-file-name :foreground ,ctp-text) + (diredfl-mode-line-flagged :foreground ,undef) + (diredfl-mode-line-marked :foreground ,undef) + (diredfl-no-priv :foreground ,ctp-surface2) + (diredfl-number :foreground ,ctp-yellow) + (diredfl-other-priv :inherit diredfl-exec-priv) + (diredfl-rare-priv :inherit diredfl-exec-priv) + (diredfl-read-priv :foreground ,ctp-sky) + (diredfl-write-priv :inherit dired-perm-write) + (diredfl-exec-priv :foreground ,ctp-red) + (diredfl-symlink :inherit dired-symlink) + (diredfl-link-priv :inherit dired-symlink) + (diredfl-autofile-name :foreground ,undef) + (diredfl-tagged-autofile-name :foreground ,undef) + ;; eldoc-box + (eldoc-box-border :background ,ctp-current) + (eldoc-box-body :background ,ctp-current) + ;; elfeed + (elfeed-search-date-face :foreground ,ctp-subtext0) + (elfeed-search-title-face :foreground ,ctp-text) + (elfeed-search-unread-title-face :foreground ,ctp-red) + (elfeed-search-feed-face :foreground ,ctp-text :weight bold) + (elfeed-search-tag-face :foreground ,ctp-green) + (elfeed-search-last-update-face :weight bold) + (elfeed-search-unread-count-face :foreground ,ctp-pink) + (elfeed-search-filter-face :foreground ,ctp-green :weight bold) + (elfeed-log-date-face :inherit elfeed-search-date-face) + (elfeed-log-error-level-face :inherit error) + (elfeed-log-warn-level-face :foreground ,ctp-peach) + (elfeed-log-info-level-face :weight bold) + (elfeed-log-debug-level-face :weight bold) + ;; elpher + (elpher-gemini-heading1 :weight bold :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (elpher-gemini-heading2 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (elpher-gemini-heading3 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (elpher-gemini-preformatted :inherit fixed-pitch + :foreground ,ctp-green) + ;; enh-ruby + (enh-ruby-heredoc-delimiter-face :foreground ,ctp-yellow) + (enh-ruby-op-face :inherit haskell-operator-face) + (enh-ruby-regexp-delimiter-face :foreground ,ctp-yellow) + (enh-ruby-string-delimiter-face :foreground ,ctp-yellow) + ;; flyspell + (flyspell-duplicate :underline (:style wave :color ,ctp-teal)) + (flyspell-incorrect :underline (:style wave :color ,ctp-maroon)) + ;; font-latex + (font-latex-bold-face :foreground ,ctp-red :weight bold) + (font-latex-italic-face :foreground ,ctp-yellow :slant italic) + (font-latex-match-reference-keywords :foreground ,ctp-teal) + (font-latex-match-variable-keywords :foreground ,ctp-text) + (font-latex-string-face :foreground ,ctp-green) + (font-latex-warning-face :inherit warning) + ;; TODO: More latex faces to be themed, especially sections + ;; gemini + (gemini-heading-face-1 :weight bold :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (gemini-heading-face-2 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (gemini-heading-face-3 :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (gemini-heading-face-rest :foreground ,ctp-blue) + (gemini-quote-face :foreground ,ctp-green) + ;; go-test + (go-test--ok-face :inherit success) + (go-test--error-face :inherit error) + (go-test--warning-face :inherit warning) + (go-test--pointer-face :foreground ,ctp-pink) + (go-test--standard-face :foreground ,ctp-teal) + ;; haskell-mode + (haskell-operator-face :foreground ,ctp-sky) + (haskell-constructor-face :foreground ,ctp-mauve) + ;; helm + ;; TODO: Theme helm + (helm-bookmark-w3m :foreground ,undef) + (helm-buffer-not-saved :foreground ,undef) + (helm-buffer-process :foreground ,undef) + (helm-buffer-saved-out :foreground ,undef) + (helm-buffer-size :foreground ,undef) + (helm-candidate-number :foreground ,undef) + (helm-ff-directory :foreground ,undef) + (helm-ff-dotted-directory :foreground ,undef) + (helm-ff-executable :foreground ,undef) + (helm-ff-file :foreground ,undef) + (helm-ff-invalid-symlink :foreground ,undef) + (helm-ff-prefix :foreground ,undef) + (helm-ff-symlink :foreground ,undef) + (helm-grep-cmd-line :foreground ,undef) + (helm-grep-file :foreground ,undef) + (helm-grep-finish :foreground ,undef) + (helm-grep-lineno :foreground ,undef) + (helm-grep-match :inherit match) + (helm-grep-running :foreground ,undef) + (helm-header :foreground ,undef) + (helm-moccur-buffer :foreground ,undef) + (helm-selection :underline nil) + (helm-selection-line) + (helm-separator :foreground ,undef) + (helm-source-go-package-godoc-description :foreground ,undef) + (helm-source-header :foreground ,undef) + (helm-time-zone-current :foreground ,undef) + (helm-time-zone-home :foreground ,undef) + (helm-visible-mark :foreground ,undef) + ;; consult + (consult-async-split :foreground ,ctp-mauve) + ;; corfu + (corfu-default :background ,ctp-surface0) + (corfu-current :background ,ctp-surface1) + (corfu-bar :background ,ctp-subtext0) + (corfu-border :inherit corfu-default) + (corfu-annotations :inherit font-lock-comment-face) + (corfu-deprecated :strike-through t) + ;; highlight-indentation minor mode + (highlight-indentation-face :background ,ctp-mantle) + ;; icicle + ;; TODO: Verify this looks proper + (icicle-whitespace-highlight :background ,ctp-text) + (icicle-special-candidate :foreground ,ctp-subtext1) + (icicle-extra-candidate :foreground ,ctp-subtext1) + (icicle-search-main-regexp-others :foreground ,ctp-text) + (icicle-search-current-input :foreground ,ctp-pink) + (icicle-search-context-level-8 :foreground ,ctp-blue) + (icicle-search-context-level-7 :foreground ,ctp-blue) + (icicle-search-context-level-6 :foreground ,ctp-blue) + (icicle-search-context-level-5 :foreground ,ctp-blue) + (icicle-search-context-level-4 :foreground ,ctp-blue) + (icicle-search-context-level-3 :foreground ,ctp-blue) + (icicle-search-context-level-2 :foreground ,ctp-blue) + (icicle-search-context-level-1 :foreground ,ctp-blue) + (icicle-search-main-regexp-current :foreground ,ctp-text) + (icicle-saved-candidate :foreground ,ctp-text) + (icicle-proxy-candidate :foreground ,ctp-text) + (icicle-mustmatch-completion :foreground ,ctp-mauve) + (icicle-multi-command-completion :foreground ,ctp-subtext0) + (icicle-msg-emphasis :foreground ,ctp-green) + (icicle-mode-line-help :foreground ,ctp-overlay2) + (icicle-match-highlight-minibuffer :foreground ,ctp-mauve) + (icicle-match-highlight-Completions :foreground ,ctp-green) + (icicle-key-complete-menu-local :foreground ,ctp-text) + (icicle-key-complete-menu :foreground ,ctp-text) + (icicle-input-completion-fail-lax :foreground ,ctp-maroon) + (icicle-input-completion-fail :foreground ,ctp-maroon) + (icicle-historical-candidate-other :foreground ,ctp-text) + (icicle-historical-candidate :foreground ,ctp-text) + (icicle-current-candidate-highlight :foreground ,ctp-pink) + (icicle-Completions-instruction-2 :foreground ,ctp-overlay2) + (icicle-Completions-instruction-1 :foreground ,ctp-overlay2) + (icicle-completion :foreground ,ctp-text) + (icicle-complete-input :foreground ,ctp-peach) + (icicle-common-match-highlight-Completions :foreground ,ctp-mauve) + (icicle-candidate-part :foreground ,ctp-text) + (icicle-annotation :foreground ,ctp-overlay2) + ;; icomplete + (icompletep-determined :foreground ,ctp-blue) + ;; ido + (ido-first-match :foreground ,ctp-green) + (ido-only-match :foreground ,ctp-green) + (ido-subdir :inherit dired-directory) + (ido-virtual :foreground ,ctp-sapphire) + (ido-incomplete-regexp :inherit warning) + (ido-indicator :foreground ,ctp-text :weight bold) + ;; ivy + (ivy-current-match :background ,ctp-red :foreground ,ctp-mantle :bold t) + (ivy-action :background unspecified :foreground ,ctp-lavender) + (ivy-grep-line-number :background unspecified :foreground ,ctp-teal) + (ivy-minibuffer-match-face-1 :background unspecified :foreground ,ctp-blue :bold t) + (ivy-minibuffer-match-face-2 :background unspecified :foreground ,ctp-sapphire) + (ivy-minibuffer-match-face-3 :background unspecified :foreground ,ctp-lavender) + (ivy-minibuffer-match-face-4 :background unspecified :foreground ,ctp-mauve) + (ivy-minibuffer-match-highlight :foreground ,ctp-blue) + (ivy-grep-info :foreground ,ctp-blue) + (ivy-grep-line-number :foreground ,ctp-mauve) + (ivy-confirm-face :foreground ,ctp-green) + (ivy-remote :foreground ,ctp-mauve) + (ivy-match-required-face :foreground ,ctp-red) + ;; isearch + (isearch :inherit match :weight bold) + (isearch-fail :inherit error) + ;; jde-java + (jde-java-font-lock-constant-face :inherit font-lock-constant-face) + (jde-java-font-lock-modifier-face :inherit font-lock-keyword-face) + (jde-java-font-lock-number-face :foreground ,ctp-text) + (jde-java-font-lock-package-face :foreground ,ctp-text) + (jde-java-font-lock-private-face :inherit font-lock-keyword-face) + (jde-java-font-lock-public-face :inherit font-lock-keyword-face) + ;; js2-mode + (js2-external-variable :foreground ,ctp-red) + (js2-function-param :inherit tree-sitter-hl-face:variable.parameter) + (js2-jsdoc-html-tag-delimiter :inherit web-mode-html-tag-bracket-face) + (js2-jsdoc-html-tag-name :inherit web-mode-html-tag-face) + (js2-jsdoc-value :foreground ,ctp-text) + (js2-private-function-call :inherit tree-sitter-hl-face:function.call) + (js2-private-member :inherit font-lock-variable-name-face) + ;; js3-mode + (js3-error-face :inherit error) + (js3-external-variable-face :foreground ,ctp-text) + (js3-function-param-face :inherit js2-function-param) + (js3-instance-member-face :inherit font-lock-variable-name-face) + (js3-jsdoc-tag-face :inherit web-mode-html-tag-face) + (js3-warning-face :inherit warning) + ;; lsp + (lsp-ui-peek-peek :background ,ctp-mantle) + (lsp-ui-peek-list :background ,ctp-mantle) + (lsp-ui-peek-filename :foreground ,ctp-text) + (lsp-ui-peek-line-number :foreground ,ctp-surface1) + (lsp-ui-peek-highlight :inherit highlight :distant-foreground ,ctp-base) + (lsp-ui-peek-header :background ,ctp-mantle :foreground ,ctp-blue, :weight bold) + (lsp-ui-peek-footer :inherit lsp-ui-peek-header) + (lsp-ui-peek-selection :inherit match) + (lsp-ui-sideline-symbol :foreground ,ctp-subtext0) + (lsp-ui-sideline-current-symbol :foreground ,ctp-text :weight bold) + (lsp-ui-sideline-code-action :foreground ,ctp-yellow) + (lsp-ui-sideline-symbol-info :slant italic :height 0.99) + (lsp-ui-doc-background :background ,ctp-base) + (lsp-ui-doc-header :foreground ,ctp-sapphire) + ;; magit + (magit-branch-local :foreground ,ctp-teal) + (magit-branch-remote :foreground ,ctp-green) + (magit-tag :foreground ,ctp-peach) + (magit-section-heading :foreground ,ctp-blue :weight bold) + (magit-section-highlight :background ,ctp-surface0 :extend t) + (magit-diff-context-highlight :background ,ctp-surface0 + :foreground ,ctp-text + :extend t) + (magit-diff-revision-summary :foreground ,ctp-blue + :weight bold) + (magit-diff-revision-summary-highlight :foreground ,ctp-blue + :weight bold) + (magit-diff-added :foreground ,ctp-green + :extend t) + (magit-diff-added-highlight :background ,ctp-surface1 + :foreground ,ctp-green + :extend t) + (magit-diff-removed :foreground ,ctp-red + :extend t) + (magit-diff-removed-highlight :background ,ctp-surface1 + :foreground ,ctp-red + :extend t) + (magit-diff-file-heading :foreground ,ctp-text) + (magit-diff-file-heading-highlight :inherit magit-section-highlight) + (magit-diffstat-added :foreground ,ctp-green) + (magit-diffstat-removed :foreground ,ctp-red) + (magit-hash :foreground ,ctp-subtext0) + (diff-header :foreground ,ctp-blue) + (diff-hunk-header :foreground ,ctp-text :background ,ctp-surface2) + (magit-diff-hunk-heading :inherit diff-hunk-header) + (magit-diff-hunk-heading-highlight :inherit diff-hunk-header :weight bold) + (magit-item-highlight :background ,undef) + (magit-log-author :foreground ,ctp-subtext0) + (magit-process-ng :foreground ,ctp-peach :weight bold) + (magit-process-ok :foreground ,ctp-green :weight bold) + ;; markdown + (markdown-blockquote-face :foreground ,ctp-green) + (markdown-code-face :foreground ,ctp-text) + (markdown-footnote-face :foreground ,ctp-yellow) + (markdown-header-face :weight normal) + (markdown-header-face-1 + :foreground ,ctp-red + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (markdown-header-face-2 + :foreground ,ctp-peach + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (markdown-header-face-3 + :foreground ,ctp-yellow + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (markdown-header-face-4 :foreground ,ctp-green) + (markdown-header-face-5 :foreground ,ctp-sapphire) + (markdown-header-face-6 :foreground ,ctp-lavender) + (markdown-inline-code-face :foreground ,ctp-green) + (markdown-plain-url-face :inherit link) + (markdown-pre-face :foreground ,ctp-green) + (markdown-table-face :foreground ,ctp-text) + (markdown-list-face :foreground ,ctp-mauve) + (markdown-language-keyword-face :inherit font-lock-comment-face) + ;; message + (message-header-to :foreground ,ctp-text :weight bold) + (message-header-cc :foreground ,ctp-text :weight bold) + (message-header-subject :foreground ,ctp-blue) + (message-header-newsgroups :foreground ,ctp-mauve) + (message-header-other :foreground ,ctp-mauve) + (message-header-name :foreground ,ctp-green) + (message-header-xheader :foreground ,ctp-lavender) + (message-separator :inherit font-lock-comment-face) + (message-cited-text :foreground ,ctp-green) + (message-cited-text-1 :foreground ,ctp-yellow) + (message-cited-text-2 :inherit font-lock-comment-face) + (message-cited-text-3 :inherit font-lock-comment-face) + (message-cited-text-4 :inherit font-lock-comment-face) + (message-mml :foreground ,ctp-green :weight normal) + ;; mini-modeline + (mini-modeline-mode-line :inherit mode-line :height 0.1 :box nil) + ;; mu4e + (mu4e-unread-face :foreground ,ctp-maroon) + (mu4e-view-url-number-face :foreground ,ctp-yellow) + (mu4e-highlight-face :background ,ctp-base + :weight bold + :extend t) + (mu4e-header-highlight-face :background ,ctp-current + :foreground ,ctp-text + :underline nil :weight bold + :extend t) + (mu4e-header-key-face :inherit message-mml) + (mu4e-header-marks-face :foreground ,ctp-mauve) + (mu4e-cited-1-face :foreground ,ctp-green) + (mu4e-cited-2-face :foreground ,ctp-yellow) + (mu4e-cited-3-face :inherit font-lock-comment-face) + (mu4e-cited-4-face :inherit font-lock-comment-face) + (mu4e-cited-5-face :inherit font-lock-comment-face) + ;; neotree + (neo-banner-face :foreground ,ctp-blue :weight bold) + ;;(neo-button-face :underline nil) + (neo-dir-link-face :inherit link) + (neo-expand-btn-face :foreground ,ctp-text) + (neo-file-link-face :inherit link) + (neo-header-face :weight bold) + (neo-root-dir-face :foreground ,ctp-blue :weight bold) + (neo-vc-added-face :foreground ,ctp-green) + (neo-vc-conflict-face :inherit error) + (neo-vc-default-face :inherit default) + (neo-vc-edited-face :foreground ,ctp-peach) + (neo-vc-ignored-face :inherit font-lock-comment-face) + (neo-vc-missing-face :foreground ,ctp-maroon) + (neo-vc-needs-merge-face :foreground ,ctp-maroon + :weight bold) + ;;(neo-vc-needs-update-face :underline t) + (neo-vc-removed-face :foreground ,ctp-red) + (neo-vc-unlocked-changes-face :foreground ,ctp-red) + ;;(neo-vc-unregistered-face nil) + (neo-vc-up-to-date-face :foreground ,ctp-text) + (neo-vc-user-face :foreground ,ctp-mauve) + ;; orderless + (orderless-match-face-0 :foreground ,ctp-blue :weight bold) + (orderless-match-face-1 :foreground ,ctp-mauve :weight bold) + (orderless-match-face-2 :foreground ,ctp-teal :weight bold) + (orderless-match-face-3 :foreground ,ctp-peach :weight bold) + ;; org + (org-agenda-date :foreground ,ctp-subtext0 :weight normal) + (org-agenda-date-today :foreground ,ctp-subtext0 :weight bold) + (org-agenda-date-weekend :inherit org-agenda-date) + (org-agenda-date-weekend-today :inherit org-agenda-date :weight bold) + (org-agenda-dimmed-todo-face :inherit font-lock-comment-face) + (org-agenda-done :foreground ,ctp-green) + (org-agenda-structure :foreground ,ctp-subtext0) + (org-block :extend t :background ,ctp-mantle :foreground ,ctp-green) + (org-block-begin-line :inherit org-meta-line :extend t :background ,ctp-mantle) + (org-block-end-line :inherit org-block-begin-line :extend t :background ,ctp-mantle) + (org-code :foreground ,ctp-green) + (org-column :background ,ctp-surface0) + (org-column-title :inherit org-column :weight bold :underline t) + (org-date :inherit org-agenda-date) + (org-document-info :foreground ,ctp-sapphire) + (org-document-info-keyword :inherit font-lock-comment-face) + (org-document-title :weight bold :foreground ,ctp-blue + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-doc-title))) + (org-done :inherit font-lock-comment-face) + (org-ellipsis :inherit font-lock-comment-face) + (org-footnote :foreground ,ctp-mauve) + (org-formula :foreground ,ctp-pink) + (org-headline-done :inherit org-done) + (org-hide :foreground ,ctp-crust :background ,ctp-base) + (org-level-1 :inherit bold :foreground ,ctp-red + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-1))) + (org-level-2 :inherit bold :foreground ,ctp-peach + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-2))) + (org-level-3 :weight normal :foreground ,ctp-yellow + ,@(when catppuccin-enlarge-headings + (list :height catppuccin-height-title-3))) + (org-level-4 :weight normal :foreground ,ctp-green) + (org-level-5 :weight normal :foreground ,ctp-sapphire) + (org-level-6 :weight normal :foreground ,ctp-lavender) + (org-level-7 :weight normal :foreground ,ctp-mauve) + (org-level-8 :weight normal :foreground ,ctp-maroon) + (org-link :inherit link) + (org-meta-line :inherit font-lock-comment-face) + (org-priority :foreground ,ctp-yellow) + (org-quote :inherit markdown-blockquote-face) + (org-scheduled :foreground ,ctp-green) + (org-scheduled-previously :foreground ,ctp-teal) + (org-scheduled-today :foreground ,ctp-green :weight bold) + (org-sexp-date :foreground ,ctp-subtext0) + (org-special-keyword :inherit font-lock-keyword-face) + (org-table :foreground ,ctp-overlay0) + (org-tag :foreground ,ctp-mauve :weight bold) + (org-todo :foreground ,ctp-peach) + (org-upcoming-deadline :foreground ,ctp-maroon) + (org-verbatim :inherit org-quote) + (org-warning :inherit warning) + ;; calfw + (cfw:face-title :foreground ,ctp-blue :weight bold :height 1.5) + (cfw:face-header :foreground ,ctp-text) + (cfw:face-sunday :foreground ,ctp-overlay1) + (cfw:face-saturday :foreground ,ctp-overlay1) + (cfw:face-holiday :foreground ,ctp-green) + (cfw:face-grid :foreground ,ctp-surface0) + (cfw:face-default-content :foreground ,ctp-peach) + (cfw:face-periods :foreground ,undef) + (cfw:face-day-title :foreground ,ctp-subtext0) + (cfw:face-default-day :foreground ,ctp-text) + (cfw:face-annotation :foreground ,undef) + (cfw:face-disable :foreground ,ctp-surface1) + (cfw:face-today-title :foreground ,ctp-peach) + (cfw:face-today :inherit cfw:face-today-title) + (cfw:face-select :background ,ctp-surface1 :foreground ,ctp-text) + (cfw:face-toolbar :background ,ctp-base) + (cfw:face-toolbar-button-off :foreground ,ctp-lavender) + (cfw:face-toolbar-button-on :foreground ,ctp-mauve) + ;; outline + (outline-1 :foreground ,ctp-blue) + (outline-2 :foreground ,ctp-blue) + (outline-3 :foreground ,ctp-blue) + (outline-4 :foreground ,ctp-blue) + (outline-5 :foreground ,ctp-blue) + (outline-6 :foreground ,ctp-blue) + ;; perspective + (persp-selected-face :weight bold :foreground ,ctp-pink) + ;; rainbow-delimiters + (rainbow-delimiters-depth-1-face :foreground ,ctp-red) + (rainbow-delimiters-depth-2-face :foreground ,ctp-peach) + (rainbow-delimiters-depth-3-face :foreground ,ctp-yellow) + (rainbow-delimiters-depth-4-face :foreground ,ctp-green) + (rainbow-delimiters-depth-5-face :foreground ,ctp-sapphire) + (rainbow-delimiters-depth-6-face :foreground ,ctp-lavender) + (rainbow-delimiters-depth-7-face :foreground ,ctp-mauve) + (rainbow-delimiters-depth-8-face :foreground ,ctp-maroon) + (rainbow-delimiters-unmatched-face :inherit warning) + ;; rst (reStructuredText) + (rst-level-1 :foreground ,ctp-red) + (rst-level-2 :foreground ,ctp-peach) + (rst-level-3 :foreground ,ctp-yellow) + (rst-level-4 :foreground ,ctp-green) + (rst-level-5 :foreground ,ctp-sapphire) + (rst-level-6 :foreground ,ctp-lavender) + (rst-level-7 :foreground ,ctp-mauve) + (rst-level-8 :foreground ,ctp-maroon) + ;; show-paren + (show-paren-match :foreground ,ctp-pink + :weight bold + ,@(when catppuccin-highlight-matches + (list :background ctp-surface0))) + (show-paren-match-expression :inherit match) + (show-paren-mismatch :inherit warning) + ;; slime + (slime-repl-inputed-output-face :foreground ,ctp-mauve) + ;; swiper + (swiper-background-match-face-2 :background ,ctp-surface1 :foreground ,ctp-text) + ;; spam + (spam :inherit gnus-summary-normal-read :foreground ,ctp-peach + :strike-through t :slant oblique) + ;; tab-bar & tab-line (since Emacs 27.1) + (tab-bar :foreground ,ctp-subtext0 :background ,ctp-base) + (tab-bar-tab :foreground ,ctp-text :background ,ctp-current) + (tab-bar-tab-inactive :foreground ,ctp-subtext0 :background ,ctp-base) + (tab-line :inherit tab-bar) + (tab-line-tab :inherit tab-bar-tab) + (tab-line-tab-inactive :inherit tab-bar-tab-inactive) + (tab-line-tab-current :inherit tab-line-tab) + (tab-line-highlight :background ,ctp-surface1) + ;; centaur-tabs + (centaur-tabs-default :foreground ,ctp-subtext0, :background ,ctp-base) + (centaur-tabs-unselected :foreground ,ctp-subtext0 :background ,ctp-mantle) + (centaur-tabs-selected :foreground ,ctp-text :background ,ctp-current) + (centaur-tabs-unselected-modified :foreground ,ctp-maroon :background ,ctp-mantle) + (centaur-tabs-selected-modified :foreground ,ctp-red :background ,ctp-current) + (centaur-tabs-close-unselected :foreground ,ctp-subtext0 :background ,ctp-mantle) + (centaur-tabs-close-selected :foreground ,ctp-text :background ,ctp-current) + (centaur-tabs-name-mouse-face :foreground ,ctp-text :background ,ctp-surface1) + (centaur-tabs-close-mouse-face :foreground ,ctp-red :background ,ctp-surface1) + (centaur-tabs-modified-marker-selected :inherit centaur-tabs-selected-modified) + (centaur-tabs-modified-marker-unselected :inherit centaur-tabs-unselected-modified) + ;; term + (term :foreground ,ctp-text :background ,ctp-base) + (term-color-black ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-subtext1 :background ctp-subtext1) + (list :foreground ctp-surface1 :background ctp-surface1))) + (term-color-black-white ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-subtext0 :background ctp-subtext0) + (list :foreground ctp-surface2 :background ctp-surface2))) + (term-color-red :foreground ,ctp-red :background ,ctp-red) + (term-color-bright-red :foreground ,ctp-red :background ,ctp-red) + (term-color-green :foreground ,ctp-green :background ,ctp-green) + (term-color-bright-green :foreground ,ctp-green :background ,ctp-green) + (term-color-yellow :foreground ,ctp-yellow :background ,ctp-yellow) + (term-color-bright-yellow :foreground ,ctp-yellow :background ,ctp-yellow) + (term-color-blue :foreground ,ctp-blue :background ,ctp-blue) + (term-color-bright-blue :foreground ,ctp-blue :background ,ctp-blue) + (term-color-magenta :foreground ,ctp-pink :background ,ctp-pink) + (term-color-bright-magenta :foreground ,ctp-pink :background ,ctp-pink) + (term-color-cyan :foreground ,ctp-teal :background ,ctp-teal) + (term-color-bright-cyan :foreground ,ctp-teal :background ,ctp-teal) + (term-color-white ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-surface2 :background ctp-surface2) + (list :foreground ctp-subtext1 :background ctp-subtext1))) + (term-color-bright-white ,@(if (eq catppuccin-flavor 'latte) + (list :foreground ctp-surface1 :background ctp-surface1) + (list :foreground ctp-subtext0 :background ctp-subtext0))) + ;; tree-sitter + (tree-sitter-hl-face:attribute :inherit font-lock-constant-face) + (tree-sitter-hl-face:comment :inherit font-lock-comment-face) + (tree-sitter-hl-face:constant :inherit font-lock-constant-face) + (tree-sitter-hl-face:constant.builtin :inherit font-lock-builtin-face) + (tree-sitter-hl-face:constructor :inherit font-lock-constant-face) + (tree-sitter-hl-face:escape :foreground ,undef) + (tree-sitter-hl-face:function :inherit font-lock-function-name-face) + (tree-sitter-hl-face:function.builtin :inherit font-lock-builtin-face) + (tree-sitter-hl-face:function.call :inherit font-lock-function-name-face + :weight normal) + (tree-sitter-hl-face:function.macro :inherit font-lock-preprocessor-face) + (tree-sitter-hl-face:function.special :inherit font-lock-preprocessor-face) + (tree-sitter-hl-face:keyword :inherit font-lock-keyword-face) + (tree-sitter-hl-face:punctuation :foreground ,undef) + (tree-sitter-hl-face:punctuation.bracket :foreground ,ctp-text) + (tree-sitter-hl-face:punctuation.delimiter :foreground ,ctp-text) + (tree-sitter-hl-face:punctuation.special :foreground ,undef) + (tree-sitter-hl-face:string :inherit font-lock-string-face) + (tree-sitter-hl-face:string.special :foreground ,undef) + (tree-sitter-hl-face:tag :inherit font-lock-keyword-face) + (tree-sitter-hl-face:type :inherit font-lock-type-face) + (tree-sitter-hl-face:type.parameter :foreground ,ctp-sapphire) + (tree-sitter-hl-face:variable :inherit font-lock-variable-name-face) + (tree-sitter-hl-face:variable.parameter :foreground ,ctp-red) + ;; undo-tree + (undo-tree-visualizer-current-face :foreground ,ctp-peach) + (undo-tree-visualizer-default-face :foreground ,ctp-subtext0) + (undo-tree-visualizer-register-face :foreground ,ctp-mauve) + (undo-tree-visualizer-unmodified-face :foreground ,ctp-text) + ;; web-mode + (web-mode-builtin-face :inherit font-lock-builtin-face) + (web-mode-comment-face :inherit font-lock-comment-face) + (web-mode-constant-face :inherit font-lock-constant-face) + (web-mode-css-property-name-face :inherit font-lock-constant-face) + (web-mode-doctype-face :inherit font-lock-comment-face) + (web-mode-function-name-face :inherit font-lock-function-name-face) + (web-mode-html-attr-name-face :foreground ,ctp-blue) + (web-mode-html-attr-value-face :foreground ,ctp-green) + (web-mode-html-tag-face :foreground ,ctp-mauve) + (web-mode-keyword-face :inherit font-lock-keyword-face) + (web-mode-string-face :inherit font-lock-string-face) + (web-mode-type-face :inherit font-lock-type-face) + (web-mode-warning-face :inherit warning) + ;; which-func + (which-func :inherit font-lock-function-name-face) + ;; which-key + (which-key-key-face :inherit font-lock-builtin-face) + (which-key-command-description-face :inherit default) + (which-key-separator-face :inherit font-lock-comment-delimiter-face) + (which-key-local-map-description-face :foreground ,ctp-green) + ;; whitespace + (whitespace-big-indent :foreground ,ctp-peach) + (whitespace-empty :inherit warning) + (whitespace-hspace :background ,undef :foreground ,undef) + (whitespace-indentation :foreground ,ctp-surface0) + (whitespace-line :underline (:style wave :color ,ctp-mauve)) + (whitespace-newline :inherit font-lock-comment-face) + (whitespace-space :inherit font-lock-comment-face) + (whitespace-space-after-tab :inherit warning) + (whitespace-space-before-tab :inherit warning) + (whitespace-tab :inherit whitespace-newline) + (whitespace-trailing :inherit trailing-whitespace) + ;; yard-mode + (yard-tag-face :inherit font-lock-builtin-face) + (yard-directive-face :inherit font-lock-builtin-face) + ;; line-reminder + (line-reminder-modified-sign-face :foreground ,ctp-green) + ;; highlight-indent-guides + ;; (highlight-indent-guides-odd-face :background ,ctp-base) + ;; (highlight-indent-guides-even-face :background ,ctp-base) + (highlight-indent-guides-character-face :foreground ,ctp-surface0) + ;; (highlight-indent-guides-top-odd-face :background ,ctp-base) + ;; (highlight-indent-guides-top-even-face :background ,ctp-base) + (highlight-indent-guides-top-character-face :foreground ,ctp-pink) + ;; (highlight-indent-guides-stack-odd-face :background ,ctp-base) + ;; (highlight-indent-guides-stack-even-face :background ,ctp-base) + (highlight-indent-guides-stack-character-face :foreground ,ctp-flamingo) + ;; lui + (lui-button-face :foreground ,ctp-sky :underline t) + (lui-highlight-face :foreground ,ctp-sky) + (lui-time-stamp-face :foreground ,ctp-lavender :weight bold) + ;; circe + (circe-fool-face :foreground ,ctp-subtext1) + (circe-highlight-nick-face :foreground ,ctp-sky :weight bold) + (circe-prompt-face :foreground ,ctp-base + :background ,ctp-teal + :weight bold) + (circe-server-face :foreground ,ctp-blue :weight bold)))) + + (apply #'custom-theme-set-faces + 'catppuccin + (let* ((expand-with-func + (lambda (func spec) + (let (reduced-color-list) + (dolist (col colors reduced-color-list) + (push (list (car col) (funcall func col)) + reduced-color-list)) + (eval `(let ,reduced-color-list + (backquote ,spec)))))) + whole-theme) + (pcase-dolist (`(,face . ,spec) faces) + (push `(,face + ((((min-colors 16777216)) ; fully graphical envs + ,(funcall expand-with-func 'cadr spec)) + (t ; terminal with 256 colors + ,(funcall expand-with-func '(lambda (v) (cadr (cdr v))) spec)))) + whole-theme)) + whole-theme)) + + (apply #'custom-theme-set-variables + 'catppuccin + (let ((get-func + (pcase (display-color-cells) + ((pred (<= 16777216)) 'car) ; fully graphical envs + (_ 'cadr)))) ; terminal withs 256 colors + `((ansi-color-names-vector + [,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-subtext1 'ctp-surface1) colors)) + ,(funcall get-func (alist-get 'ctp-red colors)) + ,(funcall get-func (alist-get 'ctp-green colors)) + ,(funcall get-func (alist-get 'ctp-yellow colors)) + ,(funcall get-func (alist-get 'ctp-blue colors)) + ,(funcall get-func (alist-get 'ctp-pink colors)) + ,(funcall get-func (alist-get 'ctp-teal colors)) + ,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-surface2 'ctp-subtext1) colors))])) + `((rustic-ansi-faces + (vector + ,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-subtext1 'ctp-surface1) colors)) + ,(funcall get-func (alist-get 'ctp-red colors)) + ,(funcall get-func (alist-get 'ctp-green colors)) + ,(funcall get-func (alist-get 'ctp-yellow colors)) + ,(funcall get-func (alist-get 'ctp-blue colors)) + ,(funcall get-func (alist-get 'ctp-pink colors)) + ,(funcall get-func (alist-get 'ctp-teal colors)) + ,(funcall get-func (alist-get (if (eq catppuccin-flavor 'latte) 'ctp-surface2 'ctp-subtext1) colors)))))))) + + + + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'catppuccin) + +;; Unbind functions used for internal use +(fmakunbound 'catppuccin-quantize-color) +(fmakunbound 'catppuccin-lighten-color) +(fmakunbound 'catppuccin-darken-color) + +;; Local Variables: +;; indent-tabs-mode: nil +;; End: + +;;; catppuccin-theme.el ends here diff --git a/.local/share/fonts/AnkaCoder-C75-b.ttf b/.local/share/fonts/AnkaCoder-C75-b.ttf new file mode 100644 index 0000000..b5d8994 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C75-b.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C75-bi.ttf b/.local/share/fonts/AnkaCoder-C75-bi.ttf new file mode 100644 index 0000000..488ee7b Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C75-bi.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C75-i.ttf b/.local/share/fonts/AnkaCoder-C75-i.ttf new file mode 100644 index 0000000..ee6b30f Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C75-i.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C75-r.ttf b/.local/share/fonts/AnkaCoder-C75-r.ttf new file mode 100644 index 0000000..3b73dcf Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C75-r.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C87-b.ttf b/.local/share/fonts/AnkaCoder-C87-b.ttf new file mode 100644 index 0000000..eac86a4 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C87-b.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C87-bi.ttf b/.local/share/fonts/AnkaCoder-C87-bi.ttf new file mode 100644 index 0000000..69133c3 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C87-bi.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C87-i.ttf b/.local/share/fonts/AnkaCoder-C87-i.ttf new file mode 100644 index 0000000..68765ba Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C87-i.ttf differ diff --git a/.local/share/fonts/AnkaCoder-C87-r.ttf b/.local/share/fonts/AnkaCoder-C87-r.ttf new file mode 100644 index 0000000..be54321 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-C87-r.ttf differ diff --git a/.local/share/fonts/AnkaCoder-b.ttf b/.local/share/fonts/AnkaCoder-b.ttf new file mode 100644 index 0000000..6dcf5e0 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-b.ttf differ diff --git a/.local/share/fonts/AnkaCoder-bi.ttf b/.local/share/fonts/AnkaCoder-bi.ttf new file mode 100644 index 0000000..d3796f5 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-bi.ttf differ diff --git a/.local/share/fonts/AnkaCoder-i.ttf b/.local/share/fonts/AnkaCoder-i.ttf new file mode 100644 index 0000000..583c90e Binary files /dev/null and b/.local/share/fonts/AnkaCoder-i.ttf differ diff --git a/.local/share/fonts/AnkaCoder-r.ttf b/.local/share/fonts/AnkaCoder-r.ttf new file mode 100644 index 0000000..aff31b1 Binary files /dev/null and b/.local/share/fonts/AnkaCoder-r.ttf differ diff --git a/.local/share/fonts/ComicShannsMonoNerdFont-Bold.otf b/.local/share/fonts/ComicShannsMonoNerdFont-Bold.otf new file mode 100644 index 0000000..6eca9ca Binary files /dev/null and b/.local/share/fonts/ComicShannsMonoNerdFont-Bold.otf differ diff --git a/.local/share/fonts/ComicShannsMonoNerdFont-Regular.otf b/.local/share/fonts/ComicShannsMonoNerdFont-Regular.otf new file mode 100644 index 0000000..8a9adb0 Binary files /dev/null and b/.local/share/fonts/ComicShannsMonoNerdFont-Regular.otf differ diff --git a/.local/share/fonts/ComicShannsMonoNerdFontMono-Bold.otf b/.local/share/fonts/ComicShannsMonoNerdFontMono-Bold.otf new file mode 100644 index 0000000..5fe44ae Binary files /dev/null and b/.local/share/fonts/ComicShannsMonoNerdFontMono-Bold.otf differ diff --git a/.local/share/fonts/ComicShannsMonoNerdFontMono-Regular.otf b/.local/share/fonts/ComicShannsMonoNerdFontMono-Regular.otf new file mode 100644 index 0000000..c4f4d3b Binary files /dev/null and b/.local/share/fonts/ComicShannsMonoNerdFontMono-Regular.otf differ diff --git a/.local/share/fonts/ComicShannsMonoNerdFontPropo-Bold.otf b/.local/share/fonts/ComicShannsMonoNerdFontPropo-Bold.otf new file mode 100644 index 0000000..5686d8c Binary files /dev/null and b/.local/share/fonts/ComicShannsMonoNerdFontPropo-Bold.otf differ diff --git a/.local/share/fonts/ComicShannsMonoNerdFontPropo-Regular.otf b/.local/share/fonts/ComicShannsMonoNerdFontPropo-Regular.otf new file mode 100644 index 0000000..a2c646b Binary files /dev/null and b/.local/share/fonts/ComicShannsMonoNerdFontPropo-Regular.otf differ diff --git a/.local/share/konsole/Catppuccin-Frappe.colorscheme b/.local/share/konsole/Catppuccin-Frappe.colorscheme new file mode 100644 index 0000000..1a7d3a9 --- /dev/null +++ b/.local/share/konsole/Catppuccin-Frappe.colorscheme @@ -0,0 +1,96 @@ +[Background] +Color=48,52,70 + +[BackgroundFaint] +Color=48,52,70 + +[BackgroundIntense] +Color=48,52,70 + +[Color0] +Color=115,121,148 + +[Color0Faint] +Color=115,121,148 + +[Color0Intense] +Color=115,121,148 + +[Color1] +Color=231,130,132 + +[Color1Faint] +Color=231,130,132 + +[Color1Intense] +Color=231,130,132 + +[Color2] +Color=166,209,137 + +[Color2Faint] +Color=166,209,137 + +[Color2Intense] +Color=166,209,137 + +[Color3] +Color=229,200,144 + +[Color3Faint] +Color=229,200,144 + +[Color3Intense] +Color=229,200,144 + +[Color4] +Color=140,170,238 + +[Color4Faint] +Color=140,170,238 + +[Color4Intense] +Color=140,170,238 + +[Color5] +Color=202,158,230 + +[Color5Faint] +Color=202,158,230 + +[Color5Intense] +Color=202,158,230 + +[Color6] +Color=153,209,219 + +[Color6Faint] +Color=153,209,219 + +[Color6Intense] +Color=153,209,219 + +[Color7] +Color=198,208,245 + +[Color7Faint] +Color=198,208,245 + +[Color7Intense] +Color=198,208,245 + +[Foreground] +Color=198,208,245 + +[ForegroundFaint] +Color=198,208,245 + +[ForegroundIntense] +Color=198,208,245 + +[General] +Blur=false +ColorRandomization=false +Description=Catppuccin Frappรฉ +Opacity=1 +Wallpaper= diff --git a/.local/share/konsole/Catppuccin-Latte.colorscheme b/.local/share/konsole/Catppuccin-Latte.colorscheme new file mode 100644 index 0000000..1fe732f --- /dev/null +++ b/.local/share/konsole/Catppuccin-Latte.colorscheme @@ -0,0 +1,96 @@ +[Background] +Color=239,241,245 + +[BackgroundFaint] +Color=239,241,245 + +[BackgroundIntense] +Color=239,241,245 + +[Color0] +Color=156,160,176 + +[Color0Faint] +Color=156,160,176 + +[Color0Intense] +Color=156,160,176 + +[Color1] +Color=210,15,57 + +[Color1Faint] +Color=210,15,57 + +[Color1Intense] +Color=210,15,57 + +[Color2] +Color=64,160,43 + +[Color2Faint] +Color=64,160,43 + +[Color2Intense] +Color=64,160,43 + +[Color3] +Color=223,142,29 + +[Color3Faint] +Color=223,142,29 + +[Color3Intense] +Color=223,142,29 + +[Color4] +Color=30,102,245 + +[Color4Faint] +Color=30,102,245 + +[Color4Intense] +Color=30,102,245 + +[Color5] +Color=136,57,239 + +[Color5Faint] +Color=136,57,239 + +[Color5Intense] +Color=136,57,239 + +[Color6] +Color=4,165,229 + +[Color6Faint] +Color=4,165,229 + +[Color6Intense] +Color=4,165,229 + +[Color7] +Color=76,79,105 + +[Color7Faint] +Color=76,79,105 + +[Color7Intense] +Color=76,79,105 + +[Foreground] +Color=76,79,105 + +[ForegroundFaint] +Color=76,79,105 + +[ForegroundIntense] +Color=76,79,105 + +[General] +Blur=false +ColorRandomization=false +Description=Catppuccin Latte +Opacity=1 +Wallpaper= diff --git a/.local/share/konsole/Catppuccin-Macchiato.colorscheme b/.local/share/konsole/Catppuccin-Macchiato.colorscheme new file mode 100644 index 0000000..63bfb35 --- /dev/null +++ b/.local/share/konsole/Catppuccin-Macchiato.colorscheme @@ -0,0 +1,96 @@ +[Background] +Color=36,39,58 + +[BackgroundFaint] +Color=36,39,58 + +[BackgroundIntense] +Color=36,39,58 + +[Color0] +Color=110,115,141 + +[Color0Faint] +Color=110,115,141 + +[Color0Intense] +Color=110,115,141 + +[Color1] +Color=237,135,150 + +[Color1Faint] +Color=237,135,150 + +[Color1Intense] +Color=237,135,150 + +[Color2] +Color=166,218,149 + +[Color2Faint] +Color=166,218,149 + +[Color2Intense] +Color=166,218,149 + +[Color3] +Color=238,212,159 + +[Color3Faint] +Color=238,212,159 + +[Color3Intense] +Color=238,212,159 + +[Color4] +Color=138,173,244 + +[Color4Faint] +Color=138,173,244 + +[Color4Intense] +Color=138,173,244 + +[Color5] +Color=198,160,246 + +[Color5Faint] +Color=198,160,246 + +[Color5Intense] +Color=198,160,246 + +[Color6] +Color=137,220,227 + +[Color6Faint] +Color=137,220,227 + +[Color6Intense] +Color=137,220,227 + +[Color7] +Color=202,211,245 + +[Color7Faint] +Color=202,211,245 + +[Color7Intense] +Color=202,211,245 + +[Foreground] +Color=202,211,245 + +[ForegroundFaint] +Color=202,211,245 + +[ForegroundIntense] +Color=202,211,245 + +[General] +Blur=false +ColorRandomization=false +Description=Catppuccin Macchiato +Opacity=1 +Wallpaper= diff --git a/.local/share/konsole/Catppuccin-Mocha.colorscheme b/.local/share/konsole/Catppuccin-Mocha.colorscheme new file mode 100644 index 0000000..86801d1 --- /dev/null +++ b/.local/share/konsole/Catppuccin-Mocha.colorscheme @@ -0,0 +1,96 @@ +[Background] +Color=30,30,46 + +[BackgroundFaint] +Color=30,30,46 + +[BackgroundIntense] +Color=30,30,46 + +[Color0] +Color=108,112,134 + +[Color0Faint] +Color=108,112,134 + +[Color0Intense] +Color=108,112,134 + +[Color1] +Color=243,139,168 + +[Color1Faint] +Color=243,139,168 + +[Color1Intense] +Color=243,139,168 + +[Color2] +Color=166,227,161 + +[Color2Faint] +Color=166,227,161 + +[Color2Intense] +Color=166,227,161 + +[Color3] +Color=249,226,175 + +[Color3Faint] +Color=249,226,175 + +[Color3Intense] +Color=249,226,175 + +[Color4] +Color=137,180,250 + +[Color4Faint] +Color=137,180,250 + +[Color4Intense] +Color=137,180,250 + +[Color5] +Color=203,166,247 + +[Color5Faint] +Color=203,166,247 + +[Color5Intense] +Color=203,166,247 + +[Color6] +Color=137,220,235 + +[Color6Faint] +Color=137,220,235 + +[Color6Intense] +Color=137,220,235 + +[Color7] +Color=205,214,244 + +[Color7Faint] +Color=205,214,244 + +[Color7Intense] +Color=205,214,244 + +[Foreground] +Color=205,214,244 + +[ForegroundFaint] +Color=205,214,244 + +[ForegroundIntense] +Color=205,214,244 + +[General] +Blur=false +ColorRandomization=false +Description=Catppuccin Mocha +Opacity=1 +Wallpaper= diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..dc0c847 --- /dev/null +++ b/.zshrc @@ -0,0 +1,111 @@ +# 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. +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" + +# 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=(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" + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh