diff --git a/README.md b/README.md index 2e5e390..4a3a4d9 100644 --- a/README.md +++ b/README.md @@ -24,15 +24,20 @@ Example: Only execute alacritty and fish ``` # Settings -There are two ways to set settings. +There are two ways to set settings/values. 1. Create/Edit: `$HOME/.config/dotfiles/values.yml` 2. Edit: `$HOME/.dotfiles/group_vars/all` -## Install Option -The variable `system` has three valid options. -1. server: Minimal installation, only install and configure CMD tools -2. desktop (default): Install WM and desktop applications -3. desktop_full: Install additional packages for the desktop (wine) +## Ansible Vault +Vault password file: `$HOME/.config/dotfiles/vault-password.txt` + +## Settings/Values +### System +|Value |Desc |Default| +|------------|-------------------------------------------------------|-------| +|server |Minimal installation (CMD tools) | | +|desktop |Install WM and desktop applications |x | +|desktop_full|Install additional packages for the desktop (e.g. wine)| | # TODO - AGS: Bar, AppLauncher, PowerMenu, Notifications, Calculator, Emoji-Picker, ... diff --git a/group_vars/all b/group_vars/all index b17615a..a315ffe 100644 --- a/group_vars/all +++ b/group_vars/all @@ -9,11 +9,22 @@ default_roles: desktop_roles: - ags - alacritty + - cursor - discord - hypr - kvantum - minegrub + - nwg-look - sddm - - swaylock + - wakatime system: desktop + +wakapi_key: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 39346164353734613634356635383464636463373437333463616530346162303666343962383364 + 3862316162646639353665336530613965663437316263310a646464663038346539393039666537 + 32636139616239643934353135656662376262356433616635343830646164363435353739343966 + 6233303036393538370a656564643033383334323631663631336137346161326464373364346230 + 64323564663534393766356166393363376237633565316363363138373033353030373139366365 + 6435323438633233363166626330633164346534363335666433 diff --git a/install.sh b/install.sh index 1c7138d..90b6017 100755 --- a/install.sh +++ b/install.sh @@ -19,20 +19,42 @@ print_header() { cmd() { local DOTFILES_LOG="./error.log" - if ! [[ -f $DOTFILES_LOG ]]; then - touch $DOTFILES_LOG - fi - if eval "$1" 1> /dev/null 2> $DOTFILES_LOG; then + rm "$DOTFILES_LOG" return 0 fi echo -e "${RED}" cat $DOTFILES_LOG echo -e "${COLOR_RESET}" + rm "$DOTFILES_LOG" exit 1 } +paru_install() { + if [ -x "$(command -v paru)" ]; then + return + fi + + # Install Base-Devel + if [ -z "$(pacman -Q | grep base-devel)" ]; then + print_header "Installing base-devel" + cmd "sudo pacman -S base-devel --noconfirm" + fi + # Install RustUp + if ! [ -x "$(command -v rustup)" ]; then + print_header "Installing rustup" + cmd "sudo pacman -S rustup --noconfirm" + cmd "rustup default stable" + fi + # Instal Paru + FOLDER=$(mktemp -d) + print_header "Installing paru" + cmd "git clone https://aur.archlinux.org/paru.git $FOLDER" + cd $FOLDER + cmd "makepkg -si --noconfirm" +} + arch_install() { # Install Ansible if ! [ -x "$(command -v ansible)" ]; then @@ -44,6 +66,8 @@ arch_install() { print_header "Installing git" cmd "sudo pacman -S git --noconfirm" fi + # Installl Paru + paru_install # Install PIP if ! [ -x "$(command -v pip)" ]; then print_header "Installing pip" diff --git a/roles/ags/tasks/main.yml b/roles/ags/tasks/main.yml index 6b89d9a..e0968b7 100644 --- a/roles/ags/tasks/main.yml +++ b/roles/ags/tasks/main.yml @@ -3,9 +3,7 @@ kewlfft.aur.aur: name: - aylurs-gtk-shell-git - use: paru state: present - become: true - name: "[AGS] Create config folder" ansible.builtin.file: diff --git a/roles/alacritty/tasks/main.yml b/roles/alacritty/tasks/main.yml index 4f9496b..5df6586 100644 --- a/roles/alacritty/tasks/main.yml +++ b/roles/alacritty/tasks/main.yml @@ -4,9 +4,7 @@ name: - alacritty - ueberzugpp - use: paru state: present - become: true - name: "[Alacritty] Create config folder" ansible.builtin.file: @@ -18,3 +16,7 @@ ansible.builtin.copy: src: "./" dest: "{{ ansible_user_dir }}/.config/alacritty" + +- name: "[Alacritty] Set default" + shell: gsettings set org.cinnamon.desktop.default-applications.terminal exec alacritty && gsettings set org.gnome.desktop.default-applications.terminal exec alacritty + ignore_errors: true diff --git a/roles/bash/files/.bashrc b/roles/bash/files/.bashrc index 8d415c2..a574432 100644 --- a/roles/bash/files/.bashrc +++ b/roles/bash/files/.bashrc @@ -2,7 +2,20 @@ [[ $- != *i* ]] && return # Load starship prompt if starship is installed -eval "$(starship init bash)" +if [ -f /usr/bin/starship ]; then + eval "$(starship init bash)" +fi + +## Functions +# Yazi +function ya() { + local tmp="$(mktemp -t "yazi-cwd.XXXXX")" + yazi "$@" --cwd-file="$tmp" + if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then + cd -- "$cwd" + fi + rm -f -- "$tmp" +} ## Aliases # Replace ls with eza @@ -13,17 +26,22 @@ alias lt='eza -aT --color=always --group-directories-first' # tree listing alias l.='eza -ald --color=always --group-directories-first .*' # show only dotfiles # Replace cat with bat -alias cat='bat --style header --style snip --style changes --style header' +if [ -f /usr/bin/bat ]; then + alias cat='bat --style header --style snip --style changes --style header' +fi # Replace yay with paru -[ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru' +if [ -f /usr/bin/paru ]; then + alias yay='paru' +fi # Aliases +alias :q='exit' alias cls='clear' alias dir='dir --color=auto' -alias egrep='grep -E --color=auto' -alias fgrep='grep -F --color=auto' -alias igrep='grep -i --color=auto' +alias grepe='grep -E --color=auto' +alias grepf='grep -F --color=auto' +alias grepi='grep -i --color=auto' alias fixpacman="sudo rm /var/lib/pacman/db.lck" alias grep='grep --color=auto' alias grubup="sudo update-grub" @@ -33,8 +51,6 @@ alias psmem='ps auxf | sort -nr -k 4' alias rmpkg="sudo pacman -Rdd" alias tarnow='tar -acf ' alias untar='tar -zxvf ' -alias upd='/usr/bin/update' -alias vdir='vdir --color=auto' alias wget='wget -c ' # Cleanup orphaned packages diff --git a/roles/cursor/files/breeze/COPYING b/roles/cursor/files/breeze/COPYING new file mode 100644 index 0000000..5185fd3 --- /dev/null +++ b/roles/cursor/files/breeze/COPYING @@ -0,0 +1,346 @@ +NOTE! The GPL below is copyrighted by the Free Software Foundation, but +the instance of code that it refers to (the kde programs) are copyrighted +by the authors who actually wrote it. + +--------------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/roles/cursor/files/breeze/COPYING-ICONS b/roles/cursor/files/breeze/COPYING-ICONS new file mode 100644 index 0000000..9b426e7 --- /dev/null +++ b/roles/cursor/files/breeze/COPYING-ICONS @@ -0,0 +1,209 @@ +The Breeze Icon Theme in icons/ + + Copyright (C) 2014 Uri Herrera and others + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library. If not, see . + +Clarification: + + The GNU Lesser General Public License or LGPL is written for + software libraries in the first place. We expressly want the LGPL to + be valid for this artwork library too. + + KDE Breeze theme icons is a special kind of software library, it is an + artwork library, it's elements can be used in a Graphical User Interface, or + GUI. + + Source code, for this library means: + - where they exist, SVG; + - otherwise, if applicable, the multi-layered formats xcf or psd, or + otherwise png. + + The LGPL in some sections obliges you to make the files carry + notices. With images this is in some cases impossible or hardly useful. + + With this library a notice is placed at a prominent place in the directory + containing the elements. You may follow this practice. + + The exception in section 5 of the GNU Lesser General Public License covers + the use of elements of this art library in a GUI. + + https://vdesign.kde.org/ + +----- + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/roles/cursor/files/breeze/hyprcursors/00000000000000020006000e7e9ffc3f.hlc b/roles/cursor/files/breeze/hyprcursors/00000000000000020006000e7e9ffc3f.hlc new file mode 100644 index 0000000..936fee7 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/00000000000000020006000e7e9ffc3f.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/00008160000006810000408080010102.hlc b/roles/cursor/files/breeze/hyprcursors/00008160000006810000408080010102.hlc new file mode 100644 index 0000000..53ac17c Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/00008160000006810000408080010102.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/03b6e0fcb3499374a867c041f52298f0.hlc b/roles/cursor/files/breeze/hyprcursors/03b6e0fcb3499374a867c041f52298f0.hlc new file mode 100644 index 0000000..6db7dda Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/03b6e0fcb3499374a867c041f52298f0.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/08e8e1c95fe2fc01f976f1e063a24ccd.hlc b/roles/cursor/files/breeze/hyprcursors/08e8e1c95fe2fc01f976f1e063a24ccd.hlc new file mode 100644 index 0000000..85bdd60 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/08e8e1c95fe2fc01f976f1e063a24ccd.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/1081e37283d90000800003c07f3ef6bf.hlc b/roles/cursor/files/breeze/hyprcursors/1081e37283d90000800003c07f3ef6bf.hlc new file mode 100644 index 0000000..e88ee74 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/1081e37283d90000800003c07f3ef6bf.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/3085a0e285430894940527032f8b26df.hlc b/roles/cursor/files/breeze/hyprcursors/3085a0e285430894940527032f8b26df.hlc new file mode 100644 index 0000000..438de37 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/3085a0e285430894940527032f8b26df.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/3ecb610c1bf2410f44200f48c40d3599.hlc b/roles/cursor/files/breeze/hyprcursors/3ecb610c1bf2410f44200f48c40d3599.hlc new file mode 100644 index 0000000..a141194 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/3ecb610c1bf2410f44200f48c40d3599.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/4498f0e0c1937ffe01fd06f973665830.hlc b/roles/cursor/files/breeze/hyprcursors/4498f0e0c1937ffe01fd06f973665830.hlc new file mode 100644 index 0000000..272e59c Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/4498f0e0c1937ffe01fd06f973665830.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/5c6cd98b3f3ebcb1f9c7f1c204630408.hlc b/roles/cursor/files/breeze/hyprcursors/5c6cd98b3f3ebcb1f9c7f1c204630408.hlc new file mode 100644 index 0000000..0c786fe Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/5c6cd98b3f3ebcb1f9c7f1c204630408.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/6407b0e94181790501fd1e167b474872.hlc b/roles/cursor/files/breeze/hyprcursors/6407b0e94181790501fd1e167b474872.hlc new file mode 100644 index 0000000..ddb06d0 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/6407b0e94181790501fd1e167b474872.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/640fb0e74195791501fd1ed57b41487f.hlc b/roles/cursor/files/breeze/hyprcursors/640fb0e74195791501fd1ed57b41487f.hlc new file mode 100644 index 0000000..43e2650 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/640fb0e74195791501fd1ed57b41487f.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/9081237383d90e509aa00f00170e968f.hlc b/roles/cursor/files/breeze/hyprcursors/9081237383d90e509aa00f00170e968f.hlc new file mode 100644 index 0000000..ae16991 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/9081237383d90e509aa00f00170e968f.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/9d800788f1b08800ae810202380a0822.hlc b/roles/cursor/files/breeze/hyprcursors/9d800788f1b08800ae810202380a0822.hlc new file mode 100644 index 0000000..60153ff Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/9d800788f1b08800ae810202380a0822.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/a2a266d0498c3104214a47bd64ab0fc8.hlc b/roles/cursor/files/breeze/hyprcursors/a2a266d0498c3104214a47bd64ab0fc8.hlc new file mode 100644 index 0000000..6f3af42 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/a2a266d0498c3104214a47bd64ab0fc8.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/alias.hlc b/roles/cursor/files/breeze/hyprcursors/alias.hlc new file mode 100644 index 0000000..0143dd3 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/alias.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/all-scroll.hlc b/roles/cursor/files/breeze/hyprcursors/all-scroll.hlc new file mode 100644 index 0000000..8ace65a Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/all-scroll.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/arrow.hlc b/roles/cursor/files/breeze/hyprcursors/arrow.hlc new file mode 100644 index 0000000..fb493c7 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/b66166c04f8c3109214a4fbd64a50fc8.hlc b/roles/cursor/files/breeze/hyprcursors/b66166c04f8c3109214a4fbd64a50fc8.hlc new file mode 100644 index 0000000..7181058 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/b66166c04f8c3109214a4fbd64a50fc8.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/bottom_left_corner.hlc b/roles/cursor/files/breeze/hyprcursors/bottom_left_corner.hlc new file mode 100644 index 0000000..9c3886f Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/bottom_left_corner.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/bottom_right_corner.hlc b/roles/cursor/files/breeze/hyprcursors/bottom_right_corner.hlc new file mode 100644 index 0000000..257c250 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/bottom_right_corner.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/bottom_side.hlc b/roles/cursor/files/breeze/hyprcursors/bottom_side.hlc new file mode 100644 index 0000000..65b40ca Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/bottom_side.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/cell.hlc b/roles/cursor/files/breeze/hyprcursors/cell.hlc new file mode 100644 index 0000000..bcff8bb Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/cell.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/center_ptr.hlc b/roles/cursor/files/breeze/hyprcursors/center_ptr.hlc new file mode 100644 index 0000000..29f40f5 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/center_ptr.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/circle.hlc b/roles/cursor/files/breeze/hyprcursors/circle.hlc new file mode 100644 index 0000000..ced7521 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/circle.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/closedhand.hlc b/roles/cursor/files/breeze/hyprcursors/closedhand.hlc new file mode 100644 index 0000000..5f0fca9 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/closedhand.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/col-resize.hlc b/roles/cursor/files/breeze/hyprcursors/col-resize.hlc new file mode 100644 index 0000000..87e5ef6 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/col-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/color-picker.hlc b/roles/cursor/files/breeze/hyprcursors/color-picker.hlc new file mode 100644 index 0000000..e05a1ec Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/color-picker.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/context-menu.hlc b/roles/cursor/files/breeze/hyprcursors/context-menu.hlc new file mode 100644 index 0000000..e02400d Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/context-menu.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/copy.hlc b/roles/cursor/files/breeze/hyprcursors/copy.hlc new file mode 100644 index 0000000..d2908e5 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/copy.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/cross.hlc b/roles/cursor/files/breeze/hyprcursors/cross.hlc new file mode 100644 index 0000000..be1ffe8 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/cross.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/crossed_circle.hlc b/roles/cursor/files/breeze/hyprcursors/crossed_circle.hlc new file mode 100644 index 0000000..c26bc6e Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/crossed_circle.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/crosshair.hlc b/roles/cursor/files/breeze/hyprcursors/crosshair.hlc new file mode 100644 index 0000000..c1b5ffa Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/crosshair.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/d9ce0ab605698f320427677b458ad60b.hlc b/roles/cursor/files/breeze/hyprcursors/d9ce0ab605698f320427677b458ad60b.hlc new file mode 100644 index 0000000..dccbd98 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/d9ce0ab605698f320427677b458ad60b.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/default.hlc b/roles/cursor/files/breeze/hyprcursors/default.hlc new file mode 100644 index 0000000..fee1b8d Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/default.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/dnd-copy.hlc b/roles/cursor/files/breeze/hyprcursors/dnd-copy.hlc new file mode 100644 index 0000000..85ca3b0 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/dnd-copy.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/dnd-move.hlc b/roles/cursor/files/breeze/hyprcursors/dnd-move.hlc new file mode 100644 index 0000000..d8f4f61 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/dnd-move.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/dnd-no-drop.hlc b/roles/cursor/files/breeze/hyprcursors/dnd-no-drop.hlc new file mode 100644 index 0000000..a6650be Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/dnd-no-drop.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/dnd-none.hlc b/roles/cursor/files/breeze/hyprcursors/dnd-none.hlc new file mode 100644 index 0000000..a726351 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/dnd-none.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/down-arrow.hlc b/roles/cursor/files/breeze/hyprcursors/down-arrow.hlc new file mode 100644 index 0000000..75a063e Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/down-arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/draft.hlc b/roles/cursor/files/breeze/hyprcursors/draft.hlc new file mode 100644 index 0000000..20e5c79 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/draft.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/e-resize.hlc b/roles/cursor/files/breeze/hyprcursors/e-resize.hlc new file mode 100644 index 0000000..f5cd900 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/e-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/e29285e634086352946a0e7090d73106.hlc b/roles/cursor/files/breeze/hyprcursors/e29285e634086352946a0e7090d73106.hlc new file mode 100644 index 0000000..7bd1b04 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/e29285e634086352946a0e7090d73106.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/ew-resize.hlc b/roles/cursor/files/breeze/hyprcursors/ew-resize.hlc new file mode 100644 index 0000000..e9bd061 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/ew-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/fcf21c00b30f7e3f83fe0dfd12e71cff.hlc b/roles/cursor/files/breeze/hyprcursors/fcf21c00b30f7e3f83fe0dfd12e71cff.hlc new file mode 100644 index 0000000..30c6ee1 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/fcf21c00b30f7e3f83fe0dfd12e71cff.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/fleur.hlc b/roles/cursor/files/breeze/hyprcursors/fleur.hlc new file mode 100644 index 0000000..c989b26 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/fleur.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/forbidden.hlc b/roles/cursor/files/breeze/hyprcursors/forbidden.hlc new file mode 100644 index 0000000..a099fc1 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/forbidden.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/grab.hlc b/roles/cursor/files/breeze/hyprcursors/grab.hlc new file mode 100644 index 0000000..c908c07 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/grab.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/grabbing.hlc b/roles/cursor/files/breeze/hyprcursors/grabbing.hlc new file mode 100644 index 0000000..51b1cd5 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/grabbing.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/h_double_arrow.hlc b/roles/cursor/files/breeze/hyprcursors/h_double_arrow.hlc new file mode 100644 index 0000000..895d0c3 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/h_double_arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/half-busy.hlc b/roles/cursor/files/breeze/hyprcursors/half-busy.hlc new file mode 100644 index 0000000..2a8f6c1 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/half-busy.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/hand1.hlc b/roles/cursor/files/breeze/hyprcursors/hand1.hlc new file mode 100644 index 0000000..dfc22f2 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/hand1.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/hand2.hlc b/roles/cursor/files/breeze/hyprcursors/hand2.hlc new file mode 100644 index 0000000..9071a29 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/hand2.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/help.hlc b/roles/cursor/files/breeze/hyprcursors/help.hlc new file mode 100644 index 0000000..b8e7d67 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/help.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/ibeam.hlc b/roles/cursor/files/breeze/hyprcursors/ibeam.hlc new file mode 100644 index 0000000..b0446ae Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/ibeam.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/left-arrow.hlc b/roles/cursor/files/breeze/hyprcursors/left-arrow.hlc new file mode 100644 index 0000000..fcf1fbd Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/left-arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/left_ptr.hlc b/roles/cursor/files/breeze/hyprcursors/left_ptr.hlc new file mode 100644 index 0000000..ac82af5 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/left_ptr.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/left_ptr_help.hlc b/roles/cursor/files/breeze/hyprcursors/left_ptr_help.hlc new file mode 100644 index 0000000..5a010a8 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/left_ptr_help.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/left_ptr_watch.hlc b/roles/cursor/files/breeze/hyprcursors/left_ptr_watch.hlc new file mode 100644 index 0000000..854c8aa Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/left_ptr_watch.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/left_side.hlc b/roles/cursor/files/breeze/hyprcursors/left_side.hlc new file mode 100644 index 0000000..07d4b66 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/left_side.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/link.hlc b/roles/cursor/files/breeze/hyprcursors/link.hlc new file mode 100644 index 0000000..c19bf76 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/link.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/move.hlc b/roles/cursor/files/breeze/hyprcursors/move.hlc new file mode 100644 index 0000000..9a6a324 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/move.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/n-resize.hlc b/roles/cursor/files/breeze/hyprcursors/n-resize.hlc new file mode 100644 index 0000000..ed6032b Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/n-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/ne-resize.hlc b/roles/cursor/files/breeze/hyprcursors/ne-resize.hlc new file mode 100644 index 0000000..41ab64d Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/ne-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/nesw-resize.hlc b/roles/cursor/files/breeze/hyprcursors/nesw-resize.hlc new file mode 100644 index 0000000..05514dc Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/nesw-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/no-drop.hlc b/roles/cursor/files/breeze/hyprcursors/no-drop.hlc new file mode 100644 index 0000000..8df5cd5 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/no-drop.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/not-allowed.hlc b/roles/cursor/files/breeze/hyprcursors/not-allowed.hlc new file mode 100644 index 0000000..fa3d09a Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/not-allowed.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/ns-resize.hlc b/roles/cursor/files/breeze/hyprcursors/ns-resize.hlc new file mode 100644 index 0000000..4ab1e05 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/ns-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/nw-resize.hlc b/roles/cursor/files/breeze/hyprcursors/nw-resize.hlc new file mode 100644 index 0000000..0bc42e8 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/nw-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/nwse-resize.hlc b/roles/cursor/files/breeze/hyprcursors/nwse-resize.hlc new file mode 100644 index 0000000..65dc49a Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/nwse-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/openhand.hlc b/roles/cursor/files/breeze/hyprcursors/openhand.hlc new file mode 100644 index 0000000..e9ab228 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/openhand.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/pencil.hlc b/roles/cursor/files/breeze/hyprcursors/pencil.hlc new file mode 100644 index 0000000..14ad012 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/pencil.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/pirate.hlc b/roles/cursor/files/breeze/hyprcursors/pirate.hlc new file mode 100644 index 0000000..7abe7ef Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/pirate.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/plus.hlc b/roles/cursor/files/breeze/hyprcursors/plus.hlc new file mode 100644 index 0000000..c882a52 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/plus.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/pointer.hlc b/roles/cursor/files/breeze/hyprcursors/pointer.hlc new file mode 100644 index 0000000..4c04b07 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/pointer.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/pointing_hand.hlc b/roles/cursor/files/breeze/hyprcursors/pointing_hand.hlc new file mode 100644 index 0000000..4a72ffb Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/pointing_hand.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/progress.hlc b/roles/cursor/files/breeze/hyprcursors/progress.hlc new file mode 100644 index 0000000..95e859f Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/progress.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/question_arrow.hlc b/roles/cursor/files/breeze/hyprcursors/question_arrow.hlc new file mode 100644 index 0000000..159005d Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/question_arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/right-arrow.hlc b/roles/cursor/files/breeze/hyprcursors/right-arrow.hlc new file mode 100644 index 0000000..aa90406 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/right-arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/right_ptr.hlc b/roles/cursor/files/breeze/hyprcursors/right_ptr.hlc new file mode 100644 index 0000000..1928756 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/right_ptr.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/right_side.hlc b/roles/cursor/files/breeze/hyprcursors/right_side.hlc new file mode 100644 index 0000000..42c182e Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/right_side.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/row-resize.hlc b/roles/cursor/files/breeze/hyprcursors/row-resize.hlc new file mode 100644 index 0000000..425031a Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/row-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/s-resize.hlc b/roles/cursor/files/breeze/hyprcursors/s-resize.hlc new file mode 100644 index 0000000..cc3bd9f Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/s-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/sb_h_double_arrow.hlc b/roles/cursor/files/breeze/hyprcursors/sb_h_double_arrow.hlc new file mode 100644 index 0000000..62f599a Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/sb_h_double_arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/sb_v_double_arrow.hlc b/roles/cursor/files/breeze/hyprcursors/sb_v_double_arrow.hlc new file mode 100644 index 0000000..c643572 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/sb_v_double_arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/se-resize.hlc b/roles/cursor/files/breeze/hyprcursors/se-resize.hlc new file mode 100644 index 0000000..19db6f3 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/se-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size-bdiag.hlc b/roles/cursor/files/breeze/hyprcursors/size-bdiag.hlc new file mode 100644 index 0000000..919b10d Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size-bdiag.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size-fdiag.hlc b/roles/cursor/files/breeze/hyprcursors/size-fdiag.hlc new file mode 100644 index 0000000..ac44df6 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size-fdiag.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size-hor.hlc b/roles/cursor/files/breeze/hyprcursors/size-hor.hlc new file mode 100644 index 0000000..0e9c570 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size-hor.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size-ver.hlc b/roles/cursor/files/breeze/hyprcursors/size-ver.hlc new file mode 100644 index 0000000..7c3036b Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size-ver.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size_all.hlc b/roles/cursor/files/breeze/hyprcursors/size_all.hlc new file mode 100644 index 0000000..125513f Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size_all.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size_bdiag.hlc b/roles/cursor/files/breeze/hyprcursors/size_bdiag.hlc new file mode 100644 index 0000000..2723317 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size_bdiag.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size_fdiag.hlc b/roles/cursor/files/breeze/hyprcursors/size_fdiag.hlc new file mode 100644 index 0000000..4ffcd4a Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size_fdiag.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size_hor.hlc b/roles/cursor/files/breeze/hyprcursors/size_hor.hlc new file mode 100644 index 0000000..058b8bb Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size_hor.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/size_ver.hlc b/roles/cursor/files/breeze/hyprcursors/size_ver.hlc new file mode 100644 index 0000000..f2cc6ff Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/size_ver.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/split_h.hlc b/roles/cursor/files/breeze/hyprcursors/split_h.hlc new file mode 100644 index 0000000..61fa526 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/split_h.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/split_v.hlc b/roles/cursor/files/breeze/hyprcursors/split_v.hlc new file mode 100644 index 0000000..daf4f02 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/split_v.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/sw-resize.hlc b/roles/cursor/files/breeze/hyprcursors/sw-resize.hlc new file mode 100644 index 0000000..d593858 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/sw-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/tcross.hlc b/roles/cursor/files/breeze/hyprcursors/tcross.hlc new file mode 100644 index 0000000..96be1d6 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/tcross.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/text.hlc b/roles/cursor/files/breeze/hyprcursors/text.hlc new file mode 100644 index 0000000..e61e6a1 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/text.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/top_left_arrow.hlc b/roles/cursor/files/breeze/hyprcursors/top_left_arrow.hlc new file mode 100644 index 0000000..c94222e Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/top_left_arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/top_left_corner.hlc b/roles/cursor/files/breeze/hyprcursors/top_left_corner.hlc new file mode 100644 index 0000000..0cea7c8 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/top_left_corner.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/top_right_corner.hlc b/roles/cursor/files/breeze/hyprcursors/top_right_corner.hlc new file mode 100644 index 0000000..7eae2ae Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/top_right_corner.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/top_side.hlc b/roles/cursor/files/breeze/hyprcursors/top_side.hlc new file mode 100644 index 0000000..625df70 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/top_side.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/up-arrow.hlc b/roles/cursor/files/breeze/hyprcursors/up-arrow.hlc new file mode 100644 index 0000000..d05ddde Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/up-arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/v_double_arrow.hlc b/roles/cursor/files/breeze/hyprcursors/v_double_arrow.hlc new file mode 100644 index 0000000..a5032d3 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/v_double_arrow.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/vertical-text.hlc b/roles/cursor/files/breeze/hyprcursors/vertical-text.hlc new file mode 100644 index 0000000..0c28459 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/vertical-text.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/w-resize.hlc b/roles/cursor/files/breeze/hyprcursors/w-resize.hlc new file mode 100644 index 0000000..2b7d195 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/w-resize.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/wait.hlc b/roles/cursor/files/breeze/hyprcursors/wait.hlc new file mode 100644 index 0000000..1d35301 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/wait.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/watch.hlc b/roles/cursor/files/breeze/hyprcursors/watch.hlc new file mode 100644 index 0000000..8920112 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/watch.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/wayland-cursor.hlc b/roles/cursor/files/breeze/hyprcursors/wayland-cursor.hlc new file mode 100644 index 0000000..89c22a2 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/wayland-cursor.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/whats_this.hlc b/roles/cursor/files/breeze/hyprcursors/whats_this.hlc new file mode 100644 index 0000000..aac6132 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/whats_this.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/x-cursor.hlc b/roles/cursor/files/breeze/hyprcursors/x-cursor.hlc new file mode 100644 index 0000000..8c22a27 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/x-cursor.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/xterm.hlc b/roles/cursor/files/breeze/hyprcursors/xterm.hlc new file mode 100644 index 0000000..9ea816c Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/xterm.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/zoom-in.hlc b/roles/cursor/files/breeze/hyprcursors/zoom-in.hlc new file mode 100644 index 0000000..3d3b564 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/zoom-in.hlc differ diff --git a/roles/cursor/files/breeze/hyprcursors/zoom-out.hlc b/roles/cursor/files/breeze/hyprcursors/zoom-out.hlc new file mode 100644 index 0000000..5333da7 Binary files /dev/null and b/roles/cursor/files/breeze/hyprcursors/zoom-out.hlc differ diff --git a/roles/cursor/files/breeze/manifest.hl b/roles/cursor/files/breeze/manifest.hl new file mode 100644 index 0000000..e0039dc --- /dev/null +++ b/roles/cursor/files/breeze/manifest.hl @@ -0,0 +1,4 @@ +name = breeze +description = Breeze theme extracted with hyprcursor-util +version = 0.1 +cursors_directory = hyprcursors diff --git a/roles/cursor/tasks/main.yml b/roles/cursor/tasks/main.yml new file mode 100644 index 0000000..05b68dd --- /dev/null +++ b/roles/cursor/tasks/main.yml @@ -0,0 +1,14 @@ +--- +- name: "[Cursor] Create config folder" + ansible.builtin.file: + mode: 0755 + path: "/usr/share/icons/" + state: directory + become: true + +- name: "[Cursor] Configure" + ansible.builtin.copy: + mode: 0755 + src: "./" + dest: "/usr/share/icons/" + become: true diff --git a/roles/discord/tasks/main.yml b/roles/discord/tasks/main.yml index 381d992..e6d4da6 100644 --- a/roles/discord/tasks/main.yml +++ b/roles/discord/tasks/main.yml @@ -3,7 +3,6 @@ kewlfft.aur.aur: name: - armcord - use: paru state: present - name: "[Discord] Create config folder" diff --git a/roles/fish/files/config.fish b/roles/fish/files/config.fish index 4272cc0..8371328 100755 --- a/roles/fish/files/config.fish +++ b/roles/fish/files/config.fish @@ -133,6 +133,11 @@ if type -q bat alias cat='bat --style header --style snip --style changes --style header' end +# Replace yay with paru +if type -q paru + alias yay='paru' +end + # Common use alias :q=exit alias ipn='ip' @@ -154,9 +159,9 @@ alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias grep='grep --color=auto' -alias fgrep='grep -F --color=auto' -alias egrep='grep -E --color=auto' -alias igrep='grep -i --color=auto' +alias grepf='grep -F --color=auto' +alias grepe='grep -E --color=auto' +alias grepi='grep -i --color=auto' alias hw='hwinfo --short' # Hardware Info alias bigpkg="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages diff --git a/roles/fish/tasks/main.yml b/roles/fish/tasks/main.yml index b4c4865..9087864 100644 --- a/roles/fish/tasks/main.yml +++ b/roles/fish/tasks/main.yml @@ -5,7 +5,6 @@ - fish - fish-done - fastfetch - use: paru state: present - name: "[Fish] Create config folder" @@ -18,3 +17,7 @@ ansible.builtin.copy: src: "./" dest: "{{ ansible_user_dir }}/.config/fish" + +- name: "[Fish] Set shell" + ansible.builtin.shell: + cmd: "usermod -s $(which fish) $(whoami)" diff --git a/roles/hypr/files/env.conf b/roles/hypr/files/env.conf index cae8116..e6f3cf1 100755 --- a/roles/hypr/files/env.conf +++ b/roles/hypr/files/env.conf @@ -1,12 +1,8 @@ # Environment env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 -env = HYPRCURSOR_THEME,rose-pine-hyprcursor +env = HYPRCURSOR_THEME,breeze env = XDG_SESSION_TYPE,wayland env = WLR_NO_HARDWARE_CURSORS,1 env = QT_QPA_PLATFORMTHEME,qt5ct -#env = QT_QPA_PLATFORM,wayland env = QT_STYLE_OVERRIDE,kvantum - -# Minecraft -env = __GL_THREADED_OPTIMIZATIONS,0 diff --git a/roles/hypr/files/hyprlock.conf b/roles/hypr/files/hyprlock.conf new file mode 100644 index 0000000..8d70bb9 --- /dev/null +++ b/roles/hypr/files/hyprlock.conf @@ -0,0 +1,80 @@ +source = $HOME/.config/hypr/themes/catppuccin/mocha.conf + +$accent = $sapphire +$accentAlpha = 7dc4e4 # $sapphireAlpha Doesn't work??? +$font = CaskaydiaCove Nerd Font + +# GENERAL +general { + disable_loading_bar = true + hide_cursor = true +} + +# BACKGROUND +background { + monitor = + path = ~/.config/background + blur_passes = 0 + color = $base +} + +# DATE +label { + monitor = + text = cmd[update:30000] echo "$(date +"%R")" + color = $text + font_size = 90 + font_family = $font + position = -30, 0 + halign = right + valign = top +} + +# TIME +label { + monitor = + text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")" + color = $text + font_size = 25 + font_family = $font + position = -30, -150 + halign = right + valign = top +} + +# USER AVATAR +image { + monitor = + path = /var/lib/AccountsService/icons/$USER + border_color = $accent + border_size = 2 + rounding = -1 + size = 200 + position = 0, 150 + halign = center + valign = center +} + +# INPUT FIELD +input-field { + monitor = + size = 300, 60 + outline_thickness = 2 + dots_size = 0.2 + dots_spacing = 0.2 + dots_center = true + outer_color = $accent + inner_color = $surface0 + font_color = $text + fade_on_empty = false + placeholder_text = 󰌾 Logged in as $USER + hide_input = false + check_color = $accent + fail_color = $red + fail_text = $FAIL ($ATTEMPTS) + capslock_color = $peach + numlock_color = $green + position = 0, -35 + halign = center + valign = center +} diff --git a/roles/hypr/files/keybinds.conf b/roles/hypr/files/keybinds.conf index e045114..68d2808 100755 --- a/roles/hypr/files/keybinds.conf +++ b/roles/hypr/files/keybinds.conf @@ -11,7 +11,7 @@ bind = $mainMod, F4, exec, wlogout bind = $mainMod, F, togglefloating, bind = $mainMod, N, exec, swaync-client -t -sw bind = $mainMod SHIFT, P, exec, hyprpicker -n -a -r -bind = $mainMod, O, exec, ~/.config/hypr/scripts/lock.sh +bind = $mainMod, O, exec, hyprlock bind = $mainMod, B, exec, ~/.config/hypr/scripts/game_mode.sh bind = $mainMod, V, exec, pkill rofi || ~/.config/hypr/scripts/clipboard.sh c bind = $mainMod, TAB, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh w @@ -25,18 +25,19 @@ bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioPlay, exec, playerctl play bind = , XF86AudioPause, exec, playerctl pause -bind = , XF86AudioMute, exec, ~/.config/eww/scripts/audio.sh mutesink @DEFAULT_SINK@ -bind = , XF86AudioMicMute, exec, ~/.config/eww/scripts/audio.sh mutesource @DEFAULT_SOURCE@ -binde = , XF86AudioRaiseVolume, exec, ~/.config/eww/scripts/audio.sh vol up -binde = , XF86AudioLowerVolume, exec, ~/.config/eww/scripts/audio.sh vol down +bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle +bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle +binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%+ +binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%- binde = , XF86MonBrightnessDown, exec, brightnessctl set 5%- binde = , XF86MonBrightnessUp, exec, brightnessctl set 5%+ +#bind = , XF86PowerOff, exec, systemctl shutdown # Applications bind = $mainMod, T, exec, alacritty bind = $mainMod, E, exec, nemo bind = $mainMod, G, exec, ~/.config/hypr/scripts/app_launcher.sh c -bind = CTRL SHIFT, ESCAPE, exec, gnome-system-monitor +bind = CTRL SHIFT, ESCAPE, exec, alacritty -e btop # Move focus bind = $mainMod, left, movefocus, l diff --git a/roles/hypr/files/scripts/idle.sh b/roles/hypr/files/scripts/idle.sh index 9c61cdf..6177dbc 100755 --- a/roles/hypr/files/scripts/idle.sh +++ b/roles/hypr/files/scripts/idle.sh @@ -1,21 +1,8 @@ #!/bin/bash -isplayingvideo(){ -if pactl list | grep -q RUNNING; then - exit 1 -else - exit 0 -fi -} - -if ! [ -z $1 ]; then - isplayingvideo -fi - timeout_lock=900 timeout_DPMS=1080 swayidle -w \ - timeout ${timeout_lock} "$0 isplayinfvideo || ~/.config/hypr/scripts/lock.sh" \ - #timeout ${timeout_DPMS} 'hyprctl dispatch dpms off' - #resume 'hyprctl dispatch dpms on' # Crashes all apps -> Hyprland config set misc/mouse_move_enables_dpms=true + timeout ${timeout_lock} "hyprlock & disown" \ + timeout ${timeout_DPMS} "hyprctl dispatch dpms off" diff --git a/roles/hypr/files/scripts/wait_for_tray.sh b/roles/hypr/files/scripts/wait_for_tray.sh deleted file mode 100755 index bc194bc..0000000 --- a/roles/hypr/files/scripts/wait_for_tray.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -program_name="ags" - -check_program_running() { - pgrep -x "$program_name" > /dev/null -} - -while ! check_program_running; do - sleep 1 -done - -sleep 1 diff --git a/roles/hypr/files/themes/catppuccin/LICENSE b/roles/hypr/files/themes/catppuccin/LICENSE new file mode 100644 index 0000000..006383b --- /dev/null +++ b/roles/hypr/files/themes/catppuccin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Catppuccin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/roles/hypr/files/themes/catppuccin/frappe.conf b/roles/hypr/files/themes/catppuccin/frappe.conf new file mode 100644 index 0000000..9bcd81f --- /dev/null +++ b/roles/hypr/files/themes/catppuccin/frappe.conf @@ -0,0 +1,78 @@ + +$rosewater = rgb(f2d5cf) +$rosewaterAlpha = f2d5cf + +$flamingo = rgb(eebebe) +$flamingoAlpha = eebebe + +$pink = rgb(f4b8e4) +$pinkAlpha = f4b8e4 + +$mauve = rgb(ca9ee6) +$mauveAlpha = ca9ee6 + +$red = rgb(e78284) +$redAlpha = e78284 + +$maroon = rgb(ea999c) +$maroonAlpha = ea999c + +$peach = rgb(ef9f76) +$peachAlpha = ef9f76 + +$yellow = rgb(e5c890) +$yellowAlpha = e5c890 + +$green = rgb(a6d189) +$greenAlpha = a6d189 + +$teal = rgb(81c8be) +$tealAlpha = 81c8be + +$sky = rgb(99d1db) +$skyAlpha = 99d1db + +$sapphire = rgb(85c1dc) +$sapphireAlpha = 85c1dc + +$blue = rgb(8caaee) +$blueAlpha = 8caaee + +$lavender = rgb(babbf1) +$lavenderAlpha = babbf1 + +$text = rgb(c6d0f5) +$textAlpha = c6d0f5 + +$subtext1 = rgb(b5bfe2) +$subtext1Alpha = b5bfe2 + +$subtext0 = rgb(a5adce) +$subtext0Alpha = a5adce + +$overlay2 = rgb(949cbb) +$overlay2Alpha = 949cbb + +$overlay1 = rgb(838ba7) +$overlay1Alpha = 838ba7 + +$overlay0 = rgb(737994) +$overlay0Alpha = 737994 + +$surface2 = rgb(626880) +$surface2Alpha = 626880 + +$surface1 = rgb(51576d) +$surface1Alpha = 51576d + +$surface0 = rgb(414559) +$surface0Alpha = 414559 + +$base = rgb(303446) +$baseAlpha = 303446 + +$mantle = rgb(292c3c) +$mantleAlpha = 292c3c + +$crust = rgb(232634) +$crustAlpha = 232634 diff --git a/roles/hypr/files/themes/catppuccin/latte.conf b/roles/hypr/files/themes/catppuccin/latte.conf new file mode 100644 index 0000000..2c244ad --- /dev/null +++ b/roles/hypr/files/themes/catppuccin/latte.conf @@ -0,0 +1,78 @@ + +$rosewater = rgb(dc8a78) +$rosewaterAlpha = dc8a78 + +$flamingo = rgb(dd7878) +$flamingoAlpha = dd7878 + +$pink = rgb(ea76cb) +$pinkAlpha = ea76cb + +$mauve = rgb(8839ef) +$mauveAlpha = 8839ef + +$red = rgb(d20f39) +$redAlpha = d20f39 + +$maroon = rgb(e64553) +$maroonAlpha = e64553 + +$peach = rgb(fe640b) +$peachAlpha = fe640b + +$yellow = rgb(df8e1d) +$yellowAlpha = df8e1d + +$green = rgb(40a02b) +$greenAlpha = 40a02b + +$teal = rgb(179299) +$tealAlpha = 179299 + +$sky = rgb(04a5e5) +$skyAlpha = 04a5e5 + +$sapphire = rgb(209fb5) +$sapphireAlpha = 209fb5 + +$blue = rgb(1e66f5) +$blueAlpha = 1e66f5 + +$lavender = rgb(7287fd) +$lavenderAlpha = 7287fd + +$text = rgb(4c4f69) +$textAlpha = 4c4f69 + +$subtext1 = rgb(5c5f77) +$subtext1Alpha = 5c5f77 + +$subtext0 = rgb(6c6f85) +$subtext0Alpha = 6c6f85 + +$overlay2 = rgb(7c7f93) +$overlay2Alpha = 7c7f93 + +$overlay1 = rgb(8c8fa1) +$overlay1Alpha = 8c8fa1 + +$overlay0 = rgb(9ca0b0) +$overlay0Alpha = 9ca0b0 + +$surface2 = rgb(acb0be) +$surface2Alpha = acb0be + +$surface1 = rgb(bcc0cc) +$surface1Alpha = bcc0cc + +$surface0 = rgb(ccd0da) +$surface0Alpha = ccd0da + +$base = rgb(eff1f5) +$baseAlpha = eff1f5 + +$mantle = rgb(e6e9ef) +$mantleAlpha = e6e9ef + +$crust = rgb(dce0e8) +$crustAlpha = dce0e8 diff --git a/roles/hypr/files/themes/catppuccin/macchiato.conf b/roles/hypr/files/themes/catppuccin/macchiato.conf new file mode 100644 index 0000000..9e7071a --- /dev/null +++ b/roles/hypr/files/themes/catppuccin/macchiato.conf @@ -0,0 +1,78 @@ + +$rosewater = rgb(f4dbd6) +$rosewaterAlpha = f4dbd6 + +$flamingo = rgb(f0c6c6) +$flamingoAlpha = f0c6c6 + +$pink = rgb(f5bde6) +$pinkAlpha = f5bde6 + +$mauve = rgb(c6a0f6) +$mauveAlpha = c6a0f6 + +$red = rgb(ed8796) +$redAlpha = ed8796 + +$maroon = rgb(ee99a0) +$maroonAlpha = ee99a0 + +$peach = rgb(f5a97f) +$peachAlpha = f5a97f + +$yellow = rgb(eed49f) +$yellowAlpha = eed49f + +$green = rgb(a6da95) +$greenAlpha = a6da95 + +$teal = rgb(8bd5ca) +$tealAlpha = 8bd5ca + +$sky = rgb(91d7e3) +$skyAlpha = 91d7e3 + +$sapphire = rgb(7dc4e4) +$sapphireAlpha = 7dc4e4 + +$blue = rgb(8aadf4) +$blueAlpha = 8aadf4 + +$lavender = rgb(b7bdf8) +$lavenderAlpha = b7bdf8 + +$text = rgb(cad3f5) +$textAlpha = cad3f5 + +$subtext1 = rgb(b8c0e0) +$subtext1Alpha = b8c0e0 + +$subtext0 = rgb(a5adcb) +$subtext0Alpha = a5adcb + +$overlay2 = rgb(939ab7) +$overlay2Alpha = 939ab7 + +$overlay1 = rgb(8087a2) +$overlay1Alpha = 8087a2 + +$overlay0 = rgb(6e738d) +$overlay0Alpha = 6e738d + +$surface2 = rgb(5b6078) +$surface2Alpha = 5b6078 + +$surface1 = rgb(494d64) +$surface1Alpha = 494d64 + +$surface0 = rgb(363a4f) +$surface0Alpha = 363a4f + +$base = rgb(24273a) +$baseAlpha = 24273a + +$mantle = rgb(1e2030) +$mantleAlpha = 1e2030 + +$crust = rgb(181926) +$crustAlpha = 181926 diff --git a/roles/hypr/files/themes/catppuccin/mocha.conf b/roles/hypr/files/themes/catppuccin/mocha.conf new file mode 100644 index 0000000..2b80922 --- /dev/null +++ b/roles/hypr/files/themes/catppuccin/mocha.conf @@ -0,0 +1,77 @@ +$rosewater = rgb(f5e0dc) +$rosewaterAlpha = f5e0dc + +$flamingo = rgb(f2cdcd) +$flamingoAlpha = f2cdcd + +$pink = rgb(f5c2e7) +$pinkAlpha = f5c2e7 + +$mauve = rgb(cba6f7) +$mauveAlpha = cba6f7 + +$red = rgb(f38ba8) +$redAlpha = f38ba8 + +$maroon = rgb(eba0ac) +$maroonAlpha = eba0ac + +$peach = rgb(fab387) +$peachAlpha = fab387 + +$yellow = rgb(f9e2af) +$yellowAlpha = f9e2af + +$green = rgb(a6e3a1) +$greenAlpha = a6e3a1 + +$teal = rgb(94e2d5) +$tealAlpha = 94e2d5 + +$sky = rgb(89dceb) +$skyAlpha = 89dceb + +$sapphire = rgb(74c7ec) +$sapphireAlpha = 74c7ec + +$blue = rgb(89b4fa) +$blueAlpha = 89b4fa + +$lavender = rgb(b4befe) +$lavenderAlpha = b4befe + +$text = rgb(cdd6f4) +$textAlpha = cdd6f4 + +$subtext1 = rgb(bac2de) +$subtext1Alpha = bac2de + +$subtext0 = rgb(a6adc8) +$subtext0Alpha = a6adc8 + +$overlay2 = rgb(9399b2) +$overlay2Alpha = 9399b2 + +$overlay1 = rgb(7f849c) +$overlay1Alpha = 7f849c + +$overlay0 = rgb(6c7086) +$overlay0Alpha = 6c7086 + +$surface2 = rgb(585b70) +$surface2Alpha = 585b70 + +$surface1 = rgb(45475a) +$surface1Alpha = 45475a + +$surface0 = rgb(313244) +$surface0Alpha = 313244 + +$base = rgb(1e1e2e) +$baseAlpha = 1e1e2e + +$mantle = rgb(181825) +$mantleAlpha = 181825 + +$crust = rgb(11111b) +$crustAlpha = 11111b diff --git a/roles/hypr/tasks/main.yml b/roles/hypr/tasks/main.yml index ced8261..981dace 100644 --- a/roles/hypr/tasks/main.yml +++ b/roles/hypr/tasks/main.yml @@ -1,14 +1,14 @@ --- - name: "[Hyprland] Install" - ansible.builtin.package: + kewlfft.aur.aur: name: - hyprland - state: latest - become: true + - hyprlock-git + state: present - name: "[Hyprland] Create config folder" ansible.builtin.file: - mode: "0755" + mode: 0755 path: "{{ ansible_user_dir }}/.config/hypr" state: directory @@ -16,3 +16,13 @@ ansible.builtin.copy: src: "./" dest: "{{ ansible_user_dir }}/.config/hypr" + +- name: "[Hyprland] Configure startup" + ansible.builtin.template: + src: startup.conf + dest: "{{ ansible_user_dir }}/.config/hypr" + +- name: "[Hyprland] Configure windowrules" + ansible.builtin.template: + src: windowrule.conf + dest: "{{ ansible_user_dir }}/.config/hypr" diff --git a/roles/hypr/files/startup.conf b/roles/hypr/templates/startup.conf similarity index 91% rename from roles/hypr/files/startup.conf rename to roles/hypr/templates/startup.conf index e2c469d..ac97ec8 100755 --- a/roles/hypr/files/startup.conf +++ b/roles/hypr/templates/startup.conf @@ -1,11 +1,13 @@ # First for systray -exec-once = ags -c /home/keule/test/config.js +exec-once = ags # Programms +{% if system == "desktop_full" %} exec-once = armcord -exec-once = nextcloud exec-once = youtube-music exec-once = element-desktop +exec-once = nextcloud +{% endif %} exec-once = nm-applet exec-once = blueman-applet exec-once = playerctld daemon diff --git a/roles/hypr/files/windowrule.conf b/roles/hypr/templates/windowrule.conf similarity index 88% rename from roles/hypr/files/windowrule.conf rename to roles/hypr/templates/windowrule.conf index 88b3417..810871d 100755 --- a/roles/hypr/files/windowrule.conf +++ b/roles/hypr/templates/windowrule.conf @@ -1,4 +1,5 @@ # Monitors +{% if system == "desktop_full" %} $monitorOne = HDMI-A-1 $monitorTwo = DP-2 $monitorThree = HDMI-A-2 @@ -6,6 +7,7 @@ $monitorThree = HDMI-A-2 monitor = $monitorOne,1920x1080@144.001007,0x0,1 monitor = $monitorTwo,2560x1440@143.912003,1920x0,1 monitor = $monitorThree,1920x1080@60.000000,4480x0,1 +{% endif %} monitor = ,preferred,auto,1 @@ -14,6 +16,7 @@ windowrule = workspace 2,^(YouTube Music)$ windowrule = workspace 4,^(explorer.exe)$ windowrule = workspace 4,^(lutris)$ windowrule = workspace 5,^(discord)$ +windowrule = workspace 5,^(ArmCord)$ windowrule = workspace 5,^(WebCord)$ windowrule = workspace 5,^(Element)$ windowrule = workspace 5,^(de.keule.client.ui.JavaFX)$ @@ -24,6 +27,7 @@ windowrule = float,title:^.*culator.*$ # Workspace +{% if system == "desktop_full" %} workspace = 1, monitor:$monitorOne, default:true workspace = 2, monitor:$monitorOne @@ -32,3 +36,4 @@ workspace = 4, monitor:$monitorTwo workspace = 5, monitor:$monitorThree, default:true workspace = 6, monitor:$monitorThree +{% endif %} diff --git a/roles/kvantum/tasks/main.yml b/roles/kvantum/tasks/main.yml index d102364..e3221c8 100644 --- a/roles/kvantum/tasks/main.yml +++ b/roles/kvantum/tasks/main.yml @@ -1,10 +1,9 @@ --- - name: "[Kvantum] Install" - ansible.builtin.package: + kewlfft.aur.aur: name: - - kvantum - state: latest - become: true + - kvantum-qt5-git + state: present - name: "[Kvantum] Create config folder" ansible.builtin.file: diff --git a/roles/nwg-look/files/.gtkrc-2.0 b/roles/nwg-look/files/.gtkrc-2.0 new file mode 100644 index 0000000..a77960c --- /dev/null +++ b/roles/nwg-look/files/.gtkrc-2.0 @@ -0,0 +1,19 @@ +# DO NOT EDIT! This file will be overwritten by nwg-look. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +include "/home/keule/.gtkrc-2.0.mine" +gtk-theme-name="Catppuccin-Macchiato-Standard-Sapphire-Dark" +gtk-icon-theme-name="Papirus" +gtk-font-name="CaskaydiaCove Nerd Font 12" +gtk-cursor-theme-name="Breeze" +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintslight" +gtk-xft-rgba="rgb" diff --git a/roles/nwg-look/files/gtk-3.0/settings.ini b/roles/nwg-look/files/gtk-3.0/settings.ini new file mode 100644 index 0000000..4529af6 --- /dev/null +++ b/roles/nwg-look/files/gtk-3.0/settings.ini @@ -0,0 +1,17 @@ +[Settings] +gtk-theme-name=Catppuccin-Macchiato-Standard-Sapphire-Dark +gtk-icon-theme-name=Papirus +gtk-font-name=CaskaydiaCove Nerd Font 12 +gtk-cursor-theme-name=Breeze +gtk-cursor-theme-size=24 +gtk-toolbar-style=GTK_TOOLBAR_ICONS +gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR +gtk-button-images=0 +gtk-menu-images=0 +gtk-enable-event-sounds=1 +gtk-enable-input-feedback-sounds=0 +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +gtk-xft-rgba=rgb +gtk-application-prefer-dark-theme=0 diff --git a/roles/nwg-look/files/xsettingsd/xsettingsd.conf b/roles/nwg-look/files/xsettingsd/xsettingsd.conf new file mode 100644 index 0000000..2daf23c --- /dev/null +++ b/roles/nwg-look/files/xsettingsd/xsettingsd.conf @@ -0,0 +1,9 @@ +Net/ThemeName "Catppuccin-Macchiato-Standard-Sapphire-Dark" +Net/IconThemeName "Papirus" +Gtk/CursorThemeName "Breeze" +Net/EnableEventSounds 1 +EnableInputFeedbackSounds 0 +Xft/Antialias 1 +Xft/Hinting 1 +Xft/HintStyle "hintslight" +Xft/RGBA "rgb" diff --git a/roles/nwg-look/tasks/main.yml b/roles/nwg-look/tasks/main.yml new file mode 100644 index 0000000..e8da518 --- /dev/null +++ b/roles/nwg-look/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: "[NWG-look] Install" + kewlfft.aur.aur: + name: + - nwg-look + state: present + +- name: "[NWG-look] Configure" + ansible.builtin.copy: + src: "./" + dest: "{{ ansible_user_dir }}/" diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/Clock.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/Clock.qml new file mode 100644 index 0000000..f076d28 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/Clock.qml @@ -0,0 +1,14 @@ +import QtQuick 2.15 +import SddmComponents 2.0 + +Clock { + id: time + color: config.text + timeFont.family: config.Font + dateFont.family: config.Font + anchors { + margins: 10 + top: parent.top + right: parent.right + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/LoginPanel.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/LoginPanel.qml new file mode 100644 index 0000000..e0dec79 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/LoginPanel.qml @@ -0,0 +1,147 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 + +Item { + property var user: userField.text + property var password: passwordField.text + property var session: sessionPanel.session + property var inputHeight: Screen.height * 0.032 + property var inputWidth: Screen.width * 0.16 + Rectangle { + id: loginBackground + anchors { + verticalCenter: parent.verticalCenter + horizontalCenter: parent.horizontalCenter + } + height: inputHeight * 5.3 + width: inputWidth * 1.2 + radius: 5 + visible: config.LoginBackground == "true" ? true : false + color: config.mantle + } + Column { + spacing: 8 + anchors { + bottom: parent.bottom + left: parent.left + } + PowerButton { + id: powerButton + } + RebootButton { + id: rebootButton + } + SleepButton { + id: sleepButton + } + z: 5 + } + Column { + spacing: 8 + anchors { + bottom: parent.bottom + right: parent.right + } + SessionPanel { + id: sessionPanel + } + z: 5 + } + Column { + spacing: 8 + z: 5 + width: inputWidth + anchors { + verticalCenter: parent.verticalCenter + horizontalCenter: parent.horizontalCenter + } + UserField { + id: userField + height: inputHeight + width: parent.width + } + PasswordField { + id: passwordField + height: inputHeight + width: parent.width + onAccepted: loginButton.clicked() + } + Button { + id: loginButton + height: inputHeight + width: parent.width + enabled: user != "" && password != "" ? true : false + hoverEnabled: true + contentItem: Text { + id: buttonText + renderType: Text.NativeRendering + font { + family: config.Font + pointSize: config.FontSize + bold: true + } + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: config.crust + text: "Login" + } + background: Rectangle { + id: buttonBackground + color: config.sapphire + radius: 3 + } + states: [ + State { + name: "pressed" + when: loginButton.down + PropertyChanges { + target: buttonBackground + color: config.teal + } + PropertyChanges { + target: buttonText + } + }, + State { + name: "hovered" + when: loginButton.hovered + PropertyChanges { + target: buttonBackground + color: config.teal + } + PropertyChanges { + target: buttonText + } + }, + State { + name: "enabled" + when: loginButton.enabled + PropertyChanges { + target: buttonBackground + } + PropertyChanges { + target: buttonText + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: { + sddm.login(user, password, session) + } + } + } + Connections { + target: sddm + + function onLoginFailed() { + passwordField.text = "" + passwordField.focus = true + } + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/PasswordField.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/PasswordField.qml new file mode 100644 index 0000000..dd0f384 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/PasswordField.qml @@ -0,0 +1,48 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +TextField { + id: passwordField + focus: true + selectByMouse: true + placeholderText: "Password" + echoMode: TextInput.Password + passwordCharacter: "•" + passwordMaskDelay: config.PasswordShowLastLetter + selectionColor: config.overlay0 + renderType: Text.NativeRendering + font.family: config.Font + font.pointSize: config.FontSize + font.bold: true + color: config.text + horizontalAlignment: TextInput.AlignHCenter + background: Rectangle { + id: passFieldBackground + radius: 3 + color: config.surface0 + } + states: [ + State { + name: "focused" + when: passwordField.activeFocus + PropertyChanges { + target: passFieldBackground + color: config.surface1 + } + }, + State { + name: "hovered" + when: passwordField.hovered + PropertyChanges { + target: passFieldBackground + color: config.surface1 + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/PowerButton.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/PowerButton.qml new file mode 100644 index 0000000..dc74269 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/PowerButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + implicitHeight: powerButton.height + implicitWidth: powerButton.width + Button { + id: powerButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/power.svg") + height: height + width: width + color: config.crust + } + background: Rectangle { + id: powerButtonBackground + radius: 3 + color: config.red + } + states: [ + State { + name: "hovered" + when: powerButton.hovered + PropertyChanges { + target: powerButtonBackground + color: config.rosewater + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: sddm.powerOff() + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/RebootButton.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/RebootButton.qml new file mode 100644 index 0000000..a2c9b9f --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/RebootButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + implicitHeight: rebootButton.height + implicitWidth: rebootButton.width + Button { + id: rebootButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/reboot.svg") + height: height + width: width + color: config.crust + } + background: Rectangle { + id: rebootButtonBackground + radius: 3 + color: config.red + } + states: [ + State { + name: "hovered" + when: rebootButton.hovered + PropertyChanges { + target: rebootButtonBackground + color: config.rosewater + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: sddm.reboot() + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/SessionPanel.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/SessionPanel.qml new file mode 100644 index 0000000..0edfcb3 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/SessionPanel.qml @@ -0,0 +1,156 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQml.Models 2.15 + +Item { + property var session: sessionList.currentIndex + implicitHeight: sessionButton.height + implicitWidth: sessionButton.width + DelegateModel { + id: sessionWrapper + model: sessionModel + delegate: ItemDelegate { + id: sessionEntry + height: inputHeight + width: parent.width + highlighted: sessionList.currentIndex == index + contentItem: Text { + renderType: Text.NativeRendering + font.family: config.Font + font.pointSize: config.FontSize + font.bold: true + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: config.text + text: name + } + background: Rectangle { + id: sessionEntryBackground + color: config.surface1 + radius: 3 + } + states: [ + State { + name: "hovered" + when: sessionEntry.hovered + PropertyChanges { + target: sessionEntryBackground + color: config.surface2 + } + } + ] + transitions: Transition { + PropertyAnimation { + property: "color" + duration: 300 + } + } + MouseArea { + anchors.fill: parent + onClicked: { + sessionList.currentIndex = index + sessionPopup.close() + } + } + } + } + Button { + id: sessionButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/settings.svg") + height: height + width: width + color: config.text + } + background: Rectangle { + id: sessionButtonBackground + color: config.surface0 + radius: 3 + } + states: [ + State { + name: "pressed" + when: sessionButton.down + PropertyChanges { + target: sessionButtonBackground + color: config.surface1 + } + }, + State { + name: "hovered" + when: sessionButton.hovered + PropertyChanges { + target: sessionButtonBackground + color: config.surface2 + } + }, + State { + name: "selection" + when: sessionPopup.visible + PropertyChanges { + target: sessionButtonBackground + color: config.surface2 + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 150 + } + } + onClicked: { + sessionPopup.visible ? sessionPopup.close() : sessionPopup.open() + sessionButton.state = "pressed" + } + } + Popup { + id: sessionPopup + width: inputWidth + padding * 2 + x: (sessionButton.width + sessionList.spacing) * -7.6 + y: -(contentHeight + padding * 2) + sessionButton.height + padding: inputHeight / 10 + background: Rectangle { + radius: 5.4 + color: config.surface0 + } + contentItem: ListView { + id: sessionList + implicitHeight: contentHeight + spacing: 8 + model: sessionWrapper + currentIndex: sessionModel.lastIndex + clip: true + } + enter: Transition { + ParallelAnimation { + NumberAnimation { + property: "opacity" + from: 0 + to: 1 + duration: 400 + easing.type: Easing.OutExpo + } + NumberAnimation { + property: "x" + from: sessionPopup.x + (inputWidth * 0.1) + to: sessionPopup.x + duration: 500 + easing.type: Easing.OutExpo + } + } + } + exit: Transition { + NumberAnimation { + property: "opacity" + from: 1 + to: 0 + duration: 300 + easing.type: Easing.OutExpo + } + } + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/SleepButton.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/SleepButton.qml new file mode 100644 index 0000000..f4a4b7a --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/SleepButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + implicitHeight: sleepButton.height + implicitWidth: sleepButton.width + Button { + id: sleepButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/sleep.svg") + height: height + width: width + color: config.crust + } + background: Rectangle { + id: sleepButtonBg + color: config.red + radius: 3 + } + states: [ + State { + name: "hovered" + when: sleepButton.hovered + PropertyChanges { + target: sleepButtonBg + color: config.rosewater + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: sddm.suspend() + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Components/UserField.qml b/roles/sddm/files/themes/catppuccin-macchiato/Components/UserField.qml new file mode 100644 index 0000000..9f8ca61 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Components/UserField.qml @@ -0,0 +1,50 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +TextField { + id: userField + height: inputHeight + width: inputWidth + selectByMouse: true + echoMode: TextInput.Normal + selectionColor: config.overlay0 + renderType: Text.NativeRendering + font { + family: config.Font + pointSize: config.FontSize + bold: true + } + color: config.text + horizontalAlignment: Text.AlignHCenter + placeholderText: "Username" + text: userModel.lastUser + background: Rectangle { + id: userFieldBackground + color: config.surface0 + radius: 3 + } + states: [ + State { + name: "focused" + when: userField.activeFocus + PropertyChanges { + target: userFieldBackground + color: config.surface1 + } + }, + State { + name: "hovered" + when: userField.hovered + PropertyChanges { + target: userFieldBackground + color: config.surface1 + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/LICENSE b/roles/sddm/files/themes/catppuccin-macchiato/LICENSE new file mode 100644 index 0000000..006383b --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Catppuccin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/roles/sddm/files/themes/catppuccin-macchiato/Main.qml b/roles/sddm/files/themes/catppuccin-macchiato/Main.qml new file mode 100644 index 0000000..422054b --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/Main.qml @@ -0,0 +1,48 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import "Components" + +Item { + id: root + height: Screen.height + width: Screen.width + Rectangle { + id: background + anchors.fill: parent + height: parent.height + width: parent.width + z: 0 + color: config.base + } + Image { + id: backgroundImage + anchors.fill: parent + height: parent.height + width: parent.width + fillMode: Image.PreserveAspectCrop + visible: config.CustomBackground == "true" ? true : false + z: 1 + source: config.Background + asynchronous: false + cache: true + mipmap: true + clip: true + } + Item { + id: mainPanel + z: 3 + anchors { + fill: parent + margins: 50 + } + Clock { + id: time + visible: config.ClockEnabled == "true" ? true : false + } + LoginPanel { + id: loginPanel + anchors.fill: parent + } + } +} diff --git a/roles/sddm/files/themes/catppuccin-macchiato/assets/angle-down.png b/roles/sddm/files/themes/catppuccin-macchiato/assets/angle-down.png new file mode 100644 index 0000000..f621bfc Binary files /dev/null and b/roles/sddm/files/themes/catppuccin-macchiato/assets/angle-down.png differ diff --git a/roles/sddm/files/themes/catppuccin-macchiato/backgrounds/.gitkeep b/roles/sddm/files/themes/catppuccin-macchiato/backgrounds/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/roles/sddm/files/themes/catppuccin-macchiato/icons/power.svg b/roles/sddm/files/themes/catppuccin-macchiato/icons/power.svg new file mode 100644 index 0000000..70495dd --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/icons/power.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/roles/sddm/files/themes/catppuccin-macchiato/icons/reboot.svg b/roles/sddm/files/themes/catppuccin-macchiato/icons/reboot.svg new file mode 100644 index 0000000..5506bbb --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/icons/reboot.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/roles/sddm/files/themes/catppuccin-macchiato/icons/settings.svg b/roles/sddm/files/themes/catppuccin-macchiato/icons/settings.svg new file mode 100644 index 0000000..9a64fbd --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/roles/sddm/files/themes/catppuccin-macchiato/icons/sleep.svg b/roles/sddm/files/themes/catppuccin-macchiato/icons/sleep.svg new file mode 100644 index 0000000..4102f2d --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/icons/sleep.svg @@ -0,0 +1,5 @@ + + +moon + + \ No newline at end of file diff --git a/roles/sddm/files/themes/catppuccin-macchiato/metadata.desktop b/roles/sddm/files/themes/catppuccin-macchiato/metadata.desktop new file mode 100644 index 0000000..d6693d5 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/metadata.desktop @@ -0,0 +1,14 @@ +[SddmGreeterTheme] +Name=Catppuccin macchiato +Description=Soothing pastel theme for SDDM +Type=sddm-theme +Version=2.1 +Website=https://github.com/catppuccin/sddm +Screenshot=preview.png +MainScript=Main.qml +ConfigFile=theme.conf +TranslationsDirectory=translations +Theme-Id=Catppuccin +Theme-API=2.0 +License=MIT +QtVersion=6 diff --git a/roles/sddm/files/themes/catppuccin-macchiato/preview.png b/roles/sddm/files/themes/catppuccin-macchiato/preview.png new file mode 100644 index 0000000..bc262d2 Binary files /dev/null and b/roles/sddm/files/themes/catppuccin-macchiato/preview.png differ diff --git a/roles/sddm/files/themes/catppuccin-macchiato/theme.conf b/roles/sddm/files/themes/catppuccin-macchiato/theme.conf new file mode 100644 index 0000000..ce839a7 --- /dev/null +++ b/roles/sddm/files/themes/catppuccin-macchiato/theme.conf @@ -0,0 +1,39 @@ +[General] +Font="CaskaydiaCove Nerd Font" +FontSize=12 +ClockEnabled="true" +CustomBackground="false" +LoginBackground="false" +Background="backgrounds/wall.jpg" + +# Uncomment this option to show the last letter of the password +# for the number of milliseconds specified +# PasswordShowLastLetter=1000 + +# DON'T CHANGE THESE +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" diff --git a/roles/sddm/tasks/main.yml b/roles/sddm/tasks/main.yml index d25735c..cc4aedd 100644 --- a/roles/sddm/tasks/main.yml +++ b/roles/sddm/tasks/main.yml @@ -6,9 +6,23 @@ state: latest become: true +- name: "[SDDM] Create config folder" + ansible.builtin.file: + mode: 0755 + path: "/etc/sddm.conf.d/" + state: directory + become: true + - name: "[SDDM] Configure" ansible.builtin.copy: mode: 0755 - src: "./" - dest: "/etc/" + src: "./sddm.conf.d/" + dest: "/etc/sddm.conf.d/" + become: true + +- name: "[SDDM] Configure theme" + ansible.builtin.copy: + mode: 0755 + src: "./themes/" + dest: "/usr/share/sddm/themes/" become: true diff --git a/roles/swaylock/files/swaylock.conf b/roles/swaylock/files/swaylock.conf deleted file mode 100755 index 8142fce..0000000 --- a/roles/swaylock/files/swaylock.conf +++ /dev/null @@ -1,10 +0,0 @@ -clock -grace=5 -indicator -color=550000 -timestr=%k:%M -datestr=%a %e.%m.%Y -effect-blur=4x2 -effect-scale=0.4 -effect-vignette=0.2:0.5 -image=~/.config/background diff --git a/roles/swaylock/tasks/main.yml b/roles/swaylock/tasks/main.yml deleted file mode 100644 index 893b3fc..0000000 --- a/roles/swaylock/tasks/main.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- name: "[Swaylock] Install" - kewlfft.aur.aur: - name: - - swaylock-effects-git - use: paru - state: present - become: true - -- name: "[Swaylock] Create config folder" - ansible.builtin.file: - mode: "0755" - path: "{{ ansible_user_dir }}/.config/swaylock" - state: directory - -- name: "[Swaylock] Configure" - ansible.builtin.copy: - src: "./" - dest: "{{ ansible_user_dir }}/.config/swaylock" diff --git a/roles/system/tasks/Archlinux.yml b/roles/system/tasks/Archlinux.yml index f916244..cfe93be 100644 --- a/roles/system/tasks/Archlinux.yml +++ b/roles/system/tasks/Archlinux.yml @@ -25,6 +25,7 @@ - network-manager-applet - inotify-tools - cifs-utils + - reflector - ntfs-3g - openssh - upower @@ -38,7 +39,6 @@ - eza - bat - jq - use: paru state: present tags: - default_pkgs @@ -50,7 +50,6 @@ - maven - rustup - npm - use: paru state: present tags: - programming_pkgs @@ -70,7 +69,7 @@ - noto-fonts-cjk - noto-fonts-emoji - ttf-font-awesome - - ttf-firacode-nerd + - nerd-fonts # Pipewire - pipewire - wireplumber @@ -88,11 +87,9 @@ - cups-pdf # Theming #- qt5ct - - nwg-look # Icon Themes - papirus-icon-theme # Cursor Themes - - rose-pine-hyprcursor - xcursor-breeze # Themes - catppuccin-gtk-theme-frappe @@ -114,7 +111,6 @@ - polkit-kde-agent - xdg-desktop-portal-hyprland - gnome-keyring - use: paru state: present tags: - desktop_pkgs @@ -123,17 +119,16 @@ - name: "[Arch] Install desktop applications" kewlfft.aur.aur: name: - - youtube-music - libreoffice-fresh - nextcloud-client + - element-desktop - youtube-music - - waypaper-git - vscodium-bin - pavucontrol + - thunderbird - hyprpicker - brave-bin - obsidian - - discord - yt-dlp - nvtop - nemo @@ -148,7 +143,6 @@ #- gucharmap # Calculator #- galculator - use: paru state: present tags: - desktop_apps @@ -207,7 +201,6 @@ - lib32-gst-plugins-base-libs - vulkan-icd-loader - lib32-vulkan-icd-loader - use: paru state: present tags: - desktop_pkgs @@ -226,7 +219,6 @@ - lib32-mesa - vulkan-radeon - lib32-vulkan-radeon - use: paru state: present when: "system == 'desktop_full' and 'Advanced Micro Devices' in gpu_info.stdout" @@ -236,7 +228,6 @@ - lib32-mesa - vulkan-intel - lib32-vulkan-intel - use: paru state: present tags: - desktop_pkgs @@ -249,7 +240,6 @@ - nvidia-utils - lib32-nvidia-utils - nvidia-settings - use: paru state: present tags: - desktop_pkgs diff --git a/roles/wakatime/tasks/main.yml b/roles/wakatime/tasks/main.yml new file mode 100644 index 0000000..e2010a9 --- /dev/null +++ b/roles/wakatime/tasks/main.yml @@ -0,0 +1,7 @@ +--- +- name: "[Wakatime]" + ansible.builtin.template: + mode: 0644 + src: wakatime.cfg + dest: "{{ ansible_user_dir }}/.wakatime.cfg" + ignore_errors: true diff --git a/roles/wakatime/templates/wakatime.cfg b/roles/wakatime/templates/wakatime.cfg new file mode 100644 index 0000000..51537c8 --- /dev/null +++ b/roles/wakatime/templates/wakatime.cfg @@ -0,0 +1,3 @@ +[settings] +api_url = https://wakapi.keulelab.de/api +api_key = {{ wakapi_key }} diff --git a/roles/yazi/files/keymap.toml b/roles/yazi/files/keymap.toml index 6010eb8..c2ac77e 100644 --- a/roles/yazi/files/keymap.toml +++ b/roles/yazi/files/keymap.toml @@ -5,10 +5,15 @@ run = "cd ~/git/" desc = "GIT" [[manager.prepend_keymap]] -on = [ "b", "d" ] +on = [ "b", "D" ] run = "cd ~/Data/" desc = "DATA" +[[manager.prepend_keymap]] +on = [ "b", "d" ] +run = "cd ~/.dotfiles/" +desc = "DOTFILES" + [[manager.prepend_keymap]] on = [ "b", "s" ] run = "plugin bookmark --args=save"