diff --git a/LICENSE b/LICENSE
deleted file mode 120000
index 9193119..0000000
--- a/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-LICENSE-GPL-3.0-or-later
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..f288702
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+ GNU 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.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. 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
+them 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 prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. 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.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ 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.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ 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
+state 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)
+
+ 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 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program 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, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU 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 Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/LICENSE-GPL-3.0-or-later b/LICENSE-GPL-3.0-or-later
deleted file mode 100644
index f288702..0000000
--- a/LICENSE-GPL-3.0-or-later
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU 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.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. 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
-them 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 prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. 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.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey 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;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If 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 convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- 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.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-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.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- 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
-state 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)
-
- 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program 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, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU 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 Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/_sources/generated.json b/_sources/generated.json
index 4d61696..9f19bbd 100644
--- a/_sources/generated.json
+++ b/_sources/generated.json
@@ -22,7 +22,7 @@
},
"TrackersListCollection": {
"cargoLocks": null,
- "date": "2025-11-07",
+ "date": "2025-11-11",
"extract": null,
"name": "TrackersListCollection",
"passthru": null,
@@ -34,14 +34,14 @@
"name": null,
"owner": "XIU2",
"repo": "TrackersListCollection",
- "rev": "8a2547cee4f92f12ec58923ce4ec065b73357f2b",
- "sha256": "sha256-Y9o86dtvuu4ELF816ln4+jLXduUvBVhTJQcb5mB9ij8=",
+ "rev": "732ee83a7f9fc03a527e2b3e6dbb05e94335a3de",
+ "sha256": "sha256-jijgOp6SLzoIB3Vt94brwF316HwqYU8JppwTpXF+Y+A=",
"sparseCheckout": [
"all.txt"
],
"type": "github"
},
- "version": "8a2547cee4f92f12ec58923ce4ec065b73357f2b"
+ "version": "732ee83a7f9fc03a527e2b3e6dbb05e94335a3de"
},
"cliphist": {
"cargoLocks": null,
@@ -166,29 +166,9 @@
},
"version": "v3.10.0"
},
- "spotifyd": {
- "cargoLocks": null,
- "date": "2025-09-04",
- "extract": null,
- "name": "spotifyd",
- "passthru": null,
- "pinned": false,
- "src": {
- "deepClone": false,
- "fetchSubmodules": false,
- "leaveDotGit": false,
- "name": null,
- "rev": "f1acee9c6160db92dcd4214e96654cbbaed0e38a",
- "sha256": "sha256-dcc+sklPJvV34U1A/eTD1kfIey4o5/kPq4yd72ey7LE=",
- "sparseCheckout": [],
- "type": "git",
- "url": "https://github.com/ulic-youthlic/spotifyd.git"
- },
- "version": "f1acee9c6160db92dcd4214e96654cbbaed0e38a"
- },
"spotx": {
"cargoLocks": null,
- "date": "2025-10-22",
+ "date": "2025-11-07",
"extract": null,
"name": "spotx",
"passthru": null,
@@ -200,12 +180,12 @@
"name": null,
"owner": "SpotX-Official",
"repo": "SpotX-Bash",
- "rev": "de9c99a1f2c74ee722b3216ca28c8f7f76ac206d",
- "sha256": "sha256-p93UHSAZGskvt26vtDipXFBN/Biola1gK1QHS6EsYAE=",
+ "rev": "a2bd8479a2a80a068e749530aa5a78b2918358b8",
+ "sha256": "sha256-pQgXi6AU0OlJgOe3GB+m1fivchzbfTp6UWF54hx+QNU=",
"sparseCheckout": [],
"type": "github"
},
- "version": "de9c99a1f2c74ee722b3216ca28c8f7f76ac206d"
+ "version": "a2bd8479a2a80a068e749530aa5a78b2918358b8"
},
"tree-sitter-idris": {
"cargoLocks": null,
@@ -295,4 +275,4 @@
},
"version": "184f55dbc5320c34a56d02353410ad35a0f3e090"
}
-}
\ No newline at end of file
+}
diff --git a/_sources/generated.nix b/_sources/generated.nix
index d8de612..fc916a1 100644
--- a/_sources/generated.nix
+++ b/_sources/generated.nix
@@ -15,18 +15,18 @@
};
TrackersListCollection = {
pname = "TrackersListCollection";
- version = "8a2547cee4f92f12ec58923ce4ec065b73357f2b";
+ version = "732ee83a7f9fc03a527e2b3e6dbb05e94335a3de";
src = fetchFromGitHub {
owner = "XIU2";
repo = "TrackersListCollection";
- rev = "8a2547cee4f92f12ec58923ce4ec065b73357f2b";
+ rev = "732ee83a7f9fc03a527e2b3e6dbb05e94335a3de";
fetchSubmodules = false;
deepClone = false;
leaveDotGit = false;
sparseCheckout = [ "all.txt" ];
- sha256 = "sha256-Y9o86dtvuu4ELF816ln4+jLXduUvBVhTJQcb5mB9ij8=";
+ sha256 = "sha256-jijgOp6SLzoIB3Vt94brwF316HwqYU8JppwTpXF+Y+A=";
};
- date = "2025-11-07";
+ date = "2025-11-11";
};
cliphist = {
pname = "cliphist";
@@ -119,15 +119,15 @@
};
spotx = {
pname = "spotx";
- version = "de9c99a1f2c74ee722b3216ca28c8f7f76ac206d";
+ version = "a2bd8479a2a80a068e749530aa5a78b2918358b8";
src = fetchFromGitHub {
owner = "SpotX-Official";
repo = "SpotX-Bash";
- rev = "de9c99a1f2c74ee722b3216ca28c8f7f76ac206d";
+ rev = "a2bd8479a2a80a068e749530aa5a78b2918358b8";
fetchSubmodules = false;
- sha256 = "sha256-p93UHSAZGskvt26vtDipXFBN/Biola1gK1QHS6EsYAE=";
+ sha256 = "sha256-pQgXi6AU0OlJgOe3GB+m1fivchzbfTp6UWF54hx+QNU=";
};
- date = "2025-10-22";
+ date = "2025-11-07";
};
tree-sitter-idris = {
pname = "tree-sitter-idris";
diff --git a/flake.lock b/flake.lock
index d80729b..dab0030 100644
--- a/flake.lock
+++ b/flake.lock
@@ -78,11 +78,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1762174035,
- "narHash": "sha256-I5AEdZ17rUUvOK9KDD7KgcPhiYvsZwt5UYcx4ZU/lhg=",
+ "lastModified": 1762735459,
+ "narHash": "sha256-VZRCyMRSLFORBzH+pYzDSx/ooIBD5Ohrv28sWktSiqk=",
"owner": "HeitorAugustoLN",
"repo": "betterfox-nix",
- "rev": "9505c7f12d01462782eeb46686677f11a4b998e5",
+ "rev": "37ac3490a7e2825985ce5c0004489b2264ea1cd0",
"type": "github"
},
"original": {
@@ -100,11 +100,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
- "lastModified": 1762233483,
- "narHash": "sha256-7xrOMk264pHNe1EC55k+Q4KX+pebIepNIPAsqXCgnGk=",
+ "lastModified": 1763246168,
+ "narHash": "sha256-gUDJZGSOg5syHtQvLImOKL6Eaw4e1ybz4o5pid66kQg=",
"owner": "chaotic-cx",
"repo": "nyx",
- "rev": "035a14f12abe016db315413480fb913196c4ed14",
+ "rev": "6476fbdd52621b4a532309d982d468dc08204151",
"type": "github"
},
"original": {
@@ -194,11 +194,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
- "lastModified": 1762359868,
- "narHash": "sha256-FKn8KF2UNbxZIQJ09VitZ/16E8toZN4gM+qqljVf45E=",
+ "lastModified": 1763310170,
+ "narHash": "sha256-XFB1UvfWL9JgJqBKicGe2f8+cW7zh1yMcgKof8dGlvw=",
"owner": "nix-community",
"repo": "emacs-overlay",
- "rev": "e828183cf33679f67da737218bb7a3b5ab89a5dd",
+ "rev": "d33a3fae28a7f2c8ab0b6bdfd929eb73692ce06a",
"type": "github"
},
"original": {
@@ -217,11 +217,11 @@
]
},
"locked": {
- "lastModified": 1762359868,
- "narHash": "sha256-FKn8KF2UNbxZIQJ09VitZ/16E8toZN4gM+qqljVf45E=",
+ "lastModified": 1763281507,
+ "narHash": "sha256-cSwgQxlLUTkw2Sdtgh/extCGIAELJCZN+Vb+9G02MIM=",
"owner": "nix-community",
"repo": "emacs-overlay",
- "rev": "e828183cf33679f67da737218bb7a3b5ab89a5dd",
+ "rev": "70fa92384ef398a4b4b5002c6caac08b1e01dd87",
"type": "github"
},
"original": {
@@ -286,11 +286,11 @@
]
},
"locked": {
- "lastModified": 1762040540,
- "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
+ "lastModified": 1762440070,
+ "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "0010412d62a25d959151790968765a70c436598b",
+ "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
"type": "github"
},
"original": {
@@ -304,11 +304,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
- "lastModified": 1762440070,
- "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
+ "lastModified": 1762980239,
+ "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
+ "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github"
},
"original": {
@@ -346,11 +346,11 @@
]
},
"locked": {
- "lastModified": 1762440070,
- "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
+ "lastModified": 1762980239,
+ "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
+ "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github"
},
"original": {
@@ -364,11 +364,11 @@
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
- "lastModified": 1762040540,
- "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
+ "lastModified": 1762980239,
+ "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "0010412d62a25d959151790968765a70c436598b",
+ "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github"
},
"original": {
@@ -385,11 +385,11 @@
]
},
"locked": {
- "lastModified": 1762040540,
- "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
+ "lastModified": 1762980239,
+ "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "0010412d62a25d959151790968765a70c436598b",
+ "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github"
},
"original": {
@@ -543,33 +543,33 @@
"gnome-shell": {
"flake": false,
"locked": {
- "lastModified": 1748186689,
- "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
+ "host": "gitlab.gnome.org",
+ "lastModified": 1762869044,
+ "narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
"owner": "GNOME",
"repo": "gnome-shell",
- "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
- "type": "github"
+ "rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
+ "type": "gitlab"
},
"original": {
+ "host": "gitlab.gnome.org",
"owner": "GNOME",
- "ref": "48.2",
+ "ref": "gnome-49",
"repo": "gnome-shell",
- "type": "github"
+ "type": "gitlab"
}
},
"helix": {
"inputs": {
- "nixpkgs": [
- "nixpkgs"
- ],
+ "nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1762352939,
- "narHash": "sha256-yYFrlLL3UCyWfZOMnoAtUzS3BB8gk2KpEnl0vHQvkfM=",
+ "lastModified": 1763309322,
+ "narHash": "sha256-2M6D/i0Poh529SovRSsM+m9sYqfl9GNMmDW4efKvh/4=",
"owner": "helix-editor",
"repo": "helix",
- "rev": "3f4a286c8dc586d3261bfba3cb2ec3fad5c36efe",
+ "rev": "d966e12930d4ea0093708457bde0951aa77660ec",
"type": "github"
},
"original": {
@@ -587,11 +587,11 @@
]
},
"locked": {
- "lastModified": 1762146130,
- "narHash": "sha256-/XOEA0a61fZ45i/BpaSsyLNNbw/yKwjMbkB/IWSGLzU=",
+ "lastModified": 1762964643,
+ "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "b5ed4afc2277339bdf0e9edf59befff7350cf075",
+ "rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"type": "github"
},
"original": {
@@ -607,11 +607,11 @@
]
},
"locked": {
- "lastModified": 1762463325,
- "narHash": "sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU=",
+ "lastModified": 1763313531,
+ "narHash": "sha256-yvdCYUL85zEDp2NzPUBmaNBXP6KnWEOhAk3j7PTfsKw=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "0562fef070a1027325dd4ea10813d64d2c967b39",
+ "rev": "3670a78eee49deebe4825fc8ecc46b172d1a8391",
"type": "github"
},
"original": {
@@ -622,11 +622,11 @@
},
"import-tree": {
"locked": {
- "lastModified": 1761120675,
- "narHash": "sha256-TEbh9zISiQcU82VwVoEbmXHnSGlUxTwvjJA9g9ErSDA=",
+ "lastModified": 1762327901,
+ "narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=",
"owner": "vic",
"repo": "import-tree",
- "rev": "a037ed2a58fc0ebed9e93b9ef79b0646e648f719",
+ "rev": "90fa129798be99cde036b78658e89475710966a1",
"type": "github"
},
"original": {
@@ -672,11 +672,11 @@
]
},
"locked": {
- "lastModified": 1761748321,
- "narHash": "sha256-hD5mVzmUeyVppjArdy2uVdQe/CQUR9i3WgZB05onE7A=",
+ "lastModified": 1762951919,
+ "narHash": "sha256-ma/xMEGf4J6n/RdZFdxXBJUQhP53HVEPQOC6Dp2TrkQ=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
- "rev": "533db5857c9e00ca352558a928417116ee08a824",
+ "rev": "3d248f6e8f877218dd2573fef8925ac997889922",
"type": "github"
},
"original": {
@@ -690,7 +690,7 @@
"crane": "crane",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_3",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": "nixpkgs_4",
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay_3"
},
@@ -712,15 +712,15 @@
"lix": {
"flake": false,
"locked": {
- "lastModified": 1761937274,
- "narHash": "sha256-KlELhsSq3XbemrGyQhmGurFu7m8wOEBw+8M04L7hn7A=",
- "rev": "91867941fa73afea7869b7c71ede82e5ef8927da",
+ "lastModified": 1759940703,
+ "narHash": "sha256-/dXDCzYnQbkqCsvUDIxgIH4BS/fyxIu73m2v4ftJLXQ=",
+ "rev": "75c03142049242a5687309e59e4f356fbc92789a",
"type": "tarball",
- "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/91867941fa73afea7869b7c71ede82e5ef8927da.tar.gz?rev=91867941fa73afea7869b7c71ede82e5ef8927da"
+ "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/75c03142049242a5687309e59e4f356fbc92789a.tar.gz?rev=75c03142049242a5687309e59e4f356fbc92789a"
},
"original": {
"type": "tarball",
- "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"
+ "url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz"
}
},
"lix-module": {
@@ -735,15 +735,16 @@
]
},
"locked": {
- "lastModified": 1761960361,
- "narHash": "sha256-FvuAw56NIVJpS3Kr8Wv9PpU4eehZMcdIVkxjStuYmqc=",
- "ref": "refs/heads/main",
- "rev": "c47f62187601ea2991b79a9bacdbfdf76cd29fbe",
- "revCount": 167,
+ "lastModified": 1756125859,
+ "narHash": "sha256-6a+PWILmqHCs9B5eIBLg6HSZ8jYweZpgOWO8FlyVwYI=",
+ "ref": "release-2.93",
+ "rev": "d3292125035b04df00d01549a26e948631fabe1e",
+ "revCount": 156,
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module"
},
"original": {
+ "ref": "release-2.93",
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module"
}
@@ -752,14 +753,14 @@
"inputs": {
"flake-parts": "flake-parts_4",
"neovim-src": "neovim-src",
- "nixpkgs": "nixpkgs_4"
+ "nixpkgs": "nixpkgs_5"
},
"locked": {
- "lastModified": 1762473887,
- "narHash": "sha256-4VHnHYQGQ8K+i5slfTwnpyP12hi7mq0V4Wra6EB3k5A=",
+ "lastModified": 1763337828,
+ "narHash": "sha256-gBf/sNC/u0EztJybm7yP0OfbEKyN3WVi7J7FLbpswX0=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
- "rev": "52fab1d59b4bc5a4d11a1c7f8cdfb47412ff8572",
+ "rev": "227971b938a6d83e3b839e5f11991511374020b7",
"type": "github"
},
"original": {
@@ -771,11 +772,11 @@
"neovim-src": {
"flake": false,
"locked": {
- "lastModified": 1762421241,
- "narHash": "sha256-sRgrLaZ1XOAxAKq0iENJVmVj/X7jhAd99x25+OKbxLc=",
+ "lastModified": 1763328107,
+ "narHash": "sha256-N+Al++BfSq1/JZE3LY1DrefnO+kXm3y1OcqOnKrBGJQ=",
"owner": "neovim",
"repo": "neovim",
- "rev": "f2bfde9140ca646db3e2b67b97b1e54b70408703",
+ "rev": "f0294418d65d005d885eabf80eecc7255358b95e",
"type": "github"
},
"original": {
@@ -796,11 +797,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1762492910,
- "narHash": "sha256-XFsC9zakODOSU15VUvz61SI7EBR0WkMQJ+HU8OeVhdI=",
+ "lastModified": 1763325933,
+ "narHash": "sha256-9liktF34Fu8wT3V5wG736RuaAT6+W8jYkf32kbNSm8s=",
"owner": "sodiboo",
"repo": "niri-flake",
- "rev": "ba50ee8656c5808cb945d08a3858cde049fa77f8",
+ "rev": "be1983b9b9359241a202eb3ec4f2c966f5bebe5b",
"type": "github"
},
"original": {
@@ -829,11 +830,11 @@
"niri-unstable": {
"flake": false,
"locked": {
- "lastModified": 1762146685,
- "narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=",
+ "lastModified": 1763321761,
+ "narHash": "sha256-7M81UIShdVH2AtMonx7+Hh8EL5dpP9Pa/0YLZMNrd7A=",
"owner": "YaLTeR",
"repo": "niri",
- "rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943",
+ "rev": "aecbd679e39a321495964995fa1e37d84bd91ddf",
"type": "github"
},
"original": {
@@ -852,11 +853,11 @@
"systems": "systems_3"
},
"locked": {
- "lastModified": 1762418669,
- "narHash": "sha256-y80u5pGLXbhD72il0s/x9IwIzIlCoTyCmBKLROs8Rbw=",
+ "lastModified": 1763282415,
+ "narHash": "sha256-Blb9l3DjFXjhYOqR7RoA/TQUS7BnBN4VufpRvG4XSlo=",
"owner": "marienz",
"repo": "nix-doom-emacs-unstraightened",
- "rev": "6a76389b304a33d05c28999cadfcb90c944b85c8",
+ "rev": "b04d4b93dc60bc586224b28564b116f0692ce05c",
"type": "github"
},
"original": {
@@ -868,14 +869,14 @@
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts_5",
- "nixpkgs": "nixpkgs_5"
+ "nixpkgs": "nixpkgs_6"
},
"locked": {
- "lastModified": 1762480511,
- "narHash": "sha256-NIFQhQG7quJiysxPNP7k/3rRMaRKSL2x8qR8jjvk6yk=",
+ "lastModified": 1763313066,
+ "narHash": "sha256-i2s3jPiMRPLd1mcL0oNMSbrbmq9ba/Qo4YPVPehPmEs=",
"owner": "fufexan",
"repo": "nix-gaming",
- "rev": "cf716e9b2f0fda1b1809156121037f646815eb26",
+ "rev": "dfa5f946fe41f085e34159a818790f69a19a0022",
"type": "github"
},
"original": {
@@ -918,11 +919,11 @@
]
},
"locked": {
- "lastModified": 1759653262,
- "narHash": "sha256-uTiQXY/ZlplEq1j2jH0k6oDzldid0xHgnLsLQyRRbvk=",
+ "lastModified": 1763090138,
+ "narHash": "sha256-7h9pE4Sm/gk3KSa0N/kTSm3Jr3VSriKhCzWe94r9nRE=",
"owner": "nix-community",
"repo": "nix4nvchad",
- "rev": "9d91858966b5d4e87ee52e16993988dfea9b0f94",
+ "rev": "856b909046ad6f07e8337736ecf3702460be2b0f",
"type": "github"
},
"original": {
@@ -933,11 +934,11 @@
},
"nixos-hardware": {
"locked": {
- "lastModified": 1762463231,
- "narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=",
+ "lastModified": 1762847253,
+ "narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
"owner": "NixOS",
"repo": "nixos-hardware",
- "rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226",
+ "rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
"type": "github"
},
"original": {
@@ -949,11 +950,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1762111121,
- "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
+ "lastModified": 1762977756,
+ "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
+ "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
"type": "github"
},
"original": {
@@ -963,22 +964,6 @@
"type": "github"
}
},
- "nixpkgs-455083": {
- "locked": {
- "lastModified": 1761759229,
- "narHash": "sha256-8P72kOULqB36MKrNl5HToySTA6HbYnldR3CQohJxpxc=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "9b6d78b4d933aed3785362dccc0bb3440b779d00",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "pull/455083/head",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nixpkgs-lib": {
"locked": {
"lastModified": 1761765539,
@@ -1011,11 +996,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1762233356,
- "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
+ "lastModified": 1763049705,
+ "narHash": "sha256-A5LS0AJZ1yDPTa2fHxufZN++n8MCmtgrJDtxFxrH4S8=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
+ "rev": "3acb677ea67d4c6218f33de0db0955f116b7588c",
"type": "github"
},
"original": {
@@ -1027,11 +1012,11 @@
},
"nixpkgs-stable_2": {
"locked": {
- "lastModified": 1762233356,
- "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
+ "lastModified": 1763049705,
+ "narHash": "sha256-A5LS0AJZ1yDPTa2fHxufZN++n8MCmtgrJDtxFxrH4S8=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
+ "rev": "3acb677ea67d4c6218f33de0db0955f116b7588c",
"type": "github"
},
"original": {
@@ -1041,119 +1026,7 @@
"type": "github"
}
},
- "nixpkgs_2": {
- "locked": {
- "lastModified": 1762111121,
- "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_3": {
- "locked": {
- "lastModified": 1754243818,
- "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable-small",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_4": {
- "locked": {
- "lastModified": 1762361079,
- "narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_5": {
- "locked": {
- "lastModified": 1761880412,
- "narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_6": {
- "locked": {
- "lastModified": 1762363567,
- "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_7": {
- "locked": {
- "lastModified": 1762156382,
- "narHash": "sha256-Yg7Ag7ov5+36jEFC1DaZh/12SEXo6OO3/8rqADRxiqs=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "7241bcbb4f099a66aafca120d37c65e8dda32717",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_8": {
- "locked": {
- "lastModified": 1762363567,
- "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_9": {
+ "nixpkgs_10": {
"locked": {
"lastModified": 1761236834,
"narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=",
@@ -1169,19 +1042,147 @@
"type": "github"
}
},
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1762977756,
+ "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1759381078,
+ "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_4": {
+ "locked": {
+ "lastModified": 1754243818,
+ "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable-small",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_5": {
+ "locked": {
+ "lastModified": 1763191728,
+ "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_6": {
+ "locked": {
+ "lastModified": 1763191728,
+ "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_7": {
+ "locked": {
+ "lastModified": 1762977756,
+ "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_8": {
+ "locked": {
+ "lastModified": 1763191728,
+ "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_9": {
+ "locked": {
+ "lastModified": 1762977756,
+ "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_6",
- "nixpkgs": "nixpkgs_7",
+ "nixpkgs": "nixpkgs_8",
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_6"
},
"locked": {
- "lastModified": 1762473729,
- "narHash": "sha256-0mKCvL4MUuraS3dVFgRETOM96t0n68J851gZ0HK8U1k=",
+ "lastModified": 1763334942,
+ "narHash": "sha256-ORaewCyY3Fff+XaGrRjWi0XYzC22YTr/H3oL9c9k+9I=",
"owner": "nix-community",
"repo": "nixvim",
- "rev": "f0dceb449af35c83a0e2bf23c71f50fc61aff42f",
+ "rev": "59af09b1814538b826f30eac8024d126d8c36efc",
"type": "github"
},
"original": {
@@ -1190,17 +1191,41 @@
"type": "github"
}
},
+ "noctalia": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "quickshell": [
+ "quickshell"
+ ],
+ "systems": "systems_7"
+ },
+ "locked": {
+ "lastModified": 1763340051,
+ "narHash": "sha256-S/H0WShZXqxxZw2K6vtylHoxhGIz2+0bOJ6C+05151Q=",
+ "owner": "noctalia-dev",
+ "repo": "noctalia-shell",
+ "rev": "df3751108916054b61c450a46ee3310c4c2908a4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "noctalia-dev",
+ "repo": "noctalia-shell",
+ "type": "github"
+ }
+ },
"nur": {
"inputs": {
"flake-parts": "flake-parts_7",
- "nixpkgs": "nixpkgs_8"
+ "nixpkgs": "nixpkgs_9"
},
"locked": {
- "lastModified": 1762490224,
- "narHash": "sha256-2wsVxoPC2T3d7FMd0oPtdoxe5YM+KUdC28AswkwXAaI=",
+ "lastModified": 1763342013,
+ "narHash": "sha256-MJZthRbFMeXMLXLVIekUo17G81G4rwIbsBLRotKaNAc=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "4318ccbc77e8db38d8c81bbbb0215962091a4e0e",
+ "rev": "293f62dfaaf6fc2861e73aafde9fdb7b83e5bd4a",
"type": "github"
},
"original": {
@@ -1299,6 +1324,26 @@
"type": "github"
}
},
+ "quickshell": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1763257314,
+ "narHash": "sha256-R7HJSluErPrCQk+VXNWJrE2Pjq582VRNWDHAk6j6wQI=",
+ "owner": "outfoxxed",
+ "repo": "quickshell",
+ "rev": "fdbb86a06acd6d1af6049a319c87a5c0badc22dc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "outfoxxed",
+ "repo": "quickshell",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"betterfox-nix": "betterfox-nix",
@@ -1318,11 +1363,12 @@
"nix-gaming": "nix-gaming",
"nix4nvchad": "nix4nvchad",
"nixos-hardware": "nixos-hardware",
- "nixpkgs": "nixpkgs_6",
- "nixpkgs-455083": "nixpkgs-455083",
+ "nixpkgs": "nixpkgs_7",
"nixvim": "nixvim",
+ "noctalia": "noctalia",
"nur": "nur",
"nvchad-starter": "nvchad-starter",
+ "quickshell": "quickshell",
"sops-nix": "sops-nix",
"spacemacs": "spacemacs",
"stylix": "stylix",
@@ -1337,11 +1383,11 @@
]
},
"locked": {
- "lastModified": 1762137611,
- "narHash": "sha256-sTqb10FR/YQCuGbw16qxliX0NFlYg6evSEjN8w+9IYE=",
+ "lastModified": 1763087910,
+ "narHash": "sha256-eB9Z1mWd1U6N61+F8qwDggX0ihM55s4E0CluwNukJRU=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "3a0ebe5d2965692f990cb27e62f501ad35e3deeb",
+ "rev": "cf4a68749733d45c0420726596367acd708eb2e8",
"type": "github"
},
"original": {
@@ -1399,11 +1445,11 @@
]
},
"locked": {
- "lastModified": 1760998189,
- "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
+ "lastModified": 1763264763,
+ "narHash": "sha256-N0BEoJIlJ+M6sWZJ8nnfAjGY9VLvM6MXMitRenmhBkY=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
+ "rev": "882e56c8293e44d57d882b800a82f8b2ee7a858f",
"type": "github"
},
"original": {
@@ -1415,11 +1461,11 @@
"spacemacs": {
"flake": false,
"locked": {
- "lastModified": 1762463183,
- "narHash": "sha256-yX7Y447SV3ww5QciuUlaGFZEj5yEhZyOoYFa0rdKw3A=",
+ "lastModified": 1763284982,
+ "narHash": "sha256-VjgvKvCgO3wHutai2q+KUpXMTrGXQI+IPUU4ziMK3IM=",
"owner": "syl20bnr",
"repo": "spacemacs",
- "rev": "3b82bf591e735d5ad31467fae55eb85585f6aba3",
+ "rev": "4db5cc732c4da5a65366fc2d585d315363a7a6da",
"type": "github"
},
"original": {
@@ -1443,7 +1489,7 @@
"nixpkgs"
],
"nur": "nur_2",
- "systems": "systems_7",
+ "systems": "systems_8",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@@ -1451,11 +1497,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1762264356,
- "narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=",
+ "lastModified": 1763314990,
+ "narHash": "sha256-gs98KFE3X2HQ64gsIpQNsj1lKFTdkNdX+1KMQTDXEus=",
"owner": "nix-community",
"repo": "stylix",
- "rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b",
+ "rev": "b68e8220689a6f0393204b07be1bc14bb973a0ed",
"type": "github"
},
"original": {
@@ -1569,6 +1615,21 @@
"type": "github"
}
},
+ "systems_8": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
"tinted-foot": {
"flake": false,
"locked": {
@@ -1652,14 +1713,14 @@
},
"treefmt-nix": {
"inputs": {
- "nixpkgs": "nixpkgs_9"
+ "nixpkgs": "nixpkgs_10"
},
"locked": {
- "lastModified": 1762410071,
- "narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=",
+ "lastModified": 1762938485,
+ "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=",
"owner": "numtide",
"repo": "treefmt-nix",
- "rev": "97a30861b13c3731a84e09405414398fbf3e109f",
+ "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4",
"type": "github"
},
"original": {
@@ -1688,11 +1749,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
- "lastModified": 1762488100,
- "narHash": "sha256-pD8YqwP0/irHWzJtVElnVljR+OaJPAVbJBwqix+uB5A=",
+ "lastModified": 1762747449,
+ "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
- "rev": "3cd3edffe1be197326e9314816b16bb4e3d685b1",
+ "rev": "6338574bc5c036487486acde264f38f39ea15fad",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 803014f..15fabc8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -49,11 +49,10 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
# nixpkgs.url = "github:NixOS/nixpkgs/master";
- nixpkgs-455083.url = "github:NixOS/nixpkgs?ref=pull/455083/head";
lix-module = {
- # url = "git+https://git.lix.systems/lix-project/nixos-module?ref=release-2.93";
- url = "git+https://git.lix.systems/lix-project/nixos-module";
+ url = "git+https://git.lix.systems/lix-project/nixos-module?ref=release-2.93";
+ # url = "git+https://git.lix.systems/lix-project/nixos-module";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
@@ -65,9 +64,6 @@
owner = "helix-editor";
repo = "helix";
ref = "master";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
};
home-manager = {
@@ -228,5 +224,21 @@
owner = "fufexan";
repo = "nix-gaming";
};
+
+ quickshell = {
+ type = "github";
+ owner = "outfoxxed";
+ repo = "quickshell";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ noctalia = {
+ type = "github";
+ owner = "noctalia-dev";
+ repo = "noctalia-shell";
+ inputs = {
+ nixpkgs.follows = "nixpkgs";
+ quickshell.follows = "quickshell";
+ };
+ };
};
}
diff --git a/flake/templates.nix b/flake/templates.nix
deleted file mode 100644
index 22b75a4..0000000
--- a/flake/templates.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- flake-parts-lib,
- lib,
- rootPath,
- ...
-}: {
- options = {
- flake = flake-parts-lib.mkSubmoduleOptions {
- templates = lib.mkOption {
- type = lib.types.lazyAttrsOf lib.types.raw;
- };
- };
- };
- config = {
- flake.templates = import (rootPath + "/templates");
- };
-}
diff --git a/home/david/configurations/Akun/niri.nix b/home/david/configurations/Akun/niri.nix
index fe7227c..0df2455 100644
--- a/home/david/configurations/Akun/niri.nix
+++ b/home/david/configurations/Akun/niri.nix
@@ -1,10 +1,4 @@
-{
- config,
- inputs,
- ...
-}: let
- inherit (inputs.niri-flake.lib.kdl) node leaf flag;
-in {
+{config, ...}: {
david.programs.niri = {
waybar.settings = let
cfg = config.david.programs.niri.waybar;
@@ -20,25 +14,5 @@ in {
];
};
};
- extraConfig = let
- output = node "output";
- in [
- (
- output
- ["eDP-1"]
- [
- (leaf "mode" ["1920x1200@60.018"])
- (leaf "scale" [1.0])
- (flag "focus-at-startup")
- (leaf "position" [
- {
- x = 0;
- y = 0;
- }
- ])
- (leaf "transform" ["normal"])
- ]
- )
- ];
};
}
diff --git a/home/david/configurations/Tytonidae/default.nix b/home/david/configurations/Tytonidae/default.nix
index e892e1e..d9662cb 100644
--- a/home/david/configurations/Tytonidae/default.nix
+++ b/home/david/configurations/Tytonidae/default.nix
@@ -32,7 +32,6 @@
kvm.enable = true;
atuin.enable = true;
ion.enable = true;
- spotifyd.enable = true;
awscli = {
enable = true;
url = "http://localhost:8491";
diff --git a/home/david/configurations/Tytonidae/niri.nix b/home/david/configurations/Tytonidae/niri.nix
index 1a76367..62ed003 100644
--- a/home/david/configurations/Tytonidae/niri.nix
+++ b/home/david/configurations/Tytonidae/niri.nix
@@ -34,6 +34,5 @@ in {
}
];
};
- extraConfig = [];
};
}
diff --git a/home/david/modules/default.nix b/home/david/modules/default.nix
index 903eb35..85fde6c 100644
--- a/home/david/modules/default.nix
+++ b/home/david/modules/default.nix
@@ -1,8 +1,4 @@
-{
- lib,
- pkgs,
- ...
-}: {
+{lib, ...}: {
imports = lib.youthlic.loadImports ./.;
config = {
youthlic.programs = {
@@ -12,10 +8,5 @@
eza.enable = true;
};
services.mpris-proxy.enable = true;
- home.packages = with pkgs; [
- spacer
- devenv
- just
- ];
};
}
diff --git a/home/david/modules/programs/mpv.nix b/home/david/modules/programs/mpv.nix
index 4fe19fa..095828d 100644
--- a/home/david/modules/programs/mpv.nix
+++ b/home/david/modules/programs/mpv.nix
@@ -1,6 +1,7 @@
{
lib,
config,
+ pkgs,
...
}: let
cfg = config.david.programs.mpv;
@@ -13,6 +14,10 @@ in {
config = lib.mkIf cfg.enable {
programs.mpv = {
enable = true;
+ scripts = [
+ pkgs.mpvScripts.uosc
+ pkgs.mpvScripts.thumbfast
+ ];
};
};
}
diff --git a/home/david/modules/programs/niri/config.nix b/home/david/modules/programs/niri/config.nix
index a9d01b9..f038743 100644
--- a/home/david/modules/programs/niri/config.nix
+++ b/home/david/modules/programs/niri/config.nix
@@ -1,708 +1,707 @@
{
config,
- pkgs,
lib,
inputs,
- osConfig ? null,
...
-}: let
- inherit (lib) getExe getExe';
- inherit
- (inputs.niri-flake.lib.kdl)
- # node with args, props and children
- # node:: \lambda name -> [argOrProp] -> [child] -> Output
- # arg: single value
- # prop: attr contains one or more key-value pair
- # children: node
- node
- # node without children
- # leaf:: \lambda name -> [argOrProp] -> Output
- leaf
- # node only name
- # flag:: \lambda name -> Output
- flag
- # node without args/props
- # plain:: \lambda name -> [child] -> Output
- plain
+}: {
+ config.david.programs.niri.config =
+ let
+ inherit (lib) getExe;
+ inherit
+ (inputs.niri-flake.lib.kdl)
+ # node with args, props and children
+ # node:: \lambda name -> [argOrProp] -> [child] -> Output
+ # arg: single value
+ # prop: attr contains one or more key-value pair
+ # children: node
+ node
+ # node without children
+ # leaf:: \lambda name -> [argOrProp] -> Output
+ leaf
+ # node only name
+ # flag:: \lambda name -> Output
+ flag
+ # node without args/props
+ # plain:: \lambda name -> [child] -> Output
+ plain
+ ;
+
+ # swaylock = getExe config.programs.swaylock.package;
+ # fuzzel = getExe config.programs.fuzzel.package;
+ # waybar = getExe config.programs.waybar.package;
+ # swaync = getExe config.services.swaync.package;
+
+ # wpctl = getExe' pkgs.wireplumber "wpctl";
+ # waypaper = getExe pkgs.waypaper;
+ default-terminal = getExe config.programs.ghostty.package;
+ # wl-paste = getExe' pkgs.wl-clipboard "wl-paste";
+ # cliphist = getExe' pkgs.cliphist "cliphist";
+ # cliphist-fuzzel-img = getExe' pkgs.cliphist "cliphist-fuzzel-img";
+ # wl-clip-persist = getExe pkgs.wl-clip-persist;
+ in
+ (
+ let
+ spawn = leaf "spawn";
+ in [
+ (plain "binds" [
+ # (plain "Mod+V" [
+ # (spawn [cliphist-fuzzel-img])
+ # ])
+ # (plain "Mod+Shift+P" [
+ # (spawn [
+ # swaylock
+ # "--screenshots"
+ # "--clock"
+ # "--indicator"
+ # "--indicator-radius"
+ # "100"
+ # "--indicator-thickness"
+ # "7"
+ # "--effect-blur"
+ # "7x5"
+ # "--effect-vignette"
+ # "0.5:0.5"
+ # "--grace"
+ # "2"
+ # "--fade-in"
+ # "0.5"
+ # ])
+ # ])
+ (plain "Mod+Shift+Slash" [
+ (flag "show-hotkey-overlay")
+ ])
+ (plain "Mod+T" [
+ (spawn [
+ default-terminal
+ ])
+ ])
+ (plain "Mod+Shift+T" [
+ (flag "toggle-column-tabbed-display")
+ ])
+ # (plain "Mod+Space" [
+ # (spawn [fuzzel])
+ # ])
+ # (
+ # node "XF86AudioRaiseVolume"
+ # [{allow-when-locked = true;}]
+ # [
+ # (spawn [
+ # wpctl
+ # "set-volume"
+ # "@DEFAULT_AUDIO_SINK@"
+ # "0.1+"
+ # ])
+ # ]
+ # )
+ # (
+ # node "XF86AudioLowerVolume"
+ # [{allow-when-locked = true;}]
+ # [
+ # (spawn [
+ # wpctl
+ # "set-volume"
+ # "@DEFAULT_AUDIO_SINK@"
+ # "0.1-"
+ # ])
+ # ]
+ # )
+ # (
+ # node "XF86AudioMute"
+ # [{allow-when-locked = true;}]
+ # [
+ # (spawn [
+ # wpctl
+ # "set-volume"
+ # "@DEFAULT_AUDIO_SINK@"
+ # "toggle"
+ # ])
+ # ]
+ # )
+ # (
+ # node "XF86AudioMicMute"
+ # [{allow-when-locked = true;}]
+ # [
+ # (spawn [
+ # wpctl
+ # "set-volume"
+ # "@DEFAULT_AUDIO_SOURCE@"
+ # "toggle"
+ # ])
+ # ]
+ # )
+ (plain "Mod+Q" [
+ (flag "close-window")
+ ])
+ (
+ node "Mod+O"
+ [{repeat = false;}]
+ [
+ (flag "toggle-overview")
+ ]
+ )
+ (plain "Mod+Left" [
+ (flag "focus-column-left")
+ ])
+ (plain "Mod+Down" [
+ (flag "focus-window-down")
+ ])
+ (plain "Mod+Up" [
+ (flag "focus-window-up")
+ ])
+ (plain "Mod+Right" [
+ (flag "focus-column-right")
+ ])
+ (plain "Mod+H" [
+ (flag "focus-column-or-monitor-left")
+ ])
+ (plain "Mod+J" [
+ (flag "focus-window-or-workspace-down")
+ ])
+ (plain "Mod+K" [
+ (flag "focus-window-or-workspace-up")
+ ])
+ (plain "Mod+L" [
+ (flag "focus-column-or-monitor-right")
+ ])
+ (plain "Mod+Shift+Left" [
+ (flag "move-column-left")
+ ])
+ (plain "Mod+Shift+Down" [
+ (flag "move-window-down")
+ ])
+ (plain "Mod+Shift+Up" [
+ (flag "move-window-up")
+ ])
+ (plain "Mod+Shift+Right" [
+ (flag "move-column-right")
+ ])
+ (plain "Mod+Shift+H" [
+ (flag "move-column-left-or-to-monitor-left")
+ ])
+ (plain "Mod+Shift+J" [
+ (flag "move-window-down-or-to-workspace-down")
+ ])
+ (plain "Mod+Shift+K" [
+ (flag "move-window-up-or-to-workspace-up")
+ ])
+ (plain "Mod+Shift+L" [
+ (flag "move-column-right-or-to-monitor-right")
+ ])
+ (plain "Mod+Home" [
+ (flag "focus-column-first")
+ ])
+ (plain "Mod+End" [
+ (flag "focus-column-last")
+ ])
+ (plain "Mod+Ctrl+Home" [
+ (flag "move-column-to-first")
+ ])
+ (plain "Mod+Ctrl+End" [
+ (flag "move-column-to-last")
+ ])
+ (plain "Mod+Ctrl+Left" [
+ (flag "focus-monitor-left")
+ ])
+ (plain "Mod+Ctrl+Down" [
+ (flag "focus-monitor-down")
+ ])
+ (plain "Mod+Ctrl+Up" [
+ (flag "focus-monitor-up")
+ ])
+ (plain "Mod+Ctrl+Right" [
+ (flag "focus-monitor-right")
+ ])
+ (plain "Mod+Ctrl+H" [
+ (flag "focus-monitor-left")
+ ])
+ (plain "Mod+Ctrl+J" [
+ (flag "focus-monitor-down")
+ ])
+ (plain "Mod+Ctrl+K" [
+ (flag "focus-monitor-up")
+ ])
+ (plain "Mod+Ctrl+L" [
+ (flag "focus-monitor-right")
+ ])
+ (plain "Mod+Shift+Ctrl+Left" [
+ (flag "move-column-to-monitor-left")
+ ])
+ (plain "Mod+Shift+Ctrl+Down" [
+ (flag "move-column-to-monitor-down")
+ ])
+ (plain "Mod+Shift+Ctrl+Up" [
+ (flag "move-column-to-monitor-up")
+ ])
+ (plain "Mod+Shift+Ctrl+Right" [
+ (flag "move-column-to-monitor-right")
+ ])
+ (plain "Mod+Shift+Ctrl+H" [
+ (flag "move-column-to-monitor-left")
+ ])
+ (plain "Mod+Shift+Ctrl+J" [
+ (flag "move-column-to-monitor-down")
+ ])
+ (plain "Mod+Shift+Ctrl+K" [
+ (flag "move-column-to-monitor-up")
+ ])
+ (plain "Mod+Shift+Ctrl+L" [
+ (flag "move-column-to-monitor-right")
+ ])
+ (plain "Mod+Page_Down" [
+ (flag "focus-workspace-down")
+ ])
+ (plain "Mod+Page_Up" [
+ (flag "focus-workspace-up")
+ ])
+ (plain "Mod+U" [
+ (flag "focus-workspace-down")
+ ])
+ (plain "Mod+I" [
+ (flag "focus-workspace-up")
+ ])
+ (plain "Mod+Shift+Page_Down" [
+ (flag "move-column-to-workspace-down")
+ ])
+ (plain "Mod+Shift+Page_Up" [
+ (flag "move-column-to-workspace-up")
+ ])
+ (plain "Mod+Shift+U" [
+ (flag "move-column-to-workspace-down")
+ ])
+ (plain "Mod+Shift+I" [
+ (flag "move-column-to-workspace-up")
+ ])
+ (plain "Mod+Ctrl+Page_Down" [
+ (flag "move-workspace-down")
+ ])
+ (plain "Mod+Ctrl+Page_Up" [
+ (flag "move-workspace-up")
+ ])
+ (plain "Mod+Ctrl+U" [
+ (flag "move-workspace-down")
+ ])
+ (plain "Mod+Ctrl+I" [
+ (flag "move-workspace-up")
+ ])
+ (
+ node "Mod+Shift+WheelScrollDown"
+ [{cooldown-ms = 150;}]
+ [
+ (flag "focus-workspace-down")
+ ]
+ )
+ (
+ node "Mod+Shift+WheelScrollUp"
+ [{cooldown-ms = 150;}]
+ [
+ (flag "focus-workspace-up")
+ ]
+ )
+ (plain "Mod+WheelScrollDown" [
+ (flag "focus-column-right")
+ ])
+ (plain "Mod+WheelScrollUp" [
+ (flag "focus-column-left")
+ ])
+ (plain "Mod+1" [
+ (leaf "focus-workspace" [1])
+ ])
+ (plain "Mod+2" [
+ (leaf "focus-workspace" [2])
+ ])
+ (plain "Mod+3" [
+ (leaf "focus-workspace" [3])
+ ])
+ (plain "Mod+4" [
+ (leaf "focus-workspace" [4])
+ ])
+ (plain "Mod+5" [
+ (leaf "focus-workspace" [5])
+ ])
+ (plain "Mod+6" [
+ (leaf "focus-workspace" [6])
+ ])
+ (plain "Mod+7" [
+ (leaf "focus-workspace" [7])
+ ])
+ (plain "Mod+8" [
+ (leaf "focus-workspace" [8])
+ ])
+ (plain "Mod+9" [
+ (leaf "focus-workspace" [9])
+ ])
+ (plain "Mod+Shift+1" [
+ (leaf "move-column-to-workspace" [1])
+ ])
+ (plain "Mod+Shift+2" [
+ (leaf "move-column-to-workspace" [2])
+ ])
+ (plain "Mod+Shift+3" [
+ (leaf "move-column-to-workspace" [3])
+ ])
+ (plain "Mod+Shift+4" [
+ (leaf "move-column-to-workspace" [4])
+ ])
+ (plain "Mod+Shift+5" [
+ (leaf "move-column-to-workspace" [5])
+ ])
+ (plain "Mod+Shift+6" [
+ (leaf "move-column-to-workspace" [6])
+ ])
+ (plain "Mod+Shift+7" [
+ (leaf "move-column-to-workspace" [7])
+ ])
+ (plain "Mod+Shift+8" [
+ (leaf "move-column-to-workspace" [8])
+ ])
+ (plain "Mod+Shift+9" [
+ (leaf "move-column-to-workspace" [9])
+ ])
+ (plain "Mod+F" [
+ (flag "toggle-window-floating")
+ ])
+ (plain "Mod+Shift+F" [
+ (flag "toggle-windowed-fullscreen")
+ ])
+ (plain "Mod+Tab" [
+ (flag "focus-window-previous")
+ ])
+ (plain "Mod+Shift+Tab" [
+ (flag "switch-focus-between-floating-and-tiling")
+ ])
+ (plain "Mod+BracketLeft" [
+ (flag "consume-or-expel-window-left")
+ ])
+ (plain "Mod+BracketRight" [
+ (flag "consume-or-expel-window-right")
+ ])
+ (plain "Mod+Comma" [
+ (flag "consume-window-into-column")
+ ])
+ (plain "Mod+Period" [
+ (flag "expel-window-from-column")
+ ])
+ (
+ node "Mod+R"
+ [{repeat = false;}]
+ [
+ (flag "switch-preset-column-width")
+ ]
+ )
+ (
+ node "Mod+Shift+R"
+ [{repeat = false;}]
+ [
+ (flag "switch-preset-window-height")
+ ]
+ )
+ (plain "Mod+Ctrl+R" [
+ (flag "reset-window-height")
+ ])
+ (
+ node "Mod+M"
+ [{repeat = false;}]
+ [
+ (flag "maximize-column")
+ ]
+ )
+ (
+ node "Mod+Shift+M"
+ [{repeat = false;}]
+ [
+ (flag "fullscreen-window")
+ ]
+ )
+ (
+ node "Mod+Ctrl+M"
+ [{repeat = false;}]
+ [
+ (flag "maximize-window-to-edges")
+ ]
+ )
+ (plain "Mod+Z" [
+ (flag "center-column")
+ ])
+ (
+ node "Mod+Minus"
+ [{repeat = false;}]
+ [
+ (leaf "set-column-width" ["-10%"])
+ ]
+ )
+ (
+ node "Mod+Equal"
+ [{repeat = false;}]
+ [
+ (leaf "set-column-width" ["+10%"])
+ ]
+ )
+ (
+ node "Mod+Shift+Minus"
+ [{repeat = false;}]
+ [
+ (leaf "set-window-height" ["-10%"])
+ ]
+ )
+ (
+ node "Mod+Shift+Equal"
+ [{repeat = false;}]
+ [
+ (leaf "set-window-height" ["+10%"])
+ ]
+ )
+ (plain "Print" [
+ (flag "screenshot")
+ ])
+ (plain "Ctrl+Print" [
+ (flag "screenshot-screen")
+ ])
+ (plain "Alt+Print" [
+ (flag "screenshot-window")
+ ])
+ (plain "Mod+Shift+Q" [
+ (flag "quit")
+ ])
+ (plain "Mod+E" [
+ (flag "expand-column-to-available-width")
+ ])
+ (plain "Mod+Shift+S" [
+ (flag "toggle-keyboard-shortcuts-inhibit")
+ ])
+ (plain "Mod+Shift+C" [
+ (flag "set-dynamic-cast-window")
+ ])
+ (plain "Mod+Shift+Ctrl+C" [
+ (flag "clear-dynamic-cast-target")
+ ])
+ ])
+ ] # binds
+ )
+ ++
+ # let
+ # spawn-at-startup = leaf "spawn-at-startup";
+ # in
+ [
+ (leaf "screenshot-path" ["${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png"])
+ (plain "hotkey-overlay" [
+ (flag "skip-at-startup")
+ ])
+ (flag "prefer-no-csd")
+ # (spawn-at-startup [waybar])
+ # (spawn-at-startup [swaync])
+ # (spawn-at-startup [
+ # waypaper
+ # "--restore"
+ # ])
+ # (spawn-at-startup [
+ # wl-paste
+ # "--watch"
+ # cliphist
+ # "store"
+ # ])
+ # (spawn-at-startup [
+ # wl-clip-persist
+ # "--clipboard"
+ # "regular"
+ # ])
+ # (spawn-at-startup [
+ # fcitx5
+ # "--replace"
+ # ])
+ (plain "input" [
+ (plain "touchpad" [
+ (leaf "click-method" ["clickfinger"])
+ (flag "dwt")
+ (leaf "scroll-method" ["two-finger"])
+ (leaf "tap-button-map" ["left-right-middle"])
+ ])
+ ])
+ (plain "cursor" [
+ (leaf "hide-after-inactive-ms" [3000])
+ (flag "hide-when-typing")
+ ])
+ (plain "layout" [
+ (leaf "background-color" ["transparent"])
+ (plain "border" [
+ (flag "off")
+ (leaf "width" [4])
+ (leaf "active-color" ["#7fc8ff"])
+ (leaf "inactive-color" ["#505050"])
+ ])
+ (plain "focus-ring" [
+ # (flag "off")
+ (leaf "width" [4])
+ (leaf "active-color" ["#7fc8ff"])
+ (leaf "active-gradient" [
+ {
+ from = "#e00a54";
+ to = "#b8de17";
+ angle = 45;
+ }
+ ])
+ (leaf "inactive-color" ["#505050"])
+ ])
+ (plain "tab-indicator" [
+ (flag "hide-when-single-tab")
+ ])
+ (plain "preset-column-widths" [
+ (leaf "proportion" [(1. / 4.)])
+ (leaf "proportion" [(1. / 3.)])
+ (leaf "proportion" [(1. / 2.)])
+ (leaf "proportion" [(2. / 3.)])
+ (leaf "proportion" [(3. / 4.)])
+ (leaf "proportion" [(4. / 4.)])
+ ])
+ (flag "always-center-single-column")
+ (leaf "center-focused-column" ["never"])
+ (leaf "default-column-display" ["tabbed"])
+ (plain "default-column-width" [
+ (leaf "proportion" [(1. / 2.)])
+ ])
+ (flag "empty-workspace-above-first")
+ (leaf "gaps" [16])
+ ])
+ (plain "animations" [
+ (plain "window-close" [
+ (leaf "spring" [
+ {
+ damping-ratio = 1.0;
+ stiffness = 800;
+ epsilon = 0.0001;
+ }
+ ])
+ ])
+ ])
+ (plain "overview" [
+ (plain "workspace-shadow" [
+ (flag "off")
+ ])
+ ])
+ ] # others
+ ++ (
+ let
+ window-rule = plain "window-rule";
+ match = leaf "match";
+ in [
+ (window-rule [
+ (leaf "draw-border-with-background" [true])
+ (leaf "geometry-corner-radius" [0.0])
+ (leaf "clip-to-geometry" [true])
+ ])
+ (window-rule [
+ (match [{app-id = "^org\\.keepassxc\\.KeePassXC$";}])
+ (match [{app-id = "^org\\.gnome\\.World\\.Secrets$";}])
+ (leaf "block-out-from" ["screen-capture"])
+ ])
+ (window-rule [
+ (match [{is-active = true;}])
+ (leaf "opacity" [1.0])
+ ])
+ (window-rule [
+ (match [{is-active = false;}])
+ (leaf "opacity" [0.8])
+ (leaf "draw-border-with-background" [false])
+ ])
+ (window-rule [
+ (match [{app-id = "^Alacritty$";}])
+ (match [{app-id = "^com\\.mitchellh\\.ghostty$";}])
+ (match [{app-id = "^neovide$";}])
+ (leaf "draw-border-with-background" [false])
+ ])
+ (window-rule [
+ (match [{app-id = "^org\\.kde\\.polkit-kde-authentication-agent-1$";}])
+ (leaf "open-floating" [true])
+ ])
+ (window-rule [
+ (match [{app-id = "^swayimg$";}])
+ (leaf "draw-border-with-background" [false])
+ (leaf "open-floating" [true])
+ ])
+ (window-rule [
+ (match [{is-window-cast-target = true;}])
+ (plain "focus-ring" [
+ (leaf "active-color" ["#f38ba8"])
+ (leaf "inactive-color" ["#7d0d2d"])
+ ])
+ (plain "border" [
+ (leaf "active-color" ["#f38ba8"])
+ (leaf "inactive-color" ["#7d0d2d"])
+ ])
+ (plain "tab-indicator" [
+ (leaf "active-color" ["#f38ba8"])
+ (leaf "inactive-color" ["#7d0d2d"])
+ ])
+ (plain "shadow" [
+ (flag "on")
+ ])
+ ])
+ (window-rule [
+ (match [
+ {
+ app-id = "^org\\.telegram\\.desktop$";
+ title = "Media viewer";
+ }
+ ])
+ (match [
+ {
+ app-id = "^QQ$";
+ title = "图片查看器";
+ }
+ ])
+ (leaf "open-floating" [true])
+ (leaf "open-fullscreen" [false])
+ ])
+ (window-rule [
+ (match [
+ {
+ app-id = "^wechat$";
+ title = "^wechat$";
+ }
+ ])
+ (leaf "open-focused" [false])
+ ])
+ (window-rule [
+ (match [
+ {
+ app-id = "^steam$";
+ title = "^notificationtoasts_\\d+_desktop$";
+ }
+ ])
+ (leaf "open-floating" [true])
+ (leaf "open-focused" [false])
+ (leaf "default-floating-position" [
+ {
+ x = 10;
+ y = 10;
+ "relative-to" = "bottom-right";
+ }
+ ])
+ (leaf "clip-to-geometry" [false])
+ ])
+ ] # window-rule
+ )
+ # ++ (
+ # let
+ # layer-rule = plain "layer-rule";
+ # match = leaf "match";
+ # in [
+ # (layer-rule [
+ # (match [{namespace = "^swaync-notification-window$";}])
+ # (match [{namespace = "^swaync-control-center$";}])
+ # (leaf "block-out-from" ["screen-capture"])
+ # ])
+ # (layer-rule [
+ # (match [{namespace = "^launcher$";}])
+ # (plain "shadow" [
+ # (flag "on")
+ # ])
+ # (leaf "geometry-corner-radius" [10.0])
+ # ])
+ # (layer-rule [
+ # (match [{namespace = "^mpvpaper$";}])
+ # (leaf "place-within-backdrop" [true])
+ # ])
+ # ] # layer-rule
+ # )
;
-
- swaylock = getExe config.programs.swaylock.package;
- fuzzel = getExe config.programs.fuzzel.package;
- waybar = getExe config.programs.waybar.package;
- swaync = getExe config.services.swaync.package;
- fcitx5 = lib.getExe' osConfig.i18n.inputMethod.package "fcitx5";
-
- polkit-kde-agent = getExe' pkgs.kdePackages.polkit-kde-agent-1 "polkit-kde-agent";
- wpctl = getExe' pkgs.wireplumber "wpctl";
- waypaper = getExe pkgs.waypaper;
- default-terminal = getExe config.programs.ghostty.package;
- wl-paste = getExe' pkgs.wl-clipboard "wl-paste";
- cliphist = getExe' pkgs.cliphist "cliphist";
- cliphist-fuzzel-img = getExe' pkgs.cliphist "cliphist-fuzzel-img";
- wl-clip-persist = getExe pkgs.wl-clip-persist;
-in
- (
- let
- spawn = leaf "spawn";
- in [
- (plain "binds" [
- (plain "Mod+V" [
- (spawn [cliphist-fuzzel-img])
- ])
- (plain "Mod+Shift+P" [
- (spawn [
- swaylock
- "--screenshots"
- "--clock"
- "--indicator"
- "--indicator-radius"
- "100"
- "--indicator-thickness"
- "7"
- "--effect-blur"
- "7x5"
- "--effect-vignette"
- "0.5:0.5"
- "--grace"
- "2"
- "--fade-in"
- "0.5"
- ])
- ])
- (plain "Mod+Shift+Slash" [
- (flag "show-hotkey-overlay")
- ])
- (plain "Mod+T" [
- (spawn [
- default-terminal
- ])
- ])
- (plain "Mod+Shift+T" [
- (flag "toggle-column-tabbed-display")
- ])
- (plain "Mod+Space" [
- (spawn [fuzzel])
- ])
- (
- node "XF86AudioRaiseVolume"
- [{allow-when-locked = true;}]
- [
- (spawn [
- wpctl
- "set-volume"
- "@DEFAULT_AUDIO_SINK@"
- "0.1+"
- ])
- ]
- )
- (
- node "XF86AudioLowerVolume"
- [{allow-when-locked = true;}]
- [
- (spawn [
- wpctl
- "set-volume"
- "@DEFAULT_AUDIO_SINK@"
- "0.1-"
- ])
- ]
- )
- (
- node "XF86AudioMute"
- [{allow-when-locked = true;}]
- [
- (spawn [
- wpctl
- "set-volume"
- "@DEFAULT_AUDIO_SINK@"
- "toggle"
- ])
- ]
- )
- (
- node "XF86AudioMicMute"
- [{allow-when-locked = true;}]
- [
- (spawn [
- wpctl
- "set-volume"
- "@DEFAULT_AUDIO_SOURCE@"
- "toggle"
- ])
- ]
- )
- (plain "Mod+Q" [
- (flag "close-window")
- ])
- (
- node "Mod+O"
- [{repeat = false;}]
- [
- (flag "toggle-overview")
- ]
- )
- (plain "Mod+Left" [
- (flag "focus-column-left")
- ])
- (plain "Mod+Down" [
- (flag "focus-window-down")
- ])
- (plain "Mod+Up" [
- (flag "focus-window-up")
- ])
- (plain "Mod+Right" [
- (flag "focus-column-right")
- ])
- (plain "Mod+H" [
- (flag "focus-column-or-monitor-left")
- ])
- (plain "Mod+J" [
- (flag "focus-window-or-workspace-down")
- ])
- (plain "Mod+K" [
- (flag "focus-window-or-workspace-up")
- ])
- (plain "Mod+L" [
- (flag "focus-column-or-monitor-right")
- ])
- (plain "Mod+Shift+Left" [
- (flag "move-column-left")
- ])
- (plain "Mod+Shift+Down" [
- (flag "move-window-down")
- ])
- (plain "Mod+Shift+Up" [
- (flag "move-window-up")
- ])
- (plain "Mod+Shift+Right" [
- (flag "move-column-right")
- ])
- (plain "Mod+Shift+H" [
- (flag "move-column-left-or-to-monitor-left")
- ])
- (plain "Mod+Shift+J" [
- (flag "move-window-down-or-to-workspace-down")
- ])
- (plain "Mod+Shift+K" [
- (flag "move-window-up-or-to-workspace-up")
- ])
- (plain "Mod+Shift+L" [
- (flag "move-column-right-or-to-monitor-right")
- ])
- (plain "Mod+Home" [
- (flag "focus-column-first")
- ])
- (plain "Mod+End" [
- (flag "focus-column-last")
- ])
- (plain "Mod+Ctrl+Home" [
- (flag "move-column-to-first")
- ])
- (plain "Mod+Ctrl+End" [
- (flag "move-column-to-last")
- ])
- (plain "Mod+Ctrl+Left" [
- (flag "focus-monitor-left")
- ])
- (plain "Mod+Ctrl+Down" [
- (flag "focus-monitor-down")
- ])
- (plain "Mod+Ctrl+Up" [
- (flag "focus-monitor-up")
- ])
- (plain "Mod+Ctrl+Right" [
- (flag "focus-monitor-right")
- ])
- (plain "Mod+Ctrl+H" [
- (flag "focus-monitor-left")
- ])
- (plain "Mod+Ctrl+J" [
- (flag "focus-monitor-down")
- ])
- (plain "Mod+Ctrl+K" [
- (flag "focus-monitor-up")
- ])
- (plain "Mod+Ctrl+L" [
- (flag "focus-monitor-right")
- ])
- (plain "Mod+Shift+Ctrl+Left" [
- (flag "move-column-to-monitor-left")
- ])
- (plain "Mod+Shift+Ctrl+Down" [
- (flag "move-column-to-monitor-down")
- ])
- (plain "Mod+Shift+Ctrl+Up" [
- (flag "move-column-to-monitor-up")
- ])
- (plain "Mod+Shift+Ctrl+Right" [
- (flag "move-column-to-monitor-right")
- ])
- (plain "Mod+Shift+Ctrl+H" [
- (flag "move-column-to-monitor-left")
- ])
- (plain "Mod+Shift+Ctrl+J" [
- (flag "move-column-to-monitor-down")
- ])
- (plain "Mod+Shift+Ctrl+K" [
- (flag "move-column-to-monitor-up")
- ])
- (plain "Mod+Shift+Ctrl+L" [
- (flag "move-column-to-monitor-right")
- ])
- (plain "Mod+Page_Down" [
- (flag "focus-workspace-down")
- ])
- (plain "Mod+Page_Up" [
- (flag "focus-workspace-up")
- ])
- (plain "Mod+U" [
- (flag "focus-workspace-down")
- ])
- (plain "Mod+I" [
- (flag "focus-workspace-up")
- ])
- (plain "Mod+Shift+Page_Down" [
- (flag "move-column-to-workspace-down")
- ])
- (plain "Mod+Shift+Page_Up" [
- (flag "move-column-to-workspace-up")
- ])
- (plain "Mod+Shift+U" [
- (flag "move-column-to-workspace-down")
- ])
- (plain "Mod+Shift+I" [
- (flag "move-column-to-workspace-up")
- ])
- (plain "Mod+Ctrl+Page_Down" [
- (flag "move-workspace-down")
- ])
- (plain "Mod+Ctrl+Page_Up" [
- (flag "move-workspace-up")
- ])
- (plain "Mod+Ctrl+U" [
- (flag "move-workspace-down")
- ])
- (plain "Mod+Ctrl+I" [
- (flag "move-workspace-up")
- ])
- (
- node "Mod+Shift+WheelScrollDown"
- [{cooldown-ms = 150;}]
- [
- (flag "focus-workspace-down")
- ]
- )
- (
- node "Mod+Shift+WheelScrollUp"
- [{cooldown-ms = 150;}]
- [
- (flag "focus-workspace-up")
- ]
- )
- (plain "Mod+WheelScrollDown" [
- (flag "focus-column-right")
- ])
- (plain "Mod+WheelScrollUp" [
- (flag "focus-column-left")
- ])
- (plain "Mod+1" [
- (leaf "focus-workspace" [1])
- ])
- (plain "Mod+2" [
- (leaf "focus-workspace" [2])
- ])
- (plain "Mod+3" [
- (leaf "focus-workspace" [3])
- ])
- (plain "Mod+4" [
- (leaf "focus-workspace" [4])
- ])
- (plain "Mod+5" [
- (leaf "focus-workspace" [5])
- ])
- (plain "Mod+6" [
- (leaf "focus-workspace" [6])
- ])
- (plain "Mod+7" [
- (leaf "focus-workspace" [7])
- ])
- (plain "Mod+8" [
- (leaf "focus-workspace" [8])
- ])
- (plain "Mod+9" [
- (leaf "focus-workspace" [9])
- ])
- (plain "Mod+Shift+1" [
- (leaf "move-column-to-workspace" [1])
- ])
- (plain "Mod+Shift+2" [
- (leaf "move-column-to-workspace" [2])
- ])
- (plain "Mod+Shift+3" [
- (leaf "move-column-to-workspace" [3])
- ])
- (plain "Mod+Shift+4" [
- (leaf "move-column-to-workspace" [4])
- ])
- (plain "Mod+Shift+5" [
- (leaf "move-column-to-workspace" [5])
- ])
- (plain "Mod+Shift+6" [
- (leaf "move-column-to-workspace" [6])
- ])
- (plain "Mod+Shift+7" [
- (leaf "move-column-to-workspace" [7])
- ])
- (plain "Mod+Shift+8" [
- (leaf "move-column-to-workspace" [8])
- ])
- (plain "Mod+Shift+9" [
- (leaf "move-column-to-workspace" [9])
- ])
- (plain "Mod+F" [
- (flag "toggle-window-floating")
- ])
- (plain "Mod+Shift+F" [
- (flag "toggle-windowed-fullscreen")
- ])
- (plain "Mod+Tab" [
- (flag "focus-window-previous")
- ])
- (plain "Mod+Shift+Tab" [
- (flag "switch-focus-between-floating-and-tiling")
- ])
- (plain "Mod+BracketLeft" [
- (flag "consume-or-expel-window-left")
- ])
- (plain "Mod+BracketRight" [
- (flag "consume-or-expel-window-right")
- ])
- (plain "Mod+Comma" [
- (flag "consume-window-into-column")
- ])
- (plain "Mod+Period" [
- (flag "expel-window-from-column")
- ])
- (
- node "Mod+R"
- [{repeat = false;}]
- [
- (flag "switch-preset-column-width")
- ]
- )
- (
- node "Mod+Shift+R"
- [{repeat = false;}]
- [
- (flag "switch-preset-window-height")
- ]
- )
- (plain "Mod+Ctrl+R" [
- (flag "reset-window-height")
- ])
- (
- node "Mod+M"
- [{repeat = false;}]
- [
- (flag "maximize-column")
- ]
- )
- (
- node "Mod+Shift+M"
- [{repeat = false;}]
- [
- (flag "fullscreen-window")
- ]
- )
- (
- node "Mod+Ctrl+M"
- [{repeat = false;}]
- [
- (flag "maximize-window-to-edges")
- ]
- )
- (plain "Mod+Z" [
- (flag "center-column")
- ])
- (
- node "Mod+Minus"
- [{repeat = false;}]
- [
- (leaf "set-column-width" ["-10%"])
- ]
- )
- (
- node "Mod+Equal"
- [{repeat = false;}]
- [
- (leaf "set-column-width" ["+10%"])
- ]
- )
- (
- node "Mod+Shift+Minus"
- [{repeat = false;}]
- [
- (leaf "set-window-height" ["-10%"])
- ]
- )
- (
- node "Mod+Shift+Equal"
- [{repeat = false;}]
- [
- (leaf "set-window-height" ["+10%"])
- ]
- )
- (plain "Print" [
- (flag "screenshot")
- ])
- (plain "Ctrl+Print" [
- (flag "screenshot-screen")
- ])
- (plain "Alt+Print" [
- (flag "screenshot-window")
- ])
- (plain "Mod+Shift+Q" [
- (flag "quit")
- ])
- (plain "Mod+E" [
- (flag "expand-column-to-available-width")
- ])
- (plain "Mod+Shift+S" [
- (flag "toggle-keyboard-shortcuts-inhibit")
- ])
- (plain "Mod+Shift+C" [
- (flag "set-dynamic-cast-window")
- ])
- (plain "Mod+Shift+Ctrl+C" [
- (flag "clear-dynamic-cast-target")
- ])
- ])
- ] # binds
- )
- ++ (
- let
- spawn-at-startup = leaf "spawn-at-startup";
- in [
- (leaf "screenshot-path" ["${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png"])
- (plain "hotkey-overlay" [
- (flag "skip-at-startup")
- ])
- (flag "prefer-no-csd")
- (spawn-at-startup [waybar])
- (spawn-at-startup [swaync])
- (spawn-at-startup [
- waypaper
- "--restore"
- ])
- (spawn-at-startup [polkit-kde-agent])
- (spawn-at-startup [
- wl-paste
- "--watch"
- cliphist
- "store"
- ])
- (spawn-at-startup [
- wl-clip-persist
- "--clipboard"
- "regular"
- ])
- (spawn-at-startup [
- fcitx5
- "--replace"
- ])
- (plain "input" [
- (plain "touchpad" [
- (leaf "click-method" ["clickfinger"])
- (flag "dwt")
- (leaf "scroll-method" ["two-finger"])
- (leaf "tap-button-map" ["left-right-middle"])
- ])
- ])
- (plain "cursor" [
- (leaf "hide-after-inactive-ms" [3000])
- (flag "hide-when-typing")
- ])
- (plain "layout" [
- (leaf "background-color" ["transparent"])
- (plain "border" [
- (flag "off")
- (leaf "width" [4])
- (leaf "active-color" ["#7fc8ff"])
- (leaf "inactive-color" ["#505050"])
- ])
- (plain "focus-ring" [
- # (flag "off")
- (leaf "width" [4])
- (leaf "active-color" ["#7fc8ff"])
- (leaf "active-gradient" [
- {
- from = "#e00a54";
- to = "#b8de17";
- angle = 45;
- }
- ])
- (leaf "inactive-color" ["#505050"])
- ])
- (plain "tab-indicator" [
- (flag "hide-when-single-tab")
- ])
- (plain "preset-column-widths" [
- (leaf "proportion" [(1. / 4.)])
- (leaf "proportion" [(1. / 3.)])
- (leaf "proportion" [(1. / 2.)])
- (leaf "proportion" [(2. / 3.)])
- (leaf "proportion" [(3. / 4.)])
- (leaf "proportion" [(4. / 4.)])
- ])
- (flag "always-center-single-column")
- (leaf "center-focused-column" ["never"])
- (leaf "default-column-display" ["tabbed"])
- (plain "default-column-width" [
- (leaf "proportion" [(1. / 2.)])
- ])
- (flag "empty-workspace-above-first")
- (leaf "gaps" [16])
- ])
- (plain "animations" [
- (plain "window-close" [
- (leaf "spring" [
- {
- damping-ratio = 1.0;
- stiffness = 800;
- epsilon = 0.0001;
- }
- ])
- ])
- ])
- (plain "overview" [
- (plain "workspace-shadow" [
- (flag "off")
- ])
- ])
- ] # others
- )
- ++ (
- let
- window-rule = plain "window-rule";
- match = leaf "match";
- in [
- (window-rule [
- (leaf "draw-border-with-background" [true])
- (leaf "geometry-corner-radius" [0.0])
- (leaf "clip-to-geometry" [true])
- ])
- (window-rule [
- (match [{app-id = "^org\\.keepassxc\\.KeePassXC$";}])
- (match [{app-id = "^org\\.gnome\\.World\\.Secrets$";}])
- (leaf "block-out-from" ["screen-capture"])
- ])
- (window-rule [
- (match [{is-active = true;}])
- (leaf "opacity" [1.0])
- ])
- (window-rule [
- (match [{is-active = false;}])
- (leaf "opacity" [0.8])
- (leaf "draw-border-with-background" [false])
- ])
- (window-rule [
- (match [{app-id = "^Alacritty$";}])
- (match [{app-id = "^com\\.mitchellh\\.ghostty$";}])
- (match [{app-id = "^neovide$";}])
- (leaf "draw-border-with-background" [false])
- ])
- (window-rule [
- (match [{app-id = "^org\\.kde\\.polkit-kde-authentication-agent-1$";}])
- (leaf "open-floating" [true])
- ])
- (window-rule [
- (match [{app-id = "^swayimg$";}])
- (leaf "draw-border-with-background" [false])
- (leaf "open-floating" [true])
- ])
- (window-rule [
- (match [{is-window-cast-target = true;}])
- (plain "focus-ring" [
- (leaf "active-color" ["#f38ba8"])
- (leaf "inactive-color" ["#7d0d2d"])
- ])
- (plain "border" [
- (leaf "active-color" ["#f38ba8"])
- (leaf "inactive-color" ["#7d0d2d"])
- ])
- (plain "tab-indicator" [
- (leaf "active-color" ["#f38ba8"])
- (leaf "inactive-color" ["#7d0d2d"])
- ])
- (plain "shadow" [
- (flag "on")
- ])
- ])
- (window-rule [
- (match [
- {
- app-id = "^org\\.telegram\\.desktop$";
- title = "Media viewer";
- }
- ])
- (match [
- {
- app-id = "^QQ$";
- title = "图片查看器";
- }
- ])
- (leaf "open-floating" [true])
- (leaf "open-fullscreen" [false])
- ])
- (window-rule [
- (match [
- {
- app-id = "^wechat$";
- title = "^wechat$";
- }
- ])
- (leaf "open-focused" [false])
- ])
- (window-rule [
- (match [
- {
- app-id = "^steam$";
- title = "^notificationtoasts_\\d+_desktop$";
- }
- ])
- (leaf "open-floating" [true])
- (leaf "open-focused" [false])
- (leaf "default-floating-position" [
- {
- x = 10;
- y = 10;
- "relative-to" = "bottom-right";
- }
- ])
- (leaf "clip-to-geometry" [false])
- ])
- ] # window-rule
- )
- ++ (
- let
- layer-rule = plain "layer-rule";
- match = leaf "match";
- in [
- (layer-rule [
- (match [{namespace = "^swaync-notification-window$";}])
- (match [{namespace = "^swaync-control-center$";}])
- (leaf "block-out-from" ["screen-capture"])
- ])
- (layer-rule [
- (match [{namespace = "^launcher$";}])
- (plain "shadow" [
- (flag "on")
- ])
- (leaf "geometry-corner-radius" [10.0])
- ])
- (layer-rule [
- (match [{namespace = "^mpvpaper$";}])
- (leaf "place-within-backdrop" [true])
- ])
- ] # layer-rule
- )
+}
diff --git a/home/david/modules/programs/niri/default.nix b/home/david/modules/programs/niri/default.nix
index b77a236..3e7d6b0 100644
--- a/home/david/modules/programs/niri/default.nix
+++ b/home/david/modules/programs/niri/default.nix
@@ -3,13 +3,15 @@
lib,
inputs,
pkgs,
- osConfig ? null,
+ osConfig ? (throw "Trying to access osConfig, the home-manager module is not being used in the nixos module"),
options,
...
-} @ args: let
+}: let
cfg = config.david.programs.niri;
- niri = osConfig.programs.niri.package;
in {
+ imports = [
+ ./config.nix
+ ];
options = {
david.programs.niri = {
enable =
@@ -17,9 +19,25 @@ in {
// {
default = osConfig.youthlic.gui.enabled == "niri";
};
- extraConfig = lib.mkOption {
+ config = lib.mkOption {
type = inputs.niri-flake.lib.kdl.types.kdl-document;
};
+ configHelper = lib.mkOption {
+ type = lib.types.anything;
+ default = {
+ validated-config-for = configuration:
+ pkgs.runCommand "config.kdl" {
+ inherit configuration;
+ passAsFile = ["configuration"];
+ buildInputs = [config.programs.niri.package];
+ }
+ #bash
+ ''
+ niri validate -c $configurationPath
+ cp $configurationPath $out
+ '';
+ };
+ };
wluma.extraSettings = lib.mkOption {
inherit (options.david.programs.wluma.extraSettings) type;
};
@@ -42,62 +60,50 @@ in {
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
- home.packages =
- (with pkgs; [
- swaynotificationcenter
- kdePackages.polkit-kde-agent-1
- wl-clipboard
- cliphist
- swayimg
- seahorse
- ])
- ++ [niri];
- qt = {
- enable = true;
- };
- xdg.portal = {
- configPackages = [niri];
- enable = true;
- extraPortals = lib.mkIf (
- !niri.cargoBuildNoDefaultFeatures || builtins.elem "xdp-gnome-screencast" niri.cargoBuildFeatures
- ) [pkgs.xdg-desktop-portal-gnome];
- };
+ home.packages = with pkgs; [
+ # swaynotificationcenter
+ wl-clipboard
+ # cliphist
+ swayimg
+ seahorse
+ ];
xdg.configFile = let
- qtctConf =
- ''
- [Appearance]
- standard_dialogs=xdgdesktopportal
- ''
- + lib.optionalString (config.qt.style ? name) ''
- style=${config.qt.style.name}
- '';
+ qtctConf = ''
+ [Appearance]
+ standard_dialogs=xdgdesktopportal
+ '';
in {
- "qt5ct/qt5ct.conf" = lib.mkForce {
+ "qt5ct/qt5ct.conf" = {
text = qtctConf;
};
- "qt6ct/qt6ct.conf" = lib.mkForce {
+ "qt6ct/qt6ct.conf" = {
text = qtctConf;
};
};
david.programs = {
- fuzzel.enable = true;
- waybar = {
- enable = true;
- inherit (cfg.waybar) settings;
- };
- wluma = {
- enable = true;
- inherit (cfg.wluma) extraSettings;
- };
- swaync.enable = true;
- swaylock.enable = true;
- waypaper.enable = true;
+ # fuzzel.enable = true;
+ # waybar = {
+ # enable = true;
+ # inherit (cfg.waybar) settings;
+ # };
+ # wluma = {
+ # enable = true;
+ # inherit (cfg.wluma) extraSettings;
+ # };
+ # swaync.enable = true;
+ # swaylock.enable = true;
+ # waypaper.enable = true;
kanshi.enable = true;
+ noctalia.enable = true;
};
- programs.niri = {
- config =
- (lib.toList (import ./config.nix (args // {inherit pkgs;}))) ++ (lib.toList cfg.extraConfig);
- package = niri;
+ programs = {
+ niri = {
+ config =
+ cfg.config
+ ++ [
+ (inputs.niri-flake.lib.kdl.leaf "include" [(toString config.david.programs.noctalia.niriExtraConfig)])
+ ];
+ };
};
})
(lib.mkIf (!cfg.enable) {
diff --git a/home/david/modules/programs/noctalia.nix b/home/david/modules/programs/noctalia.nix
new file mode 100644
index 0000000..15e83c4
--- /dev/null
+++ b/home/david/modules/programs/noctalia.nix
@@ -0,0 +1,223 @@
+{
+ config,
+ lib,
+ inputs,
+ pkgs,
+ ...
+}: let
+ cfg = config.david.programs.noctalia;
+ inherit (inputs.niri-flake.lib.kdl) node leaf flag plain;
+ spawn = leaf "spawn";
+ noctalia = args: (spawn (["noctalia-shell" "ipc" "call"] ++ args));
+
+ layer-rule = plain "layer-rule";
+ match = leaf "match";
+in {
+ options = {
+ david.programs.noctalia = {
+ enable = lib.mkEnableOption "noctalia";
+ niriExtraConfig = lib.mkOption {
+ type = inputs.niri-flake.lib.kdl.types.kdl-document;
+ default = [
+ (plain "binds" [
+ (plain "Mod+V" [(noctalia ["launcher" "clipboard"])])
+ (plain "Mod+Shift+P" [(noctalia ["lockScreen" "lock"])])
+ (plain "Mod+Space" [(noctalia ["launcher" "toggle"])])
+ (node "XF86AudioRaiseVolume" [{allow-when-locked = true;}]
+ [(noctalia ["volume" "increase"])])
+ (node "XF86AudioLowerVolume" [{allow-when-locked = true;}]
+ [(noctalia ["volume" "decrease"])])
+ (node "XF86AudioMute" [{allow-when-locked = true;}]
+ [(noctalia ["volume" "muteOutput"])])
+ (node "XF86AudioMicMute" [{allow-when-locked = true;}]
+ [(noctalia ["volume" "muteInput"])])
+ ])
+ (layer-rule [
+ (match [{namespace = "^noctalia-wallpaper-.*$";}])
+ (leaf "place-within-backdrop" [true])
+ ])
+ (layer-rule [
+ (match [{namespace = "^noctalia-notifications-.*$";}])
+ (leaf "block-out-from" ["screen-capture"])
+ ])
+ (plain "layout" [
+ (plain "focus-ring" [
+ (leaf "active-gradient" [
+ {
+ from = "#8288fcff";
+ to = "#8288fc00";
+ angle = 45;
+ "in" = "oklch";
+ }
+ ])
+ ])
+ ])
+ ];
+ apply = configuration: config.david.programs.niri.configHelper.validated-config-for (inputs.niri-flake.lib.kdl.serialize.nodes configuration);
+ };
+ };
+ };
+ config = lib.mkIf cfg.enable {
+ home.packages = [pkgs.app2unit];
+ programs.noctalia-shell = {
+ enable = true;
+ systemd.enable = true;
+ settings = {
+ settingsVersion = 23;
+ appLauncher = {
+ enableClipboardHistory = true;
+ position = "center";
+ sortByMostUsed = true;
+ terminalCommand = "ghostty -e";
+ useApp2Unit = true;
+ };
+ audio = {
+ volumeStep = 1;
+ volumeOverdrive = true;
+ cavaFrameRate = 165;
+ visualizerQuality = "high";
+ visualizerType = "mirrored";
+ };
+ bar = {
+ density = "comfortable";
+ exclusive = true;
+ floating = false;
+ outerCorners = true;
+ position = "right";
+ showCapsule = true;
+ widgets = {
+ center = [
+ {id = "Taskbar";}
+ {
+ id = "Workspace";
+ hideUnoccupied = true;
+ }
+ ];
+ left = [
+ {id = "SystemMonitor";}
+ {
+ id = "MediaMini";
+ hideWhenIdle = false;
+ hideMode = "hidden";
+ showAlbumArt = true;
+ }
+ {
+ id = "AudioVisualizer";
+ hideWhenIdle = true;
+ }
+ ];
+ right = [
+ {id = "WallpaperSelector";}
+ {id = "ScreenRecorder";}
+ {id = "Brightness";}
+ {id = "DarkMode";}
+ {id = "NotificationHistory";}
+ {id = "Volume";}
+ {
+ id = "Tray";
+ drawerEnabled = true;
+ pinned = [
+ "Fcitx"
+ ];
+ }
+ {id = "Clock";}
+ ];
+ };
+ };
+ brightness = {
+ brightnessStep = 1;
+ enableDdcSupport = true;
+ enforceMinimum = true;
+ };
+ colorSchemes = {
+ generateTemplatesForPredefined = false;
+ predefineScheme = "Catppuccin";
+ schedulingMode = "location";
+ useWallpaperColors = false;
+ darkMode = false;
+ };
+ controlCenter = {
+ cards = [
+ {
+ enabled = true;
+ id = "profile-card";
+ }
+ {
+ enabled = true;
+ id = "shortcuts-card";
+ }
+ {
+ enabled = true;
+ id = "audio-card";
+ }
+ {
+ enabled = true;
+ id = "weather-card";
+ }
+ {
+ enabled = true;
+ id = "media-sysmon-card";
+ }
+ ];
+ position = "close_to_bar_button";
+ shortcuts = {
+ left = [{id = "Bluetooth";} {id = "WallpaperSelector";}];
+ right = [{id = "KeepAwake";} {id = "NightLight";}];
+ };
+ };
+ dock = {
+ enabled = false;
+ };
+ general = {
+ animationSpeed = 2;
+ avatarImage = "${config.home.homeDirectory}/.face";
+ compactLockScreen = false;
+ dimmerOpacity = 0;
+ enableShadows = true;
+ forceBlackScreenCorners = false;
+ language = "zh-CN";
+ lockOnSuspend = true;
+ showScreenCorners = false;
+ };
+ location = {
+ firstDayOfWeek = 1;
+ showCalendarEvents = true;
+ showCalendarWeather = true;
+ weatherEnabled = true;
+ };
+ network = {
+ wifiEnabled = false;
+ };
+ notifications = {
+ enabled = true;
+ location = "bottom_right";
+ overlayLayer = true;
+ respectExpireTimeout = true;
+ };
+ osd = {
+ enabled = true;
+ location = "bottom";
+ overlayLayer = true;
+ };
+ setupCompleted = true;
+ ui = {
+ fontDefault = "Source Han Serif SC";
+ fontFixed = "Maple Mono NF CN";
+ panelsAttachedToBar = true;
+ settingsPanelAttachToBar = false;
+ tooltipsEnabled = true;
+ };
+ wallpaper = {
+ directory = "${config.home.homeDirectory}/wallpaper";
+ enabled = true;
+ panelPosition = "center";
+ randomEnabled = true;
+ randomIntervalSec = 900;
+ recursiveSearch = true;
+ transitionDuration = 1500;
+ transitionType = "random";
+ };
+ };
+ };
+ };
+}
diff --git a/home/modules/default.nix b/home/modules/default.nix
index 5e02002..5f2bbef 100644
--- a/home/modules/default.nix
+++ b/home/modules/default.nix
@@ -8,6 +8,7 @@
sops-nix.homeManagerModules.sops
betterfox-nix.homeModules.betterfox
nix4nvchad.homeManagerModule
+ noctalia.homeModules.default
])
++ lib.youthlic.loadImports ./.;
diff --git a/home/modules/programs/atuin.nix b/home/modules/programs/atuin.nix
index 8e84e5f..99de6a1 100644
--- a/home/modules/programs/atuin.nix
+++ b/home/modules/programs/atuin.nix
@@ -31,6 +31,7 @@ in {
enter_accept = false;
keymap_mode = "vim-insert";
sync.records = true;
+ search_mode = "skim";
};
};
})
diff --git a/home/modules/programs/eza.nix b/home/modules/programs/eza.nix
index 03e2d34..8a9b4e4 100644
--- a/home/modules/programs/eza.nix
+++ b/home/modules/programs/eza.nix
@@ -17,6 +17,8 @@ in {
(lib.mkIf cfg.enable {
programs.eza = {
enable = true;
+ colors = "auto";
+ icons = "auto";
};
})
(lib.mkIf (cfg.enable && fish-cfg.enable) {
diff --git a/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix b/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix
index 5cf3649..db6d7da 100644
--- a/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix
+++ b/nixos/configurations/Tytonidae/specialisation/niri-hybrid.nix
@@ -1,13 +1,16 @@
-{
- inputs,
- lib,
- ...
-}: {
+{inputs, ...}: {
config.specialisation.niri-hybrid = {
inheritParentConfig = true;
configuration = {
+ disabledModules = [
+ inputs.nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
+ ];
imports = [inputs.nixos-hardware.nixosModules.common-gpu-nvidia];
- hardware.nvidia.prime.reverseSync.enable = lib.mkForce false;
+ hardware.nvidia.prime = {
+ reverseSync.enable = false;
+ offload.enable = true;
+ };
+ services.xserver.videoDrivers = ["nvidia"];
};
};
}
diff --git a/nixos/modules/gui/kde.nix b/nixos/modules/gui/kde.nix
index 8bd02c5..9651516 100644
--- a/nixos/modules/gui/kde.nix
+++ b/nixos/modules/gui/kde.nix
@@ -6,8 +6,6 @@
cfg = config.youthlic.gui;
in {
config = lib.mkIf (cfg.enabled == "kde") {
- # Fix stylix bug
- qt.platformTheme = lib.mkForce "kde";
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm.enable = true;
diff --git a/nixos/modules/gui/niri.nix b/nixos/modules/gui/niri.nix
index f341d33..c9893ec 100644
--- a/nixos/modules/gui/niri.nix
+++ b/nixos/modules/gui/niri.nix
@@ -11,12 +11,11 @@ in {
};
};
config = lib.mkIf (cfg.enabled == "niri") {
- qt = {
- enable = true;
- platformTheme = "qt5ct";
- };
# Enabled to support trash of nautilus
services.gvfs.enable = true;
+
+ systemd.user.services.niri-flake-polkit.serviceConfig.ExecStart = lib.mkForce "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1";
+
environment = {
pathsToLink = ["share/thumbnailers"];
systemPackages = with pkgs; [
@@ -26,13 +25,16 @@ in {
libheif.out
bluez
- kdePackages.qt6ct
- libsForQt5.qt5ct
xwayland-satellite-unstable
evince
];
};
xdg = {
+ portal = {
+ extraPortals = [
+ pkgs.xdg-desktop-portal-gtk
+ ];
+ };
terminal-exec = {
enable = true;
settings = {
diff --git a/nixos/modules/nix.nix b/nixos/modules/nix.nix
index b0c85c1..b80b30f 100644
--- a/nixos/modules/nix.nix
+++ b/nixos/modules/nix.nix
@@ -27,24 +27,6 @@
"immersive-translate"
];
packageOverrides = p: {
- kdePackages =
- p.kdePackages
- // {
- inherit
- (
- (import inputs.nixpkgs-455083 {
- localSystem = {
- inherit (pkgs.stdenv.hostPlatform) system;
- };
- config = {
- allowUnfree = true;
- allowInsecurePredicate = p: builtins.elem (lib.getName p) ["olm"];
- };
- }).kdePackages
- )
- neochat
- ;
- };
intel-vaapi-driver = p.intel-vaapi-driver.override {enableHybridCodec = true;};
onnxruntime = p.onnxruntime.override {
cudaSupport = false;
diff --git a/nvfetcher.toml b/nvfetcher.toml
index 26b9e4f..345ab71 100644
--- a/nvfetcher.toml
+++ b/nvfetcher.toml
@@ -58,8 +58,3 @@ url.name = "yustar_$ver.zip"
[nvim_vim-startuptime]
fetch.github = "dstein64/vim-startuptime"
src.git = "https://github.com/dstein64/vim-startuptime.git"
-
-[spotifyd]
-fetch.git = "https://github.com/ulic-youthlic/spotifyd.git"
-src.git = "https://github.com/ulic-youthlic/spotifyd.git"
-src.branch = "push-mrxqoqwxqsqt"
diff --git a/overlays/modifications/default.nix b/overlays/modifications/default.nix
index 8233af6..663f1c1 100644
--- a/overlays/modifications/default.nix
+++ b/overlays/modifications/default.nix
@@ -12,7 +12,6 @@ in
./helix.nix
./cliphist.nix
./zulip.nix
- ./spotifyd.nix
./nautilus.nix
./neovim-nightly.nix
./vim.nix
diff --git a/overlays/modifications/spotifyd.nix b/overlays/modifications/spotifyd.nix
deleted file mode 100644
index eb39754..0000000
--- a/overlays/modifications/spotifyd.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{outputs, ...}: _final: prev: let
- inherit (prev.stdenv.hostPlatform) system;
-in {
- spotifyd = outputs.packages.${system}.spotifyd';
-}
diff --git a/pkgs/spotifyd'.nix b/pkgs/spotifyd'.nix
deleted file mode 100644
index ff1b4c0..0000000
--- a/pkgs/spotifyd'.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- srcs,
- spotifyd,
- rustPlatform,
- ...
-}: let
- inherit (srcs.spotifyd) src date version;
-in
- spotifyd.overrideAttrs (
- _final: prev: {
- inherit src;
- version =
- if prev.version != "0.4.1"
- then
- throw ''
- Please remove
- ''
- else "0-unstable-${date}-git${version}";
- cargoDeps = rustPlatform.fetchCargoVendor {
- inherit
- (prev)
- src
- ;
- hash = "sha256-WwShp1ebk89cBqRXqKDgbwGZraCDjQAOxoL4uEIq2aw=";
- };
- }
- )
diff --git a/pkgs/wallpapers.nix b/pkgs/wallpapers.nix
index 96ad9cb..806cb42 100644
--- a/pkgs/wallpapers.nix
+++ b/pkgs/wallpapers.nix
@@ -7,7 +7,7 @@
wallpapers = with lib;
pipe srcs [
(filterAttrs (name: _value: hasPrefix "wallpaper" name))
- (concatMapAttrsStringSep "\n" (name: value: "ln -s ${value.src} $out/${name}"))
+ (concatMapAttrsStringSep "\n" (name: value: "cp ${value.src} $out/${name}"))
];
in
runCommandLocal "wallpapers" {} ''
@@ -15,5 +15,5 @@ in
${wallpapers}
- ln -s ${rootPath + "/assets/wallpaper/01.png"} $out/01.png
+ cp ${rootPath + "/assets/wallpaper/01.png"} $out/01.png
''
diff --git a/templates/cxx/.clang-format b/templates/cxx/.clang-format
deleted file mode 100644
index 06e3c51..0000000
--- a/templates/cxx/.clang-format
+++ /dev/null
@@ -1,4 +0,0 @@
----
-Language: Cpp
-BasedOnStyle: Google
-...
diff --git a/templates/cxx/.clang-tidy b/templates/cxx/.clang-tidy
deleted file mode 100755
index fbc2618..0000000
--- a/templates/cxx/.clang-tidy
+++ /dev/null
@@ -1,3 +0,0 @@
----
-Checks: "clang-diagnostic-*,clang-analyzer-*,modernize-*,performance-*,cppcoreguidelines-*"
-...
diff --git a/templates/cxx/.clangd b/templates/cxx/.clangd
deleted file mode 100644
index 8793993..0000000
--- a/templates/cxx/.clangd
+++ /dev/null
@@ -1,9 +0,0 @@
-InlayHints:
- Enabled:
- true
- ParameterNames:
- true
- DuducedTypes:
- true
- Designators:
- true
diff --git a/templates/cxx/.envrc b/templates/cxx/.envrc
deleted file mode 100644
index c1d8584..0000000
--- a/templates/cxx/.envrc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-use flake
diff --git a/templates/cxx/.gitignore b/templates/cxx/.gitignore
deleted file mode 100644
index 0a293cf..0000000
--- a/templates/cxx/.gitignore
+++ /dev/null
@@ -1,50 +0,0 @@
-.cache
-compile_commands.json
-
-###---------------###
-### GitHub: C++ ###
-###---------------###
-
-# Prerequisites
-*.d
-
-# Compiled Object files
-*.slo
-*.lo
-*.o
-*.obj
-
-# Precompiled Headers
-*.gch
-*.pch
-
-# Compiled Dynamic libraries
-*.so
-*.dylib
-*.dll
-
-# Fortran module files
-*.mod
-*.smod
-
-# Compiled Static libraries
-*.lai
-*.la
-*.a
-*.lib
-
-# Executables
-*.exe
-*.out
-*.app
-
-###---------------###
-### GitHub: Nix ###
-###---------------###
-
-# Ignore build outputs from performing a nix-build or `nix build` command
-result
-result-*
-
-# Ignore automatically generated direnv output
-.direnv
diff --git a/templates/cxx/LICENSE-GPL-3.0-or-later b/templates/cxx/LICENSE-GPL-3.0-or-later
deleted file mode 100644
index f288702..0000000
--- a/templates/cxx/LICENSE-GPL-3.0-or-later
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU 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.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. 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
-them 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 prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. 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.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey 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;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If 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 convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- 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.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-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.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- 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
-state 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)
-
- 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program 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, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU 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 Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/templates/cxx/Makefile b/templates/cxx/Makefile
deleted file mode 100644
index 39127b0..0000000
--- a/templates/cxx/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-main.out: main.o
- $(CXX) -std=c++26 $^ -o $@
-
-main.o: main.cxx
- $(CXX) -std=c++26 -c $^
-
-compile_commands.json: clean
- bear -- make
-
-.PHONY: run clean
-run: main
- @echo Run:
- @./main
-
-clean:
- -rm main.out main.o
diff --git a/templates/cxx/flake.nix b/templates/cxx/flake.nix
deleted file mode 100644
index 0339e8f..0000000
--- a/templates/cxx/flake.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- flake-utils = {
- url = "github:numtide/flake-utils";
- };
- };
- outputs = {
- flake-utils,
- nixpkgs,
- ...
- }:
- flake-utils.lib.eachDefaultSystem (
- system: let
- pkgs = import nixpkgs {
- localSystem = {inherit system;};
- };
- in {
- formatter = pkgs.alejandra;
- devShells.default = pkgs.mkShell {
- packages = with pkgs; [
- clang-tools
-
- gcc
- bear
- gnumake
- ];
- };
- }
- );
- nixConfig = {
- keepOutputs = true;
- };
-}
diff --git a/templates/cxx/main.cxx b/templates/cxx/main.cxx
deleted file mode 100644
index a492343..0000000
--- a/templates/cxx/main.cxx
+++ /dev/null
@@ -1,3 +0,0 @@
-#include
-
-auto main() -> int { std::println("Hello, {}!", "World"); }
diff --git a/templates/default.nix b/templates/default.nix
deleted file mode 100644
index f157840..0000000
--- a/templates/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- rust = {
- path = ./rust;
- description = "Rust template.";
- };
- cxx = {
- path = ./cxx;
- description = "C++ template.";
- };
- python = {
- path = ./python;
- description = "Python template.";
- };
-}
diff --git a/templates/python/.envrc b/templates/python/.envrc
deleted file mode 100644
index 97dd692..0000000
--- a/templates/python/.envrc
+++ /dev/null
@@ -1,3 +0,0 @@
-watch_file pyproject.toml uv.lock
-
-use flake
diff --git a/templates/python/.gitignore b/templates/python/.gitignore
deleted file mode 100644
index 10991b9..0000000
--- a/templates/python/.gitignore
+++ /dev/null
@@ -1,291 +0,0 @@
-###------------------###
-### GitHub: Python ###
-###------------------###
-
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-share/python-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other infos into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.nox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-*.py,cover
-.hypothesis/
-.pytest_cache/
-cover/
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-db.sqlite3-journal
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-.pybuilder/
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# IPython
-profile_default/
-ipython_config.py
-
-# pyenv
-# For a library or package, you might want to ignore these files since the code is
-# intended to run in multiple environments; otherwise, check them in:
-# .python-version
-
-# pipenv
-# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
-# However, in case of collaboration, if having platform-specific dependencies or dependencies
-# having no cross-platform support, pipenv may install dependencies that don't work, or not
-# install all needed dependencies.
-#Pipfile.lock
-
-# UV
-# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
-# This is especially recommended for binary packages to ensure reproducibility, and is more
-# commonly ignored for libraries.
-#uv.lock
-
-# poetry
-# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
-# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
-#poetry.lock
-#poetry.toml
-
-# pdm
-# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
-#pdm.lock
-# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
-# in version control.
-# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
-.pdm.toml
-.pdm-python
-.pdm-build/
-
-# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
-__pypackages__/
-
-# Celery stuff
-celerybeat-schedule
-celerybeat.pid
-
-# SageMath parsed files
-*.sage.py
-
-# Environments
-.env
-.venv
-env/
-venv/
-ENV/
-env.bak/
-venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-
-# mypy
-.mypy_cache/
-.dmypy.json
-dmypy.json
-
-# Pyre type checker
-.pyre/
-
-# pytype static type analyzer
-.pytype/
-
-# Cython debug symbols
-cython_debug/
-
-# PyCharm
-# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
-# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
-# and can be added to the global gitignore or merged into this file. For a more nuclear
-# option (not recommended) you can uncomment the following to ignore the entire idea folder.
-#.idea/
-
-# Abstra
-# Abstra is an AI-powered process automation framework.
-# Ignore directories containing user credentials, local state, and settings.
-# Learn more at https://abstra.io/docs
-.abstra/
-
-# Visual Studio Code
-# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
-# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
-# and can be added to the global gitignore or merged into this file. However, if you prefer,
-# you could uncomment the following to ignore the entire vscode folder
-# .vscode/
-
-# Ruff stuff:
-.ruff_cache/
-
-# PyPI configuration file
-.pypirc
-
-# Cursor
-# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
-# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
-# refer to https://docs.cursor.com/context/ignore-files
-.cursorignore
-.cursorindexingignore
-
-###---------------###
-### GitHub: Nix ###
-###---------------###
-
-# Ignore build outputs from performing a nix-build or `nix build` command
-result
-result-*
-
-# Ignore automatically generated direnv output
-.direnv
-
-###----------------------------###
-### GitHub Global: JetBrains ###
-###----------------------------###
-
-# Covers JetBrains IDEs: IntelliJ, GoLand, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# User-specific stuff
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-.idea/**/usage.statistics.xml
-.idea/**/dictionaries
-.idea/**/shelf
-
-# AWS User-specific
-.idea/**/aws.xml
-
-# Generated files
-.idea/**/contentModel.xml
-
-# Sensitive or high-churn files
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-.idea/**/dbnavigator.xml
-
-# Gradle
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# Gradle and Maven with auto-import
-# When using Gradle or Maven with auto-import, you should exclude module files,
-# since they will be recreated, and may cause churn. Uncomment if using
-# auto-import.
-# .idea/artifacts
-# .idea/compiler.xml
-# .idea/jarRepositories.xml
-# .idea/modules.xml
-# .idea/*.iml
-# .idea/modules
-# *.iml
-# *.ipr
-
-# CMake
-cmake-build-*/
-
-# Mongo Explorer plugin
-.idea/**/mongoSettings.xml
-
-# File-based project format
-*.iws
-
-# IntelliJ
-out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Cursive Clojure plugin
-.idea/replstate.xml
-
-# SonarLint plugin
-.idea/sonarlint/
-.idea/sonarlint.xml # see https://community.sonarsource.com/t/is-the-file-idea-idea-idea-sonarlint-xml-intended-to-be-under-source-control/121119
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-
-# Editor-based Rest Client
-.idea/httpRequests
-
-# Android studio 3.1+ serialized cache file
-.idea/caches/build_file_checksums.ser
diff --git a/templates/python/.python-version b/templates/python/.python-version
deleted file mode 100644
index e4fba21..0000000
--- a/templates/python/.python-version
+++ /dev/null
@@ -1 +0,0 @@
-3.12
diff --git a/templates/python/README.md b/templates/python/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/templates/python/app/__init__.py b/templates/python/app/__init__.py
deleted file mode 100644
index 8b13789..0000000
--- a/templates/python/app/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/templates/python/app/__main__.py b/templates/python/app/__main__.py
deleted file mode 100644
index ebfc5ed..0000000
--- a/templates/python/app/__main__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-def hello(name: str = "World"):
- print(f"Hello, {name}!")
-
-
-def main():
- hello()
-
-
-if __name__ == "__main__":
- main()
diff --git a/templates/python/flake.lock b/templates/python/flake.lock
deleted file mode 100644
index 5011e13..0000000
--- a/templates/python/flake.lock
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "nodes": {
- "flake-utils": {
- "inputs": {
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1746300365,
- "narHash": "sha256-thYTdWqCRipwPRxWiTiH1vusLuAy0okjOyzRx4hLWh4=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "f21e4546e3ede7ae34d12a84602a22246b31f7e0",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/templates/python/flake.nix b/templates/python/flake.nix
deleted file mode 100644
index d37fdcf..0000000
--- a/templates/python/flake.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- flake-utils = {
- url = "github:numtide/flake-utils";
- };
- };
- outputs = {
- flake-utils,
- nixpkgs,
- ...
- }:
- flake-utils.lib.eachDefaultSystem (
- system: let
- inherit (pkgs) lib;
- pkgs = import nixpkgs {
- localSystem = {inherit system;};
- config = {
- cudaSupport = true;
- allowUnfree = true;
- };
- };
- defaultPython = pkgs.python3;
- in {
- formatter = pkgs.alejandra;
- devShells.default = pkgs.mkShell {
- packages =
- (with pkgs; [
- ruff
- pyright
-
- uv
- defaultPython
- ])
- ++ (with pkgs.python3Packages; [
- pydantic
- torchWithCuda
- ]);
- shellHook = ''
- uv sync
- . ./.venv/bin/activate
- '';
- env = {
- UV_PYTHON_DOWNLOADS = "never";
- UV_PYTHON = "${lib.getExe' defaultPython "python"}";
- UV_TORCH_BACKEND = "auto";
- };
- };
- }
- );
- nixConfig = {
- keepOutputs = true;
- };
-}
diff --git a/templates/python/pyproject.toml b/templates/python/pyproject.toml
deleted file mode 100644
index c7885d2..0000000
--- a/templates/python/pyproject.toml
+++ /dev/null
@@ -1,16 +0,0 @@
-[project]
-dependencies = ["numpy>=2.2.6"]
-description = "Add your description here"
-name = "python"
-readme = "README.md"
-requires-python = ">=3.12"
-version = "0.1.0"
-
-[dependency-groups]
-dev = ["ipython>=9.2.0", "ptpython>=3.0.30"]
-
-[build-system]
-build-backend = "hatchling.build"
-requires = ["hatchling"]
-[tool.hatch.build.targets.wheel]
-packages = ["app"]
diff --git a/templates/python/uv.lock b/templates/python/uv.lock
deleted file mode 100644
index aeb2b05..0000000
--- a/templates/python/uv.lock
+++ /dev/null
@@ -1,273 +0,0 @@
-version = 1
-revision = 2
-requires-python = ">=3.12"
-
-[[package]]
-name = "appdirs"
-version = "1.4.4"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/d7/d8/05696357e0311f5b5c316d7b95f46c669dd9c15aaeecbb48c7d0aeb88c40/appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", size = 13470, upload-time = "2020-05-11T07:59:51.037Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128", size = 9566, upload-time = "2020-05-11T07:59:49.499Z" },
-]
-
-[[package]]
-name = "asttokens"
-version = "3.0.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978, upload-time = "2024-11-30T04:30:14.439Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" },
-]
-
-[[package]]
-name = "colorama"
-version = "0.4.6"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
-]
-
-[[package]]
-name = "decorator"
-version = "5.2.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" },
-]
-
-[[package]]
-name = "executing"
-version = "2.2.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/91/50/a9d80c47ff289c611ff12e63f7c5d13942c65d68125160cefd768c73e6e4/executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755", size = 978693, upload-time = "2025-01-22T15:41:29.403Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa", size = 26702, upload-time = "2025-01-22T15:41:25.929Z" },
-]
-
-[[package]]
-name = "ipython"
-version = "9.2.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "colorama", marker = "sys_platform == 'win32'" },
- { name = "decorator" },
- { name = "ipython-pygments-lexers" },
- { name = "jedi" },
- { name = "matplotlib-inline" },
- { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
- { name = "prompt-toolkit" },
- { name = "pygments" },
- { name = "stack-data" },
- { name = "traitlets" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/9d/02/63a84444a7409b3c0acd1de9ffe524660e0e5d82ee473e78b45e5bfb64a4/ipython-9.2.0.tar.gz", hash = "sha256:62a9373dbc12f28f9feaf4700d052195bf89806279fc8ca11f3f54017d04751b", size = 4424394, upload-time = "2025-04-25T17:55:40.498Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/78/ce/5e897ee51b7d26ab4e47e5105e7368d40ce6cfae2367acdf3165396d50be/ipython-9.2.0-py3-none-any.whl", hash = "sha256:fef5e33c4a1ae0759e0bba5917c9db4eb8c53fee917b6a526bd973e1ca5159f6", size = 604277, upload-time = "2025-04-25T17:55:37.625Z" },
-]
-
-[[package]]
-name = "ipython-pygments-lexers"
-version = "1.1.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "pygments" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" },
-]
-
-[[package]]
-name = "jedi"
-version = "0.19.2"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "parso" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" },
-]
-
-[[package]]
-name = "matplotlib-inline"
-version = "0.1.7"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "traitlets" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159, upload-time = "2024-04-15T13:44:44.803Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899, upload-time = "2024-04-15T13:44:43.265Z" },
-]
-
-[[package]]
-name = "numpy"
-version = "2.2.6"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" },
- { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" },
- { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" },
- { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" },
- { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" },
- { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" },
- { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" },
- { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" },
- { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" },
- { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" },
- { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" },
- { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" },
- { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" },
- { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" },
- { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" },
- { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" },
- { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" },
- { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" },
- { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" },
- { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" },
- { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" },
- { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" },
- { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" },
- { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" },
- { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" },
- { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" },
- { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" },
- { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" },
- { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" },
- { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" },
-]
-
-[[package]]
-name = "parso"
-version = "0.8.4"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d", size = 400609, upload-time = "2024-04-05T09:43:55.897Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650, upload-time = "2024-04-05T09:43:53.299Z" },
-]
-
-[[package]]
-name = "pexpect"
-version = "4.9.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "ptyprocess" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" },
-]
-
-[[package]]
-name = "prompt-toolkit"
-version = "3.0.51"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "wcwidth" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/bb/6e/9d084c929dfe9e3bfe0c6a47e31f78a25c54627d64a66e884a8bf5474f1c/prompt_toolkit-3.0.51.tar.gz", hash = "sha256:931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed", size = 428940, upload-time = "2025-04-15T09:18:47.731Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl", hash = "sha256:52742911fde84e2d423e2f9a4cf1de7d7ac4e51958f648d9540e0fb8db077b07", size = 387810, upload-time = "2025-04-15T09:18:44.753Z" },
-]
-
-[[package]]
-name = "ptpython"
-version = "3.0.30"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "appdirs" },
- { name = "jedi" },
- { name = "prompt-toolkit" },
- { name = "pygments" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/c9/ce/4441ac40762c73d74b48088a7311e368d28beec92602d66e632a59792a93/ptpython-3.0.30.tar.gz", hash = "sha256:51a07f9b8ebf8435a5aaeb22831cca4a52e87029771a2637df2763c79d3d8776", size = 72812, upload-time = "2025-04-15T09:26:37.534Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/05/15/77dfd9a52fa6c87b50232b246df0cfacacc0665c95ebe4a517cc994819f0/ptpython-3.0.30-py3-none-any.whl", hash = "sha256:bec3045f0285ac817c902ef98d6ece31d3e00a4604ef3fdde07d365c78bde23c", size = 67249, upload-time = "2025-04-15T09:26:35.693Z" },
-]
-
-[[package]]
-name = "ptyprocess"
-version = "0.7.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" },
-]
-
-[[package]]
-name = "pure-eval"
-version = "0.2.3"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" },
-]
-
-[[package]]
-name = "pygments"
-version = "2.19.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload-time = "2025-01-06T17:26:30.443Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" },
-]
-
-[[package]]
-name = "python"
-version = "0.1.0"
-source = { editable = "." }
-dependencies = [
- { name = "numpy" },
-]
-
-[package.dev-dependencies]
-dev = [
- { name = "ipython" },
- { name = "ptpython" },
-]
-
-[package.metadata]
-requires-dist = [{ name = "numpy", specifier = ">=2.2.6" }]
-
-[package.metadata.requires-dev]
-dev = [
- { name = "ipython", specifier = ">=9.2.0" },
- { name = "ptpython", specifier = ">=3.0.30" },
-]
-
-[[package]]
-name = "stack-data"
-version = "0.6.3"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "asttokens" },
- { name = "executing" },
- { name = "pure-eval" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" },
-]
-
-[[package]]
-name = "traitlets"
-version = "5.14.3"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" },
-]
-
-[[package]]
-name = "wcwidth"
-version = "0.2.13"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" },
-]
diff --git a/templates/rust/.cargo/audit.toml b/templates/rust/.cargo/audit.toml
deleted file mode 100644
index c81ec0e..0000000
--- a/templates/rust/.cargo/audit.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-[advisories]
-ignore = [] # advisory IDs to ignore e.g. ["RUSTSEC-2019-0001", ...]
-informational_warnings = [
- "unmaintained",
-] # warn for categories of informational advisories
-severity_threshold = "low" # CVSS severity ("none", "low", "medium", "high", "critical")
-
-[database]
-url = "https://github.com/RustSec/advisory-db.git"
-fetch = true
-stale = false
-
-[output]
-deny = ["unmaintained"] # exit on error if unmaintained dependencies are found
-format = "terminal" # "terminal" (human readable report) or "json"
-quiet = false # Only print information on error
-show_tree = true
-
-[target]
-arch = ["x86_64"]
-os = ["linux", "windows"]
-
-[yanked]
-enabled = true
-update_index = true
diff --git a/templates/rust/.envrc b/templates/rust/.envrc
deleted file mode 100644
index 5e5ab08..0000000
--- a/templates/rust/.envrc
+++ /dev/null
@@ -1,3 +0,0 @@
-watch_file rust-toolchain.toml nix/*.nix
-
-use flake
diff --git a/templates/rust/.gitignore b/templates/rust/.gitignore
deleted file mode 100644
index 4ceb593..0000000
--- a/templates/rust/.gitignore
+++ /dev/null
@@ -1,119 +0,0 @@
-###----------------###
-### GitHub: Rust ###
-###----------------###
-
-# Generated by Cargo
-# will have compiled files and executables
-debug/
-target/
-
-# These are backup files generated by rustfmt
-**/*.rs.bk
-
-# MSVC Windows builds of rustc generate these, which store debugging information
-*.pdb
-
-# Generated by cargo mutants
-# Contains mutation testing data
-**/mutants.out*/
-
-# RustRover
-# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
-# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
-# and can be added to the global gitignore or merged into this file. For a more nuclear
-# option (not recommended) you can uncomment the following to ignore the entire idea folder.
-#.idea/
-
-###----------------------------###
-### GitHub Global: JetBrains ###
-###----------------------------###
-
-# Covers JetBrains IDEs: IntelliJ, GoLand, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# User-specific stuff
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-.idea/**/usage.statistics.xml
-.idea/**/dictionaries
-.idea/**/shelf
-
-# AWS User-specific
-.idea/**/aws.xml
-
-# Generated files
-.idea/**/contentModel.xml
-
-# Sensitive or high-churn files
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-.idea/**/dbnavigator.xml
-
-# Gradle
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# Gradle and Maven with auto-import
-# When using Gradle or Maven with auto-import, you should exclude module files,
-# since they will be recreated, and may cause churn. Uncomment if using
-# auto-import.
-# .idea/artifacts
-# .idea/compiler.xml
-# .idea/jarRepositories.xml
-# .idea/modules.xml
-# .idea/*.iml
-# .idea/modules
-# *.iml
-# *.ipr
-
-# CMake
-cmake-build-*/
-
-# Mongo Explorer plugin
-.idea/**/mongoSettings.xml
-
-# File-based project format
-*.iws
-
-# IntelliJ
-out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Cursive Clojure plugin
-.idea/replstate.xml
-
-# SonarLint plugin
-.idea/sonarlint/
-.idea/sonarlint.xml # see https://community.sonarsource.com/t/is-the-file-idea-idea-idea-sonarlint-xml-intended-to-be-under-source-control/121119
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-
-# Editor-based Rest Client
-.idea/httpRequests
-
-# Android studio 3.1+ serialized cache file
-.idea/caches/build_file_checksums.ser
-
-###---------------###
-### GitHub: Nix ###
-###---------------###
-
-# Ignore build outputs from performing a nix-build or `nix build` command
-result
-result-*
-
-# Ignore automatically generated direnv output
-.direnv
diff --git a/templates/rust/.rustfmt.toml b/templates/rust/.rustfmt.toml
deleted file mode 100644
index 7f8e98f..0000000
--- a/templates/rust/.rustfmt.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-edition = "2024"
-merge_derives = true
-newline_style = "Unix"
-reorder_imports = true
-reorder_modules = true
-use_field_init_shorthand = true
-use_try_shorthand = true
-# unstable_features = true
-# format_code_in_doc_comments = true
-# format_macro_bodies = true
-# format_strings = true
-# float_literal_trailing_zero = "IfNoPostfix"
-# imports_granularity = "Crate"
-# overflow_delimited_expr = true
-# reorder_impl_items = true
-# group_imports = "StdExternalCrate"
-# wrap_comments = true
diff --git a/templates/rust/Cargo.lock b/templates/rust/Cargo.lock
deleted file mode 100644
index da9ac51..0000000
--- a/templates/rust/Cargo.lock
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 4
-
-[[package]]
-name = "rust-demo"
-version = "0.1.0"
diff --git a/templates/rust/Cargo.toml b/templates/rust/Cargo.toml
deleted file mode 100644
index f61d055..0000000
--- a/templates/rust/Cargo.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[package]
-name = "rust-demo"
-version = "0.1.0"
-edition = "2024"
-license = "GPL-3.0-or-later"
-
-[dependencies]
diff --git a/templates/rust/LICENSE-GPL-3.0-or-later b/templates/rust/LICENSE-GPL-3.0-or-later
deleted file mode 100644
index f288702..0000000
--- a/templates/rust/LICENSE-GPL-3.0-or-later
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU 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.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. 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
-them 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 prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. 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.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey 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;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If 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 convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU 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 that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- 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.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-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.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- 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
-state 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)
-
- 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 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program 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, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU 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 Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/templates/rust/deny.toml b/templates/rust/deny.toml
deleted file mode 100644
index 6f58a9b..0000000
--- a/templates/rust/deny.toml
+++ /dev/null
@@ -1,236 +0,0 @@
-# This template contains all of the possible sections and their default values
-
-# Note that all fields that take a lint level have these possible values:
-# * deny - An error will be produced and the check will fail
-# * warn - A warning will be produced, but the check will not fail
-# * allow - No warning or error will be produced, though in some cases a note
-# will be
-
-# The values provided in this template are the default values that will be used
-# when any section or field is not specified in your own configuration
-
-# Root options
-
-# The graph table configures how the dependency graph is constructed and thus
-# which crates the checks are performed against
-[graph]
-# If 1 or more target triples (and optionally, target_features) are specified,
-# only the specified targets will be checked when running `cargo deny check`.
-# This means, if a particular package is only ever used as a target specific
-# dependency, such as, for example, the `nix` crate only being used via the
-# `target_family = "unix"` configuration, that only having windows targets in
-# this list would mean the nix crate, as well as any of its exclusive
-# dependencies not shared by any other crates, would be ignored, as the target
-# list here is effectively saying which targets you are building for.
-targets = [
- # The triple can be any string, but only the target triples built in to
- # rustc (as of 1.40) can be checked against actual config expressions
- # "x86_64-unknown-linux-musl",
- # You can also specify which target_features you promise are enabled for a
- # particular target. target_features are currently not validated against
- # the actual valid features supported by the target architecture.
- # { triple = "wasm32-unknown-unknown", features = ["atomics"] },
-]
-# When creating the dependency graph used as the source of truth when checks are
-# executed, this field can be used to prune crates from the graph, removing them
-# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
-# is pruned from the graph, all of its dependencies will also be pruned unless
-# they are connected to another crate in the graph that hasn't been pruned,
-# so it should be used with care. The identifiers are [Package ID Specifications]
-# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
-# exclude = []
-# If true, metadata will be collected with `--all-features`. Note that this can't
-# be toggled off if true, if you want to conditionally enable `--all-features` it
-# is recommended to pass `--all-features` on the cmd line instead
-all-features = false
-# If true, metadata will be collected with `--no-default-features`. The same
-# caveat with `all-features` applies
-no-default-features = false
-# If set, these feature will be enabled when collecting metadata. If `--features`
-# is specified on the cmd line they will take precedence over this option.
-# features = []
-
-# The output table provides options for how/if diagnostics are outputted
-[output]
-# When outputting inclusion graphs in diagnostics that include features, this
-# option can be used to specify the depth at which feature edges will be added.
-# This option is included since the graphs can be quite large and the addition
-# of features from the crate(s) to all of the graph roots can be far too verbose.
-# This option can be overridden via `--feature-depth` on the cmd line
-feature-depth = 1
-
-# This section is considered when running `cargo deny check advisories`
-# More documentation for the advisories section can be found here:
-# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
-[advisories]
-# The path where the advisory databases are cloned/fetched into
-# db-path = "$CARGO_HOME/advisory-dbs"
-# The url(s) of the advisory databases to use
-# db-urls = ["https://github.com/rustsec/advisory-db"]
-# A list of advisory IDs to ignore. Note that ignored advisories will still
-# output a note when they are encountered.
-ignore = [
- # "RUSTSEC-0000-0000",
- # { id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" },
- # "a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish
- # { crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" },
-]
-# If this is true, then cargo deny will use the git executable to fetch advisory database.
-# If this is false, then it uses a built-in git library.
-# Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
-# See Git Authentication for more information about setting up git authentication.
-# git-fetch-with-cli = true
-
-# This section is considered when running `cargo deny check licenses`
-# More documentation for the licenses section can be found here:
-# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
-[licenses]
-# List of explicitly allowed licenses
-# See https://spdx.org/licenses/ for list of possible licenses
-# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
-allow = [
- "MIT",
- # "Apache-2.0",
- # "Apache-2.0 WITH LLVM-exception",
- "GPL-3.0",
-]
-# The confidence threshold for detecting a license from license text.
-# The higher the value, the more closely the license text must be to the
-# canonical license text of a valid SPDX license file.
-# [possible values: any between 0.0 and 1.0].
-confidence-threshold = 0.8
-# Allow 1 or more licenses on a per-crate basis, so that particular licenses
-# aren't accepted for every possible crate as with the normal allow list
-exceptions = [
- # Each entry is the crate and version constraint, and its specific allow
- # list
- # { allow = ["Zlib"], crate = "adler32" },
-]
-
-# Some crates don't have (easily) machine readable licensing information,
-# adding a clarification entry for it allows you to manually specify the
-# licensing information
-# [[licenses.clarify]]
-# The package spec the clarification applies to
-# crate = "ring"
-# The SPDX expression for the license requirements of the crate
-# expression = "MIT AND ISC AND OpenSSL"
-# One or more files in the crate's source used as the "source of truth" for
-# the license expression. If the contents match, the clarification will be used
-# when running the license check, otherwise the clarification will be ignored
-# and the crate will be checked normally, which may produce warnings or errors
-# depending on the rest of your configuration
-# license-files = [
-# Each entry is a crate relative path, and the (opaque) hash of its contents
-# { path = "LICENSE", hash = 0xbd0eed23 }
-# ]
-
-[licenses.private]
-# If true, ignores workspace crates that aren't published, or are only
-# published to private registries.
-# To see how to mark a crate as unpublished (to the official registry),
-# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
-ignore = false
-# One or more private registries that you might publish crates to, if a crate
-# is only published to private registries, and ignore is true, the crate will
-# not have its license(s) checked
-registries = [
- # "https://sekretz.com/registry
-]
-
-# This section is considered when running `cargo deny check bans`.
-# More documentation about the 'bans' section can be found here:
-# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
-[bans]
-# Lint level for when multiple versions of the same crate are detected
-multiple-versions = "warn"
-# Lint level for when a crate version requirement is `*`
-wildcards = "allow"
-# The graph highlighting used when creating dotgraphs for crates
-# with multiple versions
-# * lowest-version - The path to the lowest versioned duplicate is highlighted
-# * simplest-path - The path to the version with the fewest edges is highlighted
-# * all - Both lowest-version and simplest-path are used
-highlight = "all"
-# The default lint level for `default` features for crates that are members of
-# the workspace that is being checked. This can be overridden by allowing/denying
-# `default` on a crate-by-crate basis if desired.
-workspace-default-features = "allow"
-# The default lint level for `default` features for external crates that are not
-# members of the workspace. This can be overridden by allowing/denying `default`
-# on a crate-by-crate basis if desired.
-external-default-features = "allow"
-# List of crates that are allowed. Use with care!
-allow = [
- # "ansi_term@0.11.0",
- # { crate = "ansi_term@0.11.0", reason = "you can specify a reason it is allowed" },
-]
-# List of crates to deny
-deny = [
- # "ansi_term@0.11.0",
- # { crate = "ansi_term@0.11.0", reason = "you can specify a reason it is banned" },
- # Wrapper crates can optionally be specified to allow the crate when it
- # is a direct dependency of the otherwise banned crate
- # { crate = "ansi_term@0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term"] },
-]
-
-# List of features to allow/deny
-# Each entry the name of a crate and a version range. If version is
-# not specified, all versions will be matched.
-# [[bans.features]]
-# crate = "reqwest"
-# Features to not allow
-# deny = ["json"]
-# Features to allow
-# allow = [
-# "rustls",
-# "__rustls",
-# "__tls",
-# "hyper-rustls",
-# "rustls",
-# "rustls-pemfile",
-# "rustls-tls-webpki-roots",
-# "tokio-rustls",
-# "webpki-roots",
-# ]
-# If true, the allowed features must exactly match the enabled feature set. If
-# this is set there is no point setting `deny`
-# exact = true
-
-# Certain crates/versions that will be skipped when doing duplicate detection.
-skip = [
- # "ansi_term@0.11.0",
- # { crate = "ansi_term@0.11.0", reason = "you can specify a reason why it can't be updated/removed" },
-]
-# Similarly to `skip` allows you to skip certain crates during duplicate
-# detection. Unlike skip, it also includes the entire tree of transitive
-# dependencies starting at the specified crate, up to a certain depth, which is
-# by default infinite.
-skip-tree = [
- # "ansi_term@0.11.0", # will be skipped along with _all_ of its direct and transitive dependencies
- # { crate = "ansi_term@0.11.0", depth = 20 },
-]
-
-# This section is considered when running `cargo deny check sources`.
-# More documentation about the 'sources' section can be found here:
-# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
-[sources]
-# Lint level for what to happen when a crate from a crate registry that is not
-# in the allow list is encountered
-unknown-registry = "warn"
-# Lint level for what to happen when a crate from a git repository that is not
-# in the allow list is encountered
-unknown-git = "warn"
-# List of URLs for allowed crate registries. Defaults to the crates.io index
-# if not specified. If it is specified but empty, no registries are allowed.
-allow-registry = ["https://github.com/rust-lang/crates.io-index"]
-# List of URLs for allowed Git repositories
-allow-git = []
-
-[sources.allow-org]
-# github.com organizations to allow git sources for
-github = []
-# gitlab.com organizations to allow git sources for
-gitlab = []
-# bitbucket.org organizations to allow git sources for
-bitbucket = []
diff --git a/templates/rust/flake.lock b/templates/rust/flake.lock
deleted file mode 100644
index 86e35b4..0000000
--- a/templates/rust/flake.lock
+++ /dev/null
@@ -1,175 +0,0 @@
-{
- "nodes": {
- "advisory-db": {
- "flake": false,
- "locked": {
- "lastModified": 1747937073,
- "narHash": "sha256-52H8P6jAHEwRvg7rXr4Z7h1KHZivO8T1Z9tN6R0SWJg=",
- "owner": "rustsec",
- "repo": "advisory-db",
- "rev": "bccf313a98c034573ac4170e6271749113343d97",
- "type": "github"
- },
- "original": {
- "owner": "rustsec",
- "repo": "advisory-db",
- "type": "github"
- }
- },
- "crane": {
- "locked": {
- "lastModified": 1748047550,
- "narHash": "sha256-t0qLLqb4C1rdtiY8IFRH5KIapTY/n3Lqt57AmxEv9mk=",
- "owner": "ipetkov",
- "repo": "crane",
- "rev": "b718a78696060df6280196a6f992d04c87a16aef",
- "type": "github"
- },
- "original": {
- "owner": "ipetkov",
- "repo": "crane",
- "type": "github"
- }
- },
- "flake-compat": {
- "flake": false,
- "locked": {
- "lastModified": 1696426674,
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-utils": {
- "inputs": {
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "gitignore": {
- "inputs": {
- "nixpkgs": [
- "pre-commit-hooks",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1709087332,
- "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1747958103,
- "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "pre-commit-hooks": {
- "inputs": {
- "flake-compat": "flake-compat",
- "gitignore": "gitignore",
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1747372754,
- "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "advisory-db": "advisory-db",
- "crane": "crane",
- "flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs",
- "pre-commit-hooks": "pre-commit-hooks",
- "rust-overlay": "rust-overlay"
- }
- },
- "rust-overlay": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1748140821,
- "narHash": "sha256-GZcjWLQtDifSYMd1ueLDmuVTcQQdD5mONIBTqABooOk=",
- "owner": "oxalica",
- "repo": "rust-overlay",
- "rev": "476b2ba7dc99ddbf70b1f45357dbbdbdbdfb4422",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "rust-overlay",
- "type": "github"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/templates/rust/flake.nix b/templates/rust/flake.nix
deleted file mode 100644
index 0a22d97..0000000
--- a/templates/rust/flake.nix
+++ /dev/null
@@ -1,166 +0,0 @@
-{
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
- flake-utils = {
- url = "github:numtide/flake-utils";
- };
- rust-overlay = {
- url = "github:oxalica/rust-overlay";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
- advisory-db = {
- url = "github:rustsec/advisory-db";
- flake = false;
- };
- crane = {
- url = "github:ipetkov/crane";
- };
- pre-commit-hooks = {
- url = "github:cachix/git-hooks.nix";
- inputs = {
- nixpkgs.follows = "nixpkgs";
- };
- };
- };
- outputs = {
- self,
- flake-utils,
- nixpkgs,
- rust-overlay,
- advisory-db,
- crane,
- pre-commit-hooks,
- ...
- }:
- flake-utils.lib.eachDefaultSystem (
- system: let
- inherit (pkgs) lib;
- pkgs = import nixpkgs {
- localSystem = {inherit system;};
- overlays = [
- (import rust-overlay)
- (_final: prev: {
- lib = prev.lib // (import ./nix/lib.nix prev.lib);
- })
- ];
- };
- rustToolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
- craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchain;
- srcFilters = path: type:
- builtins.any (lib.flip lib.hasSuffix path) [
- ".sql"
- ".diff"
- ".md"
- ".adoc"
- ".json"
- ]
- || (craneLib.filterCargoSources path type);
- src = lib.cleanSourceWith {
- src = ./.;
- filter = srcFilters;
- };
- basicArgs = {
- inherit src;
- strictDeps = true;
- };
- nativeBuildInputs = [];
- buildInputs = [];
- genInputs = lib.genInputsWith pkgs;
- commonArgs =
- basicArgs
- // {
- cargoArtifacts = self.packages.${system}.cargo-artifacts;
- buildInputs = genInputs buildInputs;
- nativeBuildInputs = genInputs nativeBuildInputs;
- };
- in {
- formatter = pkgs.alejandra;
- checks = {
- pre-commit-check = pre-commit-hooks.lib.${system}.run {
- src = ./.;
- hooks = {
- alejandra = {
- enable = true;
- };
- rustfmt.enable = true;
- cargo-check = {
- enable = true;
- stages = ["pre-push"];
- };
- clippy = {
- enable = true;
- stages = ["pre-push"];
- settings.denyWarnings = true;
- };
- };
- };
- package = self.packages.${system}.default.overrideAttrs {
- doCheck = true;
- };
- clippy = craneLib.cargoClippy (
- commonArgs
- // {
- cargoClippyExtraArgs = "--all-targets -- --deny warnings";
- }
- );
- doc = craneLib.cargoDoc commonArgs;
- deny = craneLib.cargoDeny commonArgs;
- fmt = craneLib.cargoFmt basicArgs;
- audit = craneLib.cargoAudit {
- inherit src advisory-db;
- };
- nextest = craneLib.cargoNextest (
- commonArgs
- // {
- partitions = 1;
- partitionType = "count";
- cargoNextestExtraArgs = "--no-tests pass";
- env = {
- CARGO_PROFILE = "dev";
- };
- }
- );
- };
- packages = let
- callPackage = lib.callPackageWith (pkgs // {inherit craneLib callPackage;});
- packageArgs = {
- inherit
- lib
- basicArgs
- buildInputs
- nativeBuildInputs
- ;
- };
- importWithArgs = with lib; flip import packageArgs;
- in rec {
- cargo-artifacts = callPackage (importWithArgs ./nix/cargo-artifacts.nix) {};
- rust-demo = callPackage (importWithArgs ./nix/package.nix) {
- cargoArtifacts = cargo-artifacts;
- };
- default = rust-demo;
- };
- apps.default = flake-utils.lib.mkApp {
- drv = self.packages."${system}".default;
- };
- devShells.default = craneLib.devShell {
- checks = self.checks.${system};
- shellHook = '''' + self.checks.${system}.pre-commit-check.shellHook;
- packages = with pkgs; [
- rust-analyzer
- cargo-audit
- cargo-deny
- cargo-watch
- cargo-nextest
- ];
- env = {
- RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library";
- };
- };
- }
- );
- nixConfig = {
- keepOutputs = true;
- };
-}
diff --git a/templates/rust/nix/cargo-artifacts.nix b/templates/rust/nix/cargo-artifacts.nix
deleted file mode 100644
index 71769a6..0000000
--- a/templates/rust/nix/cargo-artifacts.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- lib,
- basicArgs,
- buildInputs,
- nativeBuildInputs,
-}: let
- f = {
- craneLib,
- lib,
- ...
- } @ args: let
- genInputs = lib.genInputsWith args;
- in
- craneLib.buildDepsOnly (
- basicArgs
- // {
- buildInputs = genInputs buildInputs;
- nativeBuildInputs = genInputs nativeBuildInputs;
- }
- );
-in
- with lib;
- setFunctionArgs f ((functionArgs f) // (genFunctionArgs (buildInputs ++ nativeBuildInputs)))
diff --git a/templates/rust/nix/lib.nix b/templates/rust/nix/lib.nix
deleted file mode 100644
index 505e870..0000000
--- a/templates/rust/nix/lib.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- flip,
- pipe,
- splitString,
- head,
- listToAttrs,
- nameValuePair,
- getAttrFromPath,
- ...
-}: {
- genFunctionArgs = flip pipe [
- (map (
- flip pipe [
- (splitString ".")
- head
- (flip nameValuePair false)
- ]
- ))
- listToAttrs
- ];
- genInputsWith = pkgs:
- map (
- flip pipe [
- (splitString ".")
- (flip getAttrFromPath pkgs)
- ]
- );
-}
diff --git a/templates/rust/nix/package.nix b/templates/rust/nix/package.nix
deleted file mode 100644
index 938fb6d..0000000
--- a/templates/rust/nix/package.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- lib,
- basicArgs,
- buildInputs,
- nativeBuildInputs,
-}: let
- f = {
- craneLib,
- lib,
- cargoArtifacts,
- ...
- } @ args: let
- genInputs = lib.genInputsWith args;
- in
- craneLib.buildPackage (
- basicArgs
- // {
- inherit
- (craneLib.crateNameFromCargoToml {
- cargoToml = "${toString basicArgs.src}/Cargo.toml";
- })
- pname
- version
- ;
- inherit cargoArtifacts;
- buildInputs = genInputs buildInputs;
- nativeBuildInputs = genInputs nativeBuildInputs;
- doCheck = false;
- }
- );
-in
- with lib;
- setFunctionArgs f ((functionArgs f) // (genFunctionArgs (buildInputs ++ nativeBuildInputs)))
diff --git a/templates/rust/rust-toolchain.toml b/templates/rust/rust-toolchain.toml
deleted file mode 100644
index 90e92de..0000000
--- a/templates/rust/rust-toolchain.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-[toolchain]
-channel = "stable"
-components = ["rust-src"]
-profile = "default"
diff --git a/templates/rust/src/main.rs b/templates/rust/src/main.rs
deleted file mode 100644
index e7a11a9..0000000
--- a/templates/rust/src/main.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-fn main() {
- println!("Hello, world!");
-}