From 65311be845d58cbdfa77056ca81c39409dcc0cec Mon Sep 17 00:00:00 2001 From: Liam Malone Date: Tue, 20 May 2025 17:57:51 +0200 Subject: [PATCH] Add KelmscottMono font, start managing configs in out of store links --- flake.nix | 8 +- fonts/Kelmscott-Mono_LICENSE.txt | 661 +++++++++++++++++++++ fonts/KelmscottMono.otf | Bin 0 -> 77560 bytes hosts/darp8/configuration.nix | 74 +-- hosts/darp8/file.nix | 16 +- hosts/darp8/home.nix | 21 +- modules/non-nix_configs/hypr/hyprland.conf | 3 + 7 files changed, 732 insertions(+), 51 deletions(-) create mode 100644 fonts/Kelmscott-Mono_LICENSE.txt create mode 100644 fonts/KelmscottMono.otf diff --git a/flake.nix b/flake.nix index a3dd190..1de2f65 100644 --- a/flake.nix +++ b/flake.nix @@ -27,11 +27,17 @@ let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; + defaultCfg = rec { + username = "liamm"; + homeDirectory = "/home/${username}"; + runtimeRoot = "${homeDirectory}/personal/nixos"; + context = self; + }; in { nixosConfigurations = { darp8 = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; + specialArgs = {inherit inputs; cfg = defaultCfg; }; modules = [ hyprland.nixosModules.default ./hosts/darp8/configuration.nix diff --git a/fonts/Kelmscott-Mono_LICENSE.txt b/fonts/Kelmscott-Mono_LICENSE.txt new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/fonts/Kelmscott-Mono_LICENSE.txt @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 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 Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are 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. + + 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. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + 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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + 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 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 work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + 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 AGPL, see +. diff --git a/fonts/KelmscottMono.otf b/fonts/KelmscottMono.otf new file mode 100644 index 0000000000000000000000000000000000000000..6182baaa0938169b64b65eb42be96cc43fe46da3 GIT binary patch literal 77560 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 buYY+0-+lhxANBX8yM|2H-!*5BSo}W##AEXr literal 0 HcmV?d00001 diff --git a/hosts/darp8/configuration.nix b/hosts/darp8/configuration.nix index f88b0d0..2107084 100644 --- a/hosts/darp8/configuration.nix +++ b/hosts/darp8/configuration.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, inputs, ... }: +{ cfg, config, lib, pkgs, inputs, ... }: { imports = [ @@ -29,11 +29,6 @@ allowedTCPPortRanges = [ { from = 8000; to = 8010; } - { from = 27031; to = 27036; } - ]; - allowedUDPPortRanges = [ - { from = 27000; to = 27036; } - { from = 5001; to = 65535; } ]; allowPing = true; @@ -46,10 +41,6 @@ Settings.Autoconnect = true; }; }; - - # Configure network proxy if necessary - # proxy.default = "http://user:password@proxy:port/"; - # proxy.noProxy = "127.0.0.1,localhost,internal.domain"; }; time.timeZone = "Europe/Madrid"; @@ -71,8 +62,6 @@ }; services = { - libinput.enable = true; - avahi = { enable = true; nssmdns4 = true; @@ -92,11 +81,11 @@ }; }; + libinput.enable = true; blueman.enable = true; gvfs.enable = true; auto-cpufreq.enable = true; thermald.enable = true; - power-profiles-daemon.enable = false; pulseaudio.enable = false; }; @@ -118,18 +107,25 @@ system76.enableAll = true; }; - fonts.packages = with pkgs; [ - noto-fonts - noto-fonts-cjk-sans - noto-fonts-cjk-serif - noto-fonts-emoji - liberation_ttf - fira-code-symbols - mplus-outline-fonts.githubRelease - dina-font - nerd-fonts.fira-code - nerd-fonts.droid-sans-mono - ]; + fonts = { + packages = with pkgs; [ + noto-fonts + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-emoji + liberation_ttf + fira-code-symbols + mplus-outline-fonts.githubRelease + dina-font + nerd-fonts.fira-code + nerd-fonts.droid-sans-mono + ]; + + fontconfig = { + enable = true; + includeUserConf = true; + }; + }; nixpkgs.config.allowUnfree = true; @@ -157,27 +153,36 @@ }; programs = { - dconf.enable = true; steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; }; - - nix-ld.enable = true; - mtr.enable = true; + hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.hyprland; + xwayland.enable = true; + }; gnupg.agent = { enable = true; enableSSHSupport = true; }; + + hyprlock.enable = true; + dconf.enable = true; + nix-ld.enable = true; + mtr.enable = true; }; + lib.inputMethod.fcitx5.waylandFrontend = true; + home-manager = { useGlobalPkgs = true; - extraSpecialArgs = { inherit inputs; }; + extraSpecialArgs = { inherit inputs; inherit cfg; }; users = { - "liamm" = import ./home.nix; + "${cfg.username}" = import ./home.nix; }; + backupFileExtension = ".bak"; }; environment.systemPackages = with pkgs; [ @@ -191,7 +196,7 @@ discord uxplay wl-clipboard - alacritty + ghostty libnotify mesa libdrm @@ -210,18 +215,15 @@ extraPortals = with pkgs;[ xdg-desktop-portal-gtk xdg-desktop-portal-wlr - xdg-desktop-portal-hyprland ]; config = { common = { - default = [ "gtk" ]; + default = [ "gtk" ]; }; }; }; }; - # services.openssh.enable = true; - # This option defines the first version of NixOS you have installed on this particular machine # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. diff --git a/hosts/darp8/file.nix b/hosts/darp8/file.nix index 89afda2..d88afa8 100644 --- a/hosts/darp8/file.nix +++ b/hosts/darp8/file.nix @@ -1,4 +1,4 @@ -{ config, pkgs, cfg, ... }: +{ cfg, config, context, pkgs, ... }: let inherit (config.home) username homeDirectory; @@ -19,12 +19,18 @@ in recursive = true; }; - ".config/emacs" = { - source = ../../modules/non-nix_configs/emacs; - outOfStoreSymlink = true; - recursive = true; + ".local/share/fonts/KelmscottMono.otf" = { + source = ../../fonts/KelmscottMono.otf; + outOfStoreSymlink = true; + recursive = false; }; + # ".config/emacs" = { + # source = ../../modules/non-nix_configs/emacs; + # outOfStoreSymlink = true; + # recursive = true; + # }; + ".config/ghostty" = { source = ../../modules/non-nix_configs/ghostty; outOfStoreSymlink = true; diff --git a/hosts/darp8/home.nix b/hosts/darp8/home.nix index 1348009..05b87a7 100644 --- a/hosts/darp8/home.nix +++ b/hosts/darp8/home.nix @@ -1,8 +1,8 @@ -{ config, pkgs, lib, callPackage, inputs, ... }: +{ cfg, config, pkgs, lib, callPackage, inputs, ... }: { - home.username = "liamm"; - home.homeDirectory = "/home/liamm"; + home.username = cfg.username; + home.homeDirectory = cfg.homeDirectory; imports = [ # home.file imports @@ -12,11 +12,10 @@ ../../modules/home-manager/dunst.nix ../../modules/home-manager/tmux.nix ../../modules/home-manager/fastfetch.nix - ../../modules/home-manager/terminals/alacritty.nix # desktop ../../modules/desktop/bluetooth.nix - ../../modules/desktop/hyprland.nix + ../../modules/desktop/waybar.nix ]; # You should not change this value, even if you update Home Manager. If you do @@ -27,6 +26,7 @@ home.packages = with pkgs; [ audacity android-studio + bat brave brightnessctl btop @@ -36,7 +36,6 @@ filezilla floorp genymotion - ghostty gimp gnome-keyring gtk4 @@ -116,12 +115,13 @@ # ENV SETTINGS - fonts.fontconfig = { - enable = true; - }; xdg.enable = true; xdg.configFile = { + "emacs" = { + source = ../../modules/non-nix_configs/emacs; + recursive = true; + }; "user-dirs.dirs".source = ../../modules/non-nix_configs/user-dirs.dirs; "user-dirs.locale".source = ../../modules/non-nix_configs/user-dirs.locale; }; @@ -196,6 +196,9 @@ # BEGIN SERVICES services = { + hyprpaper.enable = true; + hypridle.enable = true; + blueman-applet.enable = true; network-manager-applet.enable = true; diff --git a/modules/non-nix_configs/hypr/hyprland.conf b/modules/non-nix_configs/hypr/hyprland.conf index cfde284..48e1eff 100644 --- a/modules/non-nix_configs/hypr/hyprland.conf +++ b/modules/non-nix_configs/hypr/hyprland.conf @@ -2,7 +2,10 @@ exec-once = dbus-update-activation-environment --systemd --all && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target exec-once=wl-clipboard-history -t exec-once=wl-paste -p --watch wl-copy -p '' +exec-once=nm-applet exec-once=fcitx5 -d +exec-once=blueman-applet +exec-once=waybar # Monitors