Compare commits

..

31 Commits

Author SHA1 Message Date
Joshua Elmasri ceff2a381f uuuuu 2025-09-29 12:40:45 -05:00
Joshua Elmasri d64a0e59b3 modified config 2025-09-26 18:21:29 -05:00
joshuaelm 28b44e1f14 redid rofi 2025-09-26 18:19:37 -05:00
joshuaelm 5a9bd5a305 modularlized rofi and kitty 2025-09-26 12:24:07 -05:00
joshuaelm 6026656165 Monet, Browser declarative and themed with Stylix 2025-09-24 17:12:11 -05:00
joshuaelm 222f869bbb switched bar, squared off corners 2025-09-24 15:45:11 -05:00
joshuaelm 4ff0e72d8e update 2025-09-24 14:42:25 -05:00
Joshua Elmasri 1b2dbec838 ddd 2025-09-24 14:41:26 -05:00
Joshua Elmasri 6063b1cb97 update 2025-09-12 17:48:54 -05:00
joshuaelm 78202b0b74 :Merge branch 'main' of https://gitea.base.jeditemple.com/joshuaelm/NixOS-Configs 2025-08-31 15:45:23 -05:00
joshuaelm d4f72e5b80 www 2025-08-31 15:41:36 -05:00
joshuaelm 9922083fcd maintenance and OpenVPN 2025-07-29 13:29:44 -05:00
joshuaelm 7a65a428b3 Merge branch 'main' of https://gitea.base.jeditemple.com/joshuaelm/NixOS-Configs 2025-07-23 22:17:46 -05:00
joshuaelm 4f7fcad7ad switched to waybar 2025-07-23 22:16:59 -05:00
joshuaelm 528a02ec4b touchbar still broke but cleaning up repo 2025-07-08 12:38:43 -05:00
joshuaelm c4f24c33be fix warning in ashell config 2025-07-07 18:19:53 -05:00
joshuaelm 0a7e22d22f actually adding ashell 2025-07-07 18:18:40 -05:00
joshuaelm 09a1c47335 removed hyprpanel for ashell 2025-07-07 18:14:11 -05:00
joshuaelm 6ef4ac360f Unified Laptop and Desktop 2025-07-07 17:16:11 -05:00
joshuaelm ddd9a53ab0 redid theming system to utilize stylix, purging unused module files next 2025-07-07 12:54:15 -05:00
joshuaelm 89be2cd52c qwdhjqiowdqiowjd 2025-05-06 22:53:14 -05:00
joshuaelm 5964c6fc49 GAAAAAAAAAY 2025-05-01 15:47:45 -05:00
joshuaelm b27c751d62 im high 2025-03-23 08:11:47 -05:00
joshuaelm 8eec81c7f4 stuff 2025-02-07 17:04:43 -06:00
joshuaelm 33fd7ddf72 ver 2024-11-27 09:42:21 -06:00
joshuaelm d1f8eba241 the final frontier 2024-11-17 20:32:32 -06:00
joshuaelm b490df7c32 update nixpkgs 2024-09-26 15:51:11 -05:00
joshuaelm d05bf45a13 just some more modifications 2024-09-26 15:49:21 -05:00
joshuaelm 51e7f52bb0 a: 2024-03-21 16:29:09 -05:00
joshuaelm ceada8a46b rizzX 2024-02-07 12:50:09 -06:00
joshuaelm 08b736a9b5 wee woo 2024-01-31 16:17:31 -06:00
2281 changed files with 2452 additions and 76501 deletions
+123
View File
@@ -0,0 +1,123 @@
{ config, pkgs, inputs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "joshuaelm";
home.homeDirectory = "/home/joshuaelm";
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ../../modules/ashell/default.nix ../../modules/waybar/waybar.nix ];
home.packages = [
pkgs.element-desktop
pkgs.waybar
pkgs.signal-desktop-bin
pkgs.swaybg
pkgs.gpu-screen-recorder
pkgs.gpu-screen-recorder-gtk
pkgs.supersonic
pkgs.adw-gtk3
];
programs.hyprlock.enable = true;
programs.starship.enable = true;
programs.starship.enableFishIntegration = true;
programs.kitty.enable = true;
programs.cava.enable = true;
programs.btop.enable = true;
programs.rofi.enable = true;
programs.rofi.package = pkgs.rofi-wayland;
services.hyprpaper.enable = true;
wayland.windowManager.hyprland.enable = true;
home.shell.enableFishIntegration = true;
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
services.mpd-mpris.enable = true;
programs.rofi.extraConfig = {
show-icons = true;
drun-display-format = "{icon} {name}";
hide-scrollbar = true;
sidebar-mode = true;
dpi = 110;
font = "FreeSans Regular 12";
icon-theme = "Gruvbox-Plus-Dark";
};
programs.rofi.theme = {
window.height = 600;
window.width = 600;
window.border-radius = 10;
element = {
padding = 5;
border-radius = 10;
};
inputbar.padding = 14;
listview = {
padding = 8;
border-radius = "0 0 10 10";
border = "2 2 2 2";
dynamic = false;
};
"element-text element-icon" = {
size = 40;
margin = "0 10 0 0";
};
mainbox.children = "inputbar, message, listview";
mainbox.spacing = 0;
};
programs.kitty.extraConfig = ''
font_family Fira Code Nerd Font
bold_font auto
italic_font auto
bold_italic_font auto
confirm_os_window_close 0
cursor_shape beam
cursor_trail 3
'';
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
xdg.dataFile = {
"Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = ''
"compatibilitytools"
{
"compat_tools"
{
"Proton-stl" // Internal name of this tool
{
"install_path" "."
"display_name" "Steam Tinker Launch"
"from_oslist" "windows"
"to_oslist" "linux"
}
}
}
'';
"Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source =
config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch";
"Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = ''
"manifest"
{
"commandline" "/steamtinkerlaunch run"
"commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun"
}
'';
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
+232
View File
@@ -0,0 +1,232 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
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.
NixOS-configs
Copyright (C) 2024 joshuaelm
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 <https://www.gnu.org/licenses/>.
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:
NixOS-configs Copyright (C) 2024 joshuaelm
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 <https://www.gnu.org/licenses/>.
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 <https://www.gnu.org/philosophy/why-not-lgpl.html>.
+3
View File
@@ -0,0 +1,3 @@
# NixOS-configs
Some random config
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

-47
View File
@@ -1,47 +0,0 @@
{
description = "Laptop Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
zen-browser.url = "github:VCPYC/zen-browser-flake";
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
nixpkgs.follows = "nixos-cosmic/nixpkgs";
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-flatpak.url = "github:gmodena/nix-flatpak";
};
outputs = { nixpkgs, nixos-cosmic, nix-flatpak, hyprpanel, nixvim, zen-browser, ... }@inputs:
{
nixosConfigurations.nixos-laptop = nixpkgs.lib.nixosSystem {
modules = [
nix-flatpak.nixosModules.nix-flatpak
./configuration.nix
./hardware-configuration.nix
{
nix.settings = {
substituters = ["https://cosmic.cachix.org"];
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
};
}
nixos-cosmic.nixosModules.default
nixpkgs.overlays =
[ inputs.hyprpanel.overlay ];
_module.args = { inherit inputs; };
home-manager.nixosModules.home-manager
{
home-manager.useUserPackages = true;
home-manager.users.joshuaelm = {
imports = [ ./home.nix nixvim.homeManagerModules.nixvim];
};
}
];
specialArgs.inputs = inputs;
};
};
}
Generated
+354 -594
View File
File diff suppressed because it is too large Load Diff
+48 -28
View File
@@ -1,55 +1,75 @@
{ {
description = "Laptop Flake"; description = "My flakes configuration";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; stylix = {
nixpkgs.follows = "nixos-cosmic/nixpkgs"; url = "github:danth/stylix";
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
master.url = "github:NixOS/nixpkgs/master";
home-manager.url = "github:nix-community/home-manager";
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-flatpak.url = "github:gmodena/nix-flatpak"; nixos-apple-silicon = {
hyprland.url = "github:hyprwm/Hyprland"; url = "github:tpwrules/nixos-apple-silicon";
hyprgrass = { inputs.nixpkgs.follows = "nixpkgs";
url = "github:horriblename/hyprgrass";
inputs.hyprland.follows = "hyprland"; # IMPORTANT
}; };
astal = {
url = "github:aylur/astal";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { nixpkgs, nixos-cosmic, nix-flatpak, hyprpanel, home-manager, nixvim, ... }@inputs: outputs = { self, stylix, astal, nixpkgs, home-manager, zen-browser, master, nixos-apple-silicon, nixvim }@inputs:
{ {
nixosConfigurations = { nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit nixvim;};
specialArgs.inputs = inputs;
modules = [
#stylix.nixosModules.stylix
./hosts/desktop/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.users.joshuaelm = {
imports = [ ./hosts/desktop/home.nix nixvim.homeModules.nixvim stylix.homeModules.stylix ];
};
}
];
};
nixos-laptop = nixpkgs.lib.nixosSystem { nixos-laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = {inherit nixvim;}; specialArgs = {inherit nixvim;};
specialArgs.inputs = inputs; specialArgs.inputs = inputs;
modules = [ modules = [
{ {
nix.settings = {
substituters = [ "https://cosmic.cachix.org/" ];
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
};
nixpkgs.overlays =
[ inputs.hyprpanel.overlay ];
_module.args = { inherit inputs; };
} }
nixos-cosmic.nixosModules.default nixos-apple-silicon.nixosModules.apple-silicon-support
./configuration.nix #stylix.nixosModules.stylix
nix-flatpak.nixosModules.nix-flatpak ./hosts/mac-laptop/configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.users.joshuaelm = { home-manager.users.joshuaelm = {
imports = [ ./home.nix nixvim.homeManagerModules.nixvim]; imports = [ ./hosts/mac-laptop/home.nix nixvim.homeModules.nixvim stylix.homeModules.stylix ];
}; };
} }
]; ];
}; };
}; };
}; };
}
}
-64
View File
@@ -1,64 +0,0 @@
{ config, pkgs, inputs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "joshuaelm";
home.homeDirectory = "/home/joshuaelm";
imports = [ modules/nvim ];
home.packages = [
pkgs.signal-desktop
pkgs.swaybg
pkgs.kitty
pkgs.supersonic-wayland
pkgs.adw-gtk3
];
programs.hyprlock.enable = true;
xdg.configFile.hypr.source = ./modules/hypr;
xdg.configFile.waybar.source = ./modules/waybar;
xdg.configFile.cava.source = ./modules/cava;
xdg.configFile.kitty.source = ./modules/kitty;
xdg.configFile.rofi.source = ./modules/rofi;
xdg.configFile.dunst.source = ./modules/dunst;
home.file.".cache/ags/hyprpanel/options.json".source = ./modules/hyprpanel/options.json;
xdg.configFile.hypr.force = true;
xdg.configFile.waybar.force = true;
xdg.configFile.cava.force = true;
xdg.configFile.kitty.force = true;
xdg.configFile.rofi.force = true;
xdg.configFile.dunst.force = true;
home.file.".cache/ags/hyprpanel/options.json".force = true;
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
services.mpd-mpris.enable = true;
wayland.windowManager.hyprland = {
plugins = [
inputs.hyprgrass.packages.${pkgs.system}.default
# optional integration with pulse-audio, see examples/hyprgrass-pulse/README.md
inputs.hyprgrass.packages.${pkgs.system}.hyprgrass-pulse
];
};
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
+146
View File
@@ -0,0 +1,146 @@
Found. Redirecting to https://beammp.comSubject:CN = auth.beammp.com
Issuer:C = US, O = "CLOUDFLARE, INC.", CN = Cloudflare TLS Issuing ECC CA 1
Version:2
Serial Number:13eb6f5c3abc908cf7907011df841bd5
Signature Algorithm:ecdsa-with-SHA256
Public Key Algorithm:id-ecPublicKey
X509v3 Basic Constraints:CA:FALSE
X509v3 Authority Key Identifier:9C:C4:09:72:47:18:17:7B:A7:1A:89:B3:92:35:D5:E1:03:8C:FE:92
Authority Information Access:CA Issuers - URI:http://i.cf-b.ssl.com/Cloudflare-TLS-I-E1.cer
OCSP - URI:http://o.cf-b.ssl.com
X509v3 Subject Alternative Name:DNS:auth.beammp.com
X509v3 Certificate Policies:Policy: 2.23.140.1.2.1
Policy: 1.3.6.1.4.1.38064.1.3.1.1
X509v3 Extended Key Usage:TLS Web Client Authentication, TLS Web Server Authentication
X509v3 CRL Distribution Points:Full Name:
URI:http://c.cf-b.ssl.com/Cloudflare-TLS-I-E1.crl
X509v3 Key Usage:Digital Signature
1.3.6.1.4.1.44363.44:..
CT Precertificate SCTs:Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 12:F1:4E:34:BD:53:72:4C:84:06:19:C3:8F:3F:7A:13:
F8:E7:B5:62:87:88:9C:6D:30:05:84:EB:E5:86:26:3A
Timestamp : Aug 4 01:31:58.900 2025 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:EA:26:7D:7A:DB:23:C8:6B:46:84:53:
3D:7B:6B:3B:62:B5:EE:FE:B4:E4:84:C4:25:C5:CD:A8:
2C:D3:71:98:F0:02:21:00:FF:C3:93:29:98:83:4A:93:
6C:AA:A6:0E:6F:4A:A5:9F:3F:A1:54:CB:2F:E7:DC:97:
D4:3E:A8:39:46:77:34:6A
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : CC:FB:0F:6A:85:71:09:65:FE:95:9B:53:CE:E9:B2:7C:
22:E9:85:5C:0D:97:8D:B6:A9:7E:54:C0:FE:4C:0D:B0
Timestamp : Aug 4 01:31:58.957 2025 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:20:30:32:E9:B4:36:27:C1:23:DD:E8:48:1C:
68:62:EA:E2:41:8A:42:7F:54:80:87:0B:D1:A1:23:6F:
0E:BD:08:B6:02:21:00:87:FF:FE:63:AE:1F:EF:A2:7C:
87:94:D2:EC:50:99:82:80:97:F5:97:2E:42:CC:03:AF:
4A:D5:E2:71:69:AA:78
Start date:Aug 4 01:21:57 2025 GMT
Expire date:Nov 2 01:19:59 2025 GMT
Signature:30:45:02:21:00:95:03:dc:ed:60:03:84:a4:f0:7f:43:ce:7f:21:bf:3c:9a:41:63:99:0f:1f:58:34:43:ac:14:f9:54:bb:99:9d:02:20:3e:00:5e:b5:fb:84:59:9b:43:5d:93:74:3e:fe:ac:57:f5:11:cc:5c:36:38:9f:74:2d:67:7c:6c:04:22:f5:03:
-----BEGIN CERTIFICATE-----
MIID1zCCA32gAwIBAgIQE+tvXDq8kIz3kHAR34Qb1TAKBggqhkjOPQQDAjBSMQsw
CQYDVQQGEwJVUzEZMBcGA1UECgwQQ0xPVURGTEFSRSwgSU5DLjEoMCYGA1UEAwwf
Q2xvdWRmbGFyZSBUTFMgSXNzdWluZyBFQ0MgQ0EgMTAeFw0yNTA4MDQwMTIxNTda
Fw0yNTExMDIwMTE5NTlaMBoxGDAWBgNVBAMMD2F1dGguYmVhbW1wLmNvbTBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABB1QJOo3fjL89VfzriD9QJ9oQEFNl7rh9i0X
K8PTOf5dRnwId1VVFB4QGo1OnzgEFxNpbaYafJN1zEGusQAe/eWjggJrMIICZzAM
BgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFJzECXJHGBd7pxqJs5I11eEDjP6SMGwG
CCsGAQUFBwEBBGAwXjA5BggrBgEFBQcwAoYtaHR0cDovL2kuY2YtYi5zc2wuY29t
L0Nsb3VkZmxhcmUtVExTLUktRTEuY2VyMCEGCCsGAQUFBzABhhVodHRwOi8vby5j
Zi1iLnNzbC5jb20wGgYDVR0RBBMwEYIPYXV0aC5iZWFtbXAuY29tMCMGA1UdIAQc
MBowCAYGZ4EMAQIBMA4GDCsGAQQBgqkwAQMBATAdBgNVHSUEFjAUBggrBgEFBQcD
AgYIKwYBBQUHAwEwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cDovL2MuY2YtYi5zc2wu
Y29tL0Nsb3VkZmxhcmUtVExTLUktRTEuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkr
BgEEAYLaSywEAgUAMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcAEvFONL1TckyE
BhnDjz96E/jntWKHiJxtMAWE6+WGJjoAAAGYcrT2NAAABAMASDBGAiEA6iZ9etsj
yGtGhFM9e2s7YrXu/rTkhMQlxc2oLNNxmPACIQD/w5MpmINKk2yqpg5vSqWfP6FU
yy/n3JfUPqg5Rnc0agB2AMz7D2qFcQll/pWbU87psnwi6YVcDZeNtql+VMD+TA2w
AAABmHK09m0AAAQDAEcwRQIgMDLptDYnwSPd6EgcaGLq4kGKQn9UgIcL0aEjbw69
CLYCIQCH//5jrh/vonyHlNLsUJmCgJf1ly5CzAOvStXicWmqeDAKBggqhkjOPQQD
AgNIADBFAiEAlQPc7WADhKTwf0POfyG/PJpBY5kPH1g0Q6wU+VS7mZ0CID4AXrX7
hFmbQ12TdD7+rFf1EcxcNjifdC1nfGwEIvUD
-----END CERTIFICATE-----
Subject:C = US, O = "CLOUDFLARE, INC.", CN = Cloudflare TLS Issuing ECC CA 1
Issuer:C = US, O = SSL Corporation, CN = SSL.com TLS Transit ECC CA R2
Version:2
Serial Number:2c3fa2692f4113bd3b7fe5b604b49d4d
Signature Algorithm:ecdsa-with-SHA384
Public Key Algorithm:id-ecPublicKey
X509v3 Basic Constraints:CA:TRUE, pathlen:0
X509v3 Authority Key Identifier:32:A2:C7:D8:58:8B:FF:7F:C0:3C:F2:55:69:33:EC:CE:CC:1F:BC:97
Authority Information Access:CA Issuers - URI:http://cert.ssl.com/SSL.com-TLS-T-ECC-R2.cer
X509v3 Certificate Policies:Policy: X509v3 Any Policy
X509v3 Extended Key Usage:TLS Web Client Authentication, TLS Web Server Authentication
X509v3 CRL Distribution Points:Full Name:
URI:http://crls.ssl.com/SSL.com-TLS-T-ECC-R2.crl
X509v3 Subject Key Identifier:9C:C4:09:72:47:18:17:7B:A7:1A:89:B3:92:35:D5:E1:03:8C:FE:92
X509v3 Key Usage:Digital Signature, Certificate Sign, CRL Sign
Start date:Oct 31 17:17:49 2023 GMT
Expire date:Oct 28 17:17:48 2033 GMT
Signature:30:65:02:31:00:bd:12:93:74:70:79:1e:ae:1b:56:92:1c:5d:c9:80:74:29:b6:e6:cf:f7:1a:19:c9:49:b3:1d:26:be:49:27:58:e7:04:c6:4b:1e:6a:02:8c:2b:2c:f0:a9:2e:2a:36:3c:02:30:5d:01:a0:63:37:f9:43:30:ff:d4:1b:2e:f3:b5:ab:51:c2:15:b4:b8:b1:af:92:90:c0:a0:5a:14:0c:88:27:b3:8e:89:68:16:d0:75:7f:34:0d:54:7a:e4:9e:d3:39:8d:
-----BEGIN CERTIFICATE-----
MIIC5DCCAmqgAwIBAgIQLD+iaS9BE707f+W2BLSdTTAKBggqhkjOPQQDAzBPMQsw
CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSYwJAYDVQQDDB1T
U0wuY29tIFRMUyBUcmFuc2l0IEVDQyBDQSBSMjAeFw0yMzEwMzExNzE3NDlaFw0z
MzEwMjgxNzE3NDhaMFIxCzAJBgNVBAYTAlVTMRkwFwYDVQQKDBBDTE9VREZMQVJF
LCBJTkMuMSgwJgYDVQQDDB9DbG91ZGZsYXJlIFRMUyBJc3N1aW5nIEVDQyBDQSAx
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEByHHIHytNSzTS+F3JA7hHMDGd2cp
cY9i3MLTKmE6DJTKc6JwvW50pwKodvd2Qj4RAAy2jSejsVgw5jeh6syt3KOCASMw
ggEfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUMqLH2FiL/3/APPJV
aTPszswfvJcwSAYIKwYBBQUHAQEEPDA6MDgGCCsGAQUFBzAChixodHRwOi8vY2Vy
dC5zc2wuY29tL1NTTC5jb20tVExTLVQtRUNDLVIyLmNlcjARBgNVHSAECjAIMAYG
BFUdIAAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMD0GA1UdHwQ2MDQw
MqAwoC6GLGh0dHA6Ly9jcmxzLnNzbC5jb20vU1NMLmNvbS1UTFMtVC1FQ0MtUjIu
Y3JsMB0GA1UdDgQWBBScxAlyRxgXe6caibOSNdXhA4z+kjAOBgNVHQ8BAf8EBAMC
AYYwCgYIKoZIzj0EAwMDaAAwZQIxAL0Sk3RweR6uG1aSHF3JgHQptubP9xoZyUmz
HSa+SSdY5wTGSx5qAowrLPCpLio2PAIwXQGgYzf5QzD/1Bsu87WrUcIVtLixr5KQ
wKBaFAyIJ7OOiWgW0HV/NA1UeuSe0zmN
-----END CERTIFICATE-----
Subject:C = US, O = SSL Corporation, CN = SSL.com TLS Transit ECC CA R2
Issuer:C = GB, ST = Greater Manchester, L = Salford, O = Comodo CA Limited, CN = AAA Certificate Services
Version:2
Serial Number:ad8d2df64681a0d36447eaa94fa273c1
Signature Algorithm:sha256WithRSAEncryption
Public Key Algorithm:id-ecPublicKey
X509v3 Authority Key Identifier:A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
X509v3 Subject Key Identifier:32:A2:C7:D8:58:8B:FF:7F:C0:3C:F2:55:69:33:EC:CE:CC:1F:BC:97
X509v3 Key Usage:Digital Signature, Certificate Sign, CRL Sign
X509v3 Basic Constraints:CA:TRUE, pathlen:1
X509v3 Extended Key Usage:TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Certificate Policies:Policy: 2.23.140.1.2.1
Policy: 1.3.6.1.4.1.38064.1.3.1.1
X509v3 CRL Distribution Points:Full Name:
URI:http://crl.comodoca.com/AAACertificateServices.crl
Authority Information Access:OCSP - URI:http://ocsp.comodoca.com
Start date:Jun 21 00:00:00 2024 GMT
Expire date:Dec 31 23:59:59 2028 GMT
Signature:1e:28:2f:80:a1:29:a2:86:65:56:4a:f2:e0:17:8e:3f:30:bc:57:66:e3:9b:af:85:4f:ed:d7:84:1e:1f:96:f0:11:37:8a:89:04:17:06:06:b8:fc:dc:b3:ce:fa:5f:ba:81:32:71:a9:ed:5f:eb:47:97:f9:ae:c2:99:ae:1d:3d:19:e8:82:98:a0:80:9a:33:13:88:92:d7:13:17:8a:87:bf:14:16:d9:62:2d:1e:33:a0:96:b4:e3:aa:55:c9:5d:52:fe:dc:70:8e:eb:44:c4:96:84:97:f1:e5:06:b2:a7:cb:42:47:3f:ff:3d:cb:6f:88:33:d7:5e:fe:7e:40:db:9c:fb:7c:fb:64:44:ab:74:82:bd:a0:06:86:58:7f:95:65:9f:1e:a4:c0:88:77:9d:fe:aa:b3:05:26:2a:aa:f7:e3:36:58:48:7d:79:cf:9e:17:c0:bf:f3:e9:39:43:b5:3e:6c:42:10:01:18:ae:0f:95:a1:2f:8e:f8:40:5d:d7:39:13:d1:5e:c2:7e:b3:e9:8f:7d:1c:00:cb:36:87:e9:38:a4:f3:30:70:bb:81:dc:ab:b8:4e:77:01:4d:1c:ad:e4:ad:20:6c:9d:e9:43:44:64:f4:79:ae:c0:ec:f9:40:06:7e:da:7d:6a:e1:39:40:a4:9c:c1:7f:01:6b:08:38:
-----BEGIN CERTIFICATE-----
MIID0DCCArigAwIBAgIRAK2NLfZGgaDTZEfqqU+ic8EwDQYJKoZIhvcNAQELBQAw
ezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0yNDA2MjEwMDAwMDBaFw0y
ODEyMzEyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRgwFgYDVQQKDA9TU0wgQ29ycG9y
YXRpb24xJjAkBgNVBAMMHVNTTC5jb20gVExTIFRyYW5zaXQgRUNDIENBIFIyMHYw
EAYHKoZIzj0CAQYFK4EEACIDYgAEZOd9mQNTXJEe6vjYI62hvyziY4nvKGj27dfw
7Ktorncr5HaXG1Dr21koLW+4NrmrjZfKTCKe7onZAj/9enM6kI0rzC86N4PaDbQt
RRtzcgllX3ghPeeLZj9H/Qkp1hQPo4IBJzCCASMwHwYDVR0jBBgwFoAUoBEKIz6W
8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYEFDKix9hYi/9/wDzyVWkz7M7MH7yXMA4G
A1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEBMB0GA1UdJQQWMBQGCCsG
AQUFBwMBBggrBgEFBQcDAjAjBgNVHSAEHDAaMAgGBmeBDAECATAOBgwrBgEEAYKp
MAEDAQEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEEKDAmMCQGCCsG
AQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZIhvcNAQELBQAD
ggEBAB4oL4ChKaKGZVZK8uAXjj8wvFdm45uvhU/t14QeH5bwETeKiQQXBga4/Nyz
zvpfuoEycantX+tHl/muwpmuHT0Z6IKYoICaMxOIktcTF4qHvxQW2WItHjOglrTj
qlXJXVL+3HCO60TEloSX8eUGsqfLQkc//z3Lb4gz117+fkDbnPt8+2REq3SCvaAG
hlh/lWWfHqTAiHed/qqzBSYqqvfjNlhIfXnPnhfAv/PpOUO1PmxCEAEYrg+VoS+O
+EBd1zkT0V7CfrPpj30cAMs2h+k4pPMwcLuB3Ku4TncBTRyt5K0gbJ3pQ0Rk9Hmu
wOz5QAZ+2n1q4TlApJzBfwFrCDg=
-----END CERTIFICATE-----
+464
View File
@@ -0,0 +1,464 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, master, lib, inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Bootloader.
boot.loader.grub.enable = true;
boot.loader.grub.devices = ["nodev"];
boot.loader.grub.useOSProber = true;
boot.loader.grub.efiSupport = true;
boot.initrd.systemd.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.timeoutStyle = "hidden";
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
boot = {
plymouth = {
enable = true;
theme = "square_hud";
themePackages = with pkgs; [
# By default we would install all themes
(adi1090x-plymouth-themes.override {
selected_themes = [ "square_hud" ];
})
];
};
# Enable "Silent Boot"
consoleLogLevel = 0;
initrd.verbose = false;
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
# Hide the OS choice for bootloaders.
# It's still possible to open the bootloader list by pressing any key
# It will just not appear on screen unless a key is pressed
loader.timeout = 0;
};
boot.extraModulePackages = with config.boot.kernelPackages; [ hid-tmff2 ];
networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# Enable networking
networking.networkmanager.enable = true;
security.pki.certificateFiles = [ ./certs/beammp.pem ];
hardware.bluetooth.enable = true;
hardware.bluetooth.package = pkgs.bluez;
nixpkgs.config.permittedInsecurePackages = [
"electron-31.7.7"
];
environment.variables.AMD_VULKAN_ICD = "RADV";
# Set your time zone.
time.timeZone = "America/Chicago";
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing sytem.
services.xserver.enable = true;
# Enable the GNOME Desktop Environment.
services.desktopManager.plasma6.enable = false;
services.displayManager.sddm.enable = false;
services.displayManager.cosmic-greeter.enable = false;
services.desktopManager.cosmic.enable = true;
services.desktopManager.gnome.enable = false;
services.displayManager.gdm.enable = false;
/*services.displayManager = {
autoLogin.enable = true;
autoLogin.user = "joshuaelm";
};*/
security.pam.services.hyprlock = {};
programs.noisetorch.enable = true;
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "dbus-launch ${pkgs.hyprland}/bin/Hyprland";
user = "joshuaelm";
};
default_session = initial_session;
};
};
# Steam Deck Gamemode
programs.steam.gamescopeSession.enable = true;
# Polkit
security.polkit.enable = true;
services.udisks2.enable = true;
# Configure keymap in X11
services.xserver = {
xkb.layout = "us";
xkb.variant = "";
excludePackages = [ pkgs.xterm ];
};
# Enable Swap
/*swapDevices = [ {
device = "/var/lib/swapfile";
size = 16*1024;
}];*/
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
services.pulseaudio.configFile = pkgs.runCommand "default.pa" {} ''
sed 's/module-udev-detect$/module-udev-detect tsched=0/' \
${pkgs.pulseaudio}/etc/pulse/default.pa > $out
'';
environment.etc."wireplumber/main.lua.d/90-suspend-timeout.lua" = {
text = ''
session.suspend-timeout-seconds = 0
'';
};
services.pipewire.extraConfig.pipewire-pulse."92-low-latency" = {
context.modules = [
{
name = "libpipewire-module-protocol-pulse";
args = {
pulse.min.req = "32/48000";
pulse.default.req = "32/48000";
pulse.max.req = "32/48000";
pulse.min.quantum = "32/48000";
pulse.max.quantum = "32/48000";
};
}
];
stream.properties = {
node.latency = "32/48000";
resample.quality = 1;
};
};
hardware.pulseaudio.extraConfig = ''
.nofail
unload-module module-suspend-on-idle
.fail
'';
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.adb.enable = true;
users.users.joshuaelm = {
isNormalUser = true;
description = "Joshua Elmasri";
extraGroups = [ "networkmanager" "input" "wheel" "adbusers" ];
shell = pkgs.fish;
packages = with pkgs; [
# thunderbird
];
};
programs.fish.enable = true;
nix.optimise.automatic = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Configure drives
fileSystems."/mnt/Games" = {
device = "/dev/nvme0n1p1";
fsType = "btrfs";
options = [
"users"
"nofail"
"x-gvfs-show"
"exec"
];
};
fileSystems."/mnt/More-Games" = {
device = "/dev/disk/by-uuid/fdbbe9a8-da6e-4ef2-b4e5-5154f181ee66";
fsType = "btrfs";
options = [
"users"
"nofail"
"x-gvfs-show"
"exec"
];
};
# Fonts
fonts.packages = with pkgs; [
fira-code
fira-code-symbols
roboto
nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
];
services.open-webui = {
enable = true;
port = 3246;
host = "0.0.0.0";
environment = {
ANONYMIZED_TELEMETRY = "False";
DO_NOT_TRACK = "True";
SCARF_NO_ANALYTICS = "True";
OLLAMA_API_BASE_URL = "http://127.0.0.1:11434/api";
OLLAMA_BASE_URL = "http://127.0.0.1:11434";
ENABLE_RAG_WEB_SEARCH = "True";
RAG_WEB_SEARCH_ENGINE = "kagi";
};
};
services.ollama = {
# package = pkgs.unstable.ollama; # If you want to use the unstable channel package for example
enable = true;
host = "0.0.0.0";
acceleration = "rocm"; # Or "rocm"
environmentVariables = { # I haven't been able to get this to work, but please see the serviceConfig workaround below
# HOME = "/home/ollama";
# OLLAMA_MODELS = "/home/ollama/models";
OLLAMA_HOST = "0.0.0.0:11434"; # Make Ollama accesible outside of localhost
# OLLAMA_ORIGINS = "http://localhost:8080,http://192.168.0.10:*"; # Allow access, otherwise Ollama returns 403 forbidden due to CORS
};
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
(pkgs.buildFHSEnv {
name = "fhs";
targetPkgs = pkgs: with pkgs; [
alsa-lib atk cairo cups curl dbus expat file fish fontconfig freetype
fuse glib gtk3 libGL libnotify libxml2 libxslt netcat nspr nss openjdk8
openssl.dev cava pango appimage-run pkg-config strace udev vulkan-loader watch wget which
xorg.libX11 icu xorg.libxcb xorg.libXcomposite xorg.libXcursor
xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr
xorg.libXrender xorg.libXScrnSaver openssl xorg.libxshmfence xorg.libXtst
xorg.xcbutilkeysyms zlib fontconfig.lib SDL2 libGL libuuid xorg.libXft
];
profile = ''export FHS=1'';
runScript = "fish";
})
git
bibata-cursors
killall
mangohud
aonsoku
cemu
teamspeak6-client
oterm
unetbootin
labymod-launcher
unzip
winetricks
cowsay
pfetch
ryubing
hyprpolkitagent
gomatrix
python3
pavucontrol
bluebubbles
gnomeExtensions.tray-icons-reloaded
cider
xfce.thunar
gnomeExtensions.open-bar
parallel-launcher
wallust
termsonic
steamtinkerlaunch
grub2
vivaldi
cargo
#inputs.zen-browser.packages."${system}".default
kdePackages.kdenlive
wineWowPackages.wayland
blueman
fuse
linux-wallpaperengine
ntfs3g
lapce
prismlauncher
librewolf
protonup-qt
mlt
nspr
nss_latest
nssTools
dconf
openjdk23
heroic
protontricks
gamescope
playerctl
wine
#alvr
bottles
cava
pop-icon-theme
gnome-tweaks
libnotify
libreoffice
hunspell
hunspellDicts.en_US
neovide
flatpak
gradience
];
# VirtualBox
virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
services.flatpak.enable = true;
services.sunshine = {
enable = true;
autoStart = false;
capSysAdmin = true;
openFirewall = true;
};
# Enable Steam
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
};
nixpkgs.config.packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraLibraries = pkgs: [ pkgs.xorg.libxcb ];
extraPkgs = pkgs: with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
];
};
};
programs.gamescope = {
enable = true;
capSysNice = true;
};
programs.nix-ld.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
services.openssh.allowSFTP = true;
# Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ 7860 3042 3246 9943 9944 7801 11434 47990 48010 5001 ];
networking.firewall.allowedUDPPorts = [ 7860 9943 9944 3042 47990 3246 11434 7801 4800 48010 ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
# Enable lakes
nix = {
extraOptions = ''
experimental-features = nix-command flakes
'';
};
}
@@ -8,18 +8,18 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/2f8be994-adce-4cca-a9f1-eecf42b1acfb"; { device = "/dev/disk/by-uuid/56963958-ba4d-413a-bb5e-30440a85f911";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/29B6-5932"; { device = "/dev/disk/by-uuid/DC02-0B36";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
@@ -31,8 +31,8 @@
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }
+74
View File
@@ -0,0 +1,74 @@
{ config, pkgs, inputs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "joshuaelm";
home.homeDirectory = "/home/joshuaelm";
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ../../modules/ashell ../../modules/waybar/waybar.nix ../../modules/zen ../../modules/rofi ../../modules/kitty ];
home.packages = [
pkgs.element-desktop
pkgs.signal-desktop-bin
pkgs.swaybg
pkgs.gpu-screen-recorder
pkgs.gpu-screen-recorder-gtk
pkgs.supersonic
pkgs.adw-gtk3
];
programs.hyprlock.enable = true;
programs.starship.enable = true;
programs.starship.enableFishIntegration = true;
programs.cava.enable = true;
programs.btop.enable = true;
services.hyprpaper.enable = true;
wayland.windowManager.hyprland.enable = true;
home.shell.enableFishIntegration = true;
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
services.mpd-mpris.enable = true;
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
xdg.dataFile = {
"Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = ''
"compatibilitytools"
{
"compat_tools"
{
"Proton-stl" // Internal name of this tool
{
"install_path" "."
"display_name" "Steam Tinker Launch"
"from_oslist" "windows"
"to_oslist" "linux"
}
}
}
'';
"Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source =
config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch";
"Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = ''
"manifest"
{
"commandline" "/steamtinkerlaunch run"
"commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun"
}
'';
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
@@ -10,10 +10,17 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
powerManagement.enable = true; powerManagement.enable = true;
hardware.asahi.extractPeripheralFirmware = true;
hardware.asahi.peripheralFirmwareDirectory = ./firmware;
hardware.asahi.enable = true;
services.upower.enable = true;
hardware.apple.touchBar.enable = true;
hardware.apple.touchBar.package = pkgs.tiny-dfr;
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = false;
boot = { boot = {
plymouth = { plymouth = {
@@ -75,9 +82,11 @@
}; };
# Enable Cosmic # Enable Cosmic
services.desktopManager.cosmic.enable = true; services.desktopManager.cosmic.enable = false;
services.displayManager.cosmic-greeter.enable = false; services.displayManager.cosmic-greeter.enable = false;
services.xserver.desktopManager.gnome.enable = false; services.xserver.desktopManager.gnome.enable = false;
services.desktopManager.plasma6.enable = false;
services.displayManager.sddm.enable = false;
services.libinput.enable = true; services.libinput.enable = true;
programs.hyprland.enable = true; programs.hyprland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1"; environment.sessionVariables.NIXOS_OZONE_WL = "1";
@@ -100,39 +109,11 @@
size = 16*1024; size = 16*1024;
} ]; } ];
# Exclude gnome bloat
environment.gnome.excludePackages = (with pkgs; [
atomix # puzzle game
cheese # webcam tool
epiphany # web browser
evince # document viewer
geary # email reader
gedit # text editor
gnome-characters
gnome-music
gnome-photos
gnome-terminal
gnome-tour
hitori # sudoku game
iagno # go game
tali # poker game
totem # video player
]);
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
extraPackages = with pkgs; [
intel-media-driver
];
}; };
# touchscreen
services.xserver = {
modules = [ pkgs.xf86_input_wacom ];
wacom.enable = true;
};
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb = { services.xserver.xkb = {
@@ -153,8 +134,11 @@
description = "Joshua Elmasri"; description = "Joshua Elmasri";
extraGroups = [ "networkmanager" "wheel" "adbusers" "dialout" ]; extraGroups = [ "networkmanager" "wheel" "adbusers" "dialout" ];
packages = with pkgs; []; packages = with pkgs; [];
shell = pkgs.fish;
}; };
programs.fish.enable = true;
programs.adb.enable = true; programs.adb.enable = true;
# Allow unfree packages # Allow unfree packages
@@ -163,13 +147,13 @@
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
# Flatpak # Flatpak
services.flatpak.enable = true; #services.flatpak.enable = true;
services.flatpak.update.onActivation = true; #services.flatpak.update.onActivation = true;
services.flatpak.packages = [ #services.flatpak.packages = [
"app.bluebubbles.BlueBubbles" # "app.bluebubbles.BlueBubbles"
"com.github.johnfactotum.Foliate" # "com.github.johnfactotum.Foliate"
"org.jdownloader.JDownloader" # "org.jdownloader.JDownloader"
]; #];
# Fonts # Fonts
@@ -182,6 +166,7 @@
]; ];
programs.kdeconnect.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
@@ -190,11 +175,10 @@
killall killall
hypridle hypridle
git git
pkgs.hyprpanel
bibata-cursors bibata-cursors
element-desktop element-desktop
wvkbd #inputs.zen-browser.packages."${system}".default
rofi-wayland rofi
playerctl playerctl
cava cava
moonlight-qt moonlight-qt
@@ -222,8 +206,9 @@
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# networking.firewall.allowedTCPPortRanges = [ { from = 42000; to = 420001; } ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; networking.firewall.enable = false;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
@@ -231,6 +216,6 @@
# this value at the release version of the first install of this system. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,37 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "usb_storage" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/089c3a91-0f69-4a24-8ca0-e7a4a817be07";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/4267-12F5";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}
+81
View File
@@ -0,0 +1,81 @@
{ config, pkgs, inputs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "joshuaelm";
home.homeDirectory = "/home/joshuaelm";
imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_laptop.nix ../../modules/waybar/waybar.nix ../../modules/ashell ../../modules/zen ../../modules/rofi ../../modules/kitty ];
home.packages = [
pkgs.element-desktop
pkgs.signal-desktop-bin
pkgs.supersonic
pkgs.libreoffice
pkgs.adw-gtk3
pkgs.thunderbird
pkgs.xfce.thunar
];
programs.hyprlock.enable = true;
programs.cava.enable = true;
programs.btop.enable = true;
services.hyprpaper.enable = true;
wayland.windowManager.hyprland.enable = true;
#xdg.configFile.hypr.source = ./modules/hypr;
#xdg.configFile.waybar.source = ./modules/waybar;
#xdg.configFile.cava.source = ./modules/cava;
#xdg.configFile.kitty.source = ./modules/kitty;
#xdg.configFile.rofi.source = ./modules/rofi;
#xdg.configFile.dunst.source = ./modules/dunst;
#home.file.".cache/ags/hyprpanel/options.json".source = ./modules/hyprpanel/options.json;
home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
services.mpd-mpris.enable = true;
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
xdg.dataFile = {
"Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = ''
"compatibilitytools"
{
"compat_tools"
{
"Proton-stl" // Internal name of this tool
{
"install_path" "."
"display_name" "Steam Tinker Launch"
"from_oslist" "windows"
"to_oslist" "linux"
}
}
}
'';
"Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source =
config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch";
"Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = ''
"manifest"
{
"commandline" "/steamtinkerlaunch run"
"commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun"
}
'';
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
+35
View File
@@ -0,0 +1,35 @@
{pkgs, ...}:
{
programs.ashell = {
enable = true;
settings = {
app_launcher_cmd = "rofi -show drun";
modules = {
left = [
"Workspaces"
];
center = [
"MediaPlayer"
];
right = [
"SystemInfo"
[
"Settings"
"Clock"
"Privacy"
"Tray"
]
];
};
workspaces = {
visibility_mode = "MonitorSpecific";
};
remove_airplane_btn = true;
appearance = {
style = "Solid";
};
};
};
}
-218
View File
@@ -1,218 +0,0 @@
## Configuration file for CAVA.
# Remove the ; to change parameters.
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
; mode = normal
# Accepts only non-negative values.
; framerate = 60
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
; autosens = 1
; overshoot = 20
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values.
; sensitivity = 100
# The number of bars (0-512). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
; bars = 0
; bar_width = 2
; bar_spacing = 1
# bar_height is only used for output in "noritake" format
; bar_height = 32
# For SDL width and space between bars is in pixels, defaults are:
; bar_width = 20
; bar_spacing = 5
# sdl_glsl have these default values, they are only used to calulate max number of bars.
; bar_width = 1
; bar_spacing = 0
# Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified.
; lower_cutoff_freq = 50
; higher_cutoff_freq = 10000
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
; sleep_timer = 0
[input]
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
# Defaults to 'pulse', 'pipewire', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
# On Mac it defaults to 'portaudio' or 'fifo'
# On windows this is automatic and no input settings are needed.
#
# All input methods uses the same config variable 'source'
# to define where it should get the audio.
#
# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
#
# For pipewire 'source' will be the object name or object.serial of the device to capture from.
# Both input and output devices are supported.
#
# For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file.
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
; method = pulse
; source = auto
; method = pipewire
; source = auto
; method = alsa
; source = hw:Loopback,1
; method = fifo
; source = /tmp/mpd.fifo
; sample_rate = 44100
; sample_bits = 16
; method = shmem
; source = /squeezelite-AA:BB:CC:DD:EE:FF
; method = portaudio
; source = auto
[output]
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl'
# or 'sdl_glsl'.
# 'noncurses' uses a custom framebuffer technique and prints only changes
# from frame to frame in the terminal. 'ncurses' is default if supported.
#
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
# stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
#
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
# in graphic mode. It only support the 3000 series graphical VFDs for now.
#
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or
# use one of the predefined ones.
; method = ncurses
# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'.
# Default is 'bottom'. Other orientations are only supported on sdl and ncruses
# output. Note: many fonts have weird glyphs for 'top' and 'right' characters,
# which can make ncurses not look right.
; orientation = bottom
# Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center.
# 'mono' outputs left to right lowest to highest frequencies.
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
# set 'reverse' to 1 to display frequencies the other way around.
; channels = stereo
; mono_option = average
; reverse = 0
# Raw output target. A fifo will be created if target does not exist.
; raw_target = /dev/stdout
# Raw data format. Can be 'binary' or 'ascii'.
; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
; ascii_max_range = 1000
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
; bar_delimiter = 59
; frame_delimiter = 10
# sdl window size and position. -1,-1 is centered.
; sdl_width = 1000
; sdl_height = 500
; sdl_x = -1
; sdl_y= -1
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
# 'frequency' displays the lower cut off frequency of the bar above.
# Only supported on ncurses and noncurses output.
; xaxis = none
# enable alacritty synchronized updates. 1 = on, 0 = off
# removes flickering in alacritty terminal emulator.
# defaults to off since the behaviour in other terminal emulators is unknown
; alacritty_sync = 0
# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders
; vertex_shader = pass_through.vert
; fragment_shader = bar_spectrum.frag
; for glsl output mode, keep rendering even if no audio
; continuous_rendering = 0
[color]
gradient = 1
gradient_count = 8
#GruvBox Green to Red Gradient
gradient_color_1 = '#98971a'
gradient_color_2 = '#98971a'
gradient_color_3 = '#fabd2f'
gradient_color_4 = '#fabd2f'
gradient_color_5 = '#fabd2f'
gradient_color_6 = '#d65d0e'
gradient_color_7 = '#cc241d'
gradient_color_8 = '#cc241d'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
# DEPRECATED as of 0.8.0, use noise_reduction instead
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 0
; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
# DEPRECATED as of 0.8.0, use noise_reduction instead
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
# DEPRECATED as of 0.8.0
; ignore = 0
# Noise reduction, int 0 - 100. default 77
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
# 100 will be very slow and smooth, 0 will be fast but noisy.
; noise_reduction = 77
[eq]
# This one is tricky. You can have as much keys as you want.
# Remember to uncomment more than one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples.
; 1 = 1 # bass
; 2 = 1
; 3 = 1 # midtone
; 4 = 1
; 5 = 1 # treble
-79
View File
@@ -1,79 +0,0 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
{
//create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main()
{
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
//calculate a bar size
float bar_size = u_resolution.x / bars_count;
//the y coordinate and bar values are the same
float y = bars[bar];
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0)
{
y = 1.0 / u_resolution.y;
}
//draw the bar up to current height
if (y > fragCoord.y)
{
//make some space between bars basen on settings
if (x > (bar + 1) * (bar_size) - bar_spacing)
{
fragColor = vec4(bg_color,1.0);
}
else
{
if (gradient_count == 0)
{
fragColor = vec4(fg_color,1.0);
}
else
{
//find which color in the configured gradient we are at
int color = int((gradient_count - 1) * fragCoord.y);
//find where on y this and next color is supposed to be
float y_min = color / (gradient_count - 1.0);
float y_max = (color + 1.0) / (gradient_count - 1.0);
//make color
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
}
}
}
else
{
fragColor = vec4(bg_color,1.0);
}
}
-34
View File
@@ -1,34 +0,0 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform vec3 u_resolution; // window resolution, not used here
//colors, configurable in cava config file
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
uniform vec3 fg_color; // foreground color, not used here
void main()
{
// find which bar to use based on where we are on the x axis
int bar = int(bars_count * fragCoord.x);
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
float y = (bars[bar]) * bar_y;
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
bar_r = bar_r * bar_r * 2;
// set color
fragColor.r = fg_color.x * y * bar_r;
fragColor.g = fg_color.y * y * bar_r;
fragColor.b = fg_color.z * y * bar_r;
}
-14
View File
@@ -1,14 +0,0 @@
#version 330
// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
// Output data ; will be interpolated for each fragment.
out vec2 fragCoord;
void main()
{
gl_Position = vec4(vertexPosition_modelspace,1);
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
}
-22
View File
@@ -1,22 +0,0 @@
[global]
separator_color= frame
progress_bar = true
progress_bar_corner_radius = 10
corner_radius = 10
icon_corner_radius = 10
[urgency_low]
background = "#1d2021"
foreground = "#d4be98"
frame_color = "#1d2021"
[urgency_normal]
background = "#1d2021"
foreground = "#d4be98"
frame_color = "#1d2021"
[urgency_critical]
background = "#3c1f1e"
foreground = "#ddc7a1"
frame_color = "#3c1f1e"
@@ -1,31 +1,35 @@
autogenerated = 0 # remove this line to remove the warning {pkgs, ...}:
{
wayland.windowManager.hyprland.extraConfig = ''
autogenerated = 0 # remove this line to remove the warning
source=~/.config/hypr/rose-pine.conf
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
monitor = eDP-1, highres@highrr, 0x0, 1 monitor = HDMI-A-1, 3840x2160@60, 0x0, 1, bitdepth, 10, sdrsaturation, 1.2, sdrbrightness, 1
#monitor = HDMI-A-1, disable #monitor = HDMI-A-1, disable
#monitor = sunshine, highres@highrr, 0x0, 1 #monitor = sunshine, highres@highrr, 0x0, 1
monitor = DP-1, highres@highrr, 0x0, 1
#monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1
exec-once = hyprctl dispatch workspace 1 exec-once = hyprctl dispatch workspace 1
exec-once = swaybg -i ~/NixOS-Configs/Wallpapers/sDpJ0mPGhn4FnbWOsOI4HoiYUvnyKjJck4RJnPZo-3609584059.jpg
#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 #exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427
exec-once = hyprlock exec-once = hyprlock
exec-once = hypridle exec-once = ashell
# exec-once = waybar exec-once = pw-metadata -n settings 0 clock.force-quantum 2048
exec-once = hyprpanel # exec-once = ashell
exec-once = systemctl --user start hyprpolkitagent exec-once = systemctl --user start hyprpolkitagent
exec-once = sunshine
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch # Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox # exec-once = waybar & hyprpaper & firefox
# Source a file (multi-file configs) debug:full_cm_proto=true
# source = ~/.config/hypr/myColors.conf
# Set programs that you use # Set programs that you use
$terminal = kitty $terminal = kitty
$fileManager = cosmic-files $fileManager = thunar
$menu = rofi -config ~/.config/rofi/apps.rasi -show drun $menu = rofi -show drun
# Some default env vars. # Some default env vars.
env = XCURSOR_SIZE,24 env = XCURSOR_SIZE,24
@@ -43,33 +47,35 @@ input {
follow_mouse = 1 follow_mouse = 1
touchpad { touchpad {
natural_scroll = yes natural_scroll = no
tap-to-click = no
tap-and-drag = yes
clickfinger_behavior = yes
} }
sensitivity = 0 # -1.0 - 1.0, 0 means no modification. sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
} }
render {
cm_fs_passthrough = false
}
general { general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5 gaps_in = 5
gaps_out = 5 gaps_out = 5
border_size = 2 border_size = 2
col.active_border = rgb(3d59a1)
col.inactive_border = rgb(787c99)
layout = dwindle layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false allow_tearing = false
} }
windowrulev2 = immediate, class:^(cs2)$
decoration { decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10 rounding = 0
blur { blur {
enabled = yes enabled = yes
@@ -103,7 +109,7 @@ animations {
} }
dwindle { dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ fogr more # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this preserve_split = yes # you probably want this
} }
@@ -112,56 +118,15 @@ layerrule = unset, overlay
gestures { gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
workspace_swipe_cancel_ratio = 0.15
}
plugin {
touch_gestures {
# The default sensitivity is probably too low on tablet screens,
# I recommend turning it up to 4.0
sensitivity = 4.0
# must be >= 3
workspace_swipe_fingers = 3
# switching workspaces by swiping from an edge, this is separate from workspace_swipe_fingers
# and can be used at the same time
# possible values: l, r, u, or d
# to disable it set it to anything else
workspace_swipe_edge = d
# in milliseconds
long_press_delay = 400
# resize windows by long-pressing on window borders and gaps.
# If general:resize_on_border is enabled, general:extend_border_grab_area is used for floating
# windows
resize_on_border_long_press = true
# in pixels, the distance from the edge that is considered an edge
edge_margin = 10
# emulates touchpad swipes when swiping in a direction that does not trigger workspace swipe.
# ONLY triggers when finger count is equal to workspace_swipe_fingers
#
# might be removed in the future in favor of event hooks
emulate_touchpad_swipe = false
experimental {
# send proper cancel events to windows instead of hacky touch_up events,
# NOT recommended as it crashed a few times, once it's stabilized I'll make it the default
send_cancel = 0
}
}
} }
misc { misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
enable_anr_dialog = 0
} }
# Example per-device config # Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
@@ -186,8 +151,10 @@ bind = $mainMod, M, exec, hyprlock
bind = $mainMod, E, exec, $fileManager bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,
bind = $mainMod, Space, exec, $menu bind = $mainMod, Space, exec, $menu
bind = $mainMod, B, exec, zen
bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen,
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-
@@ -232,3 +199,9 @@ bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging # Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
# Screen Recording
bind = , code:76, exec, killall -SIGUSR1 gpu-screen-recorder
bind = , code:75, exec, killall -SIGINT gpu-screen-recorder
'';
}
+197
View File
@@ -0,0 +1,197 @@
{pkgs, ...}:
{
wayland.windowManager.hyprland.extraConfig = ''
autogenerated = 0 # remove this line to remove the warning
# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor = HDMI-A-1, 3840x2160@60, 0x0, 1.5
#monitor = HDMI-A-1, disable
#monitor = sunshine, highres@highrr, 0x0, 1
#monitor = DP-1, highres@highrr, 0x0, 1
#monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1
monitor = eDP-1, highres@highrr, 0x0, 1.6
exec-once = hyprctl dispatch workspace 1
#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427
exec-once = hyprlock
exec-once = ashell
# exec-once = WGPU_BACKEND=gl ashell
exec-once = systemctl --user start hyprpolkitagent
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
# Set programs that you use
$terminal = kitty
$fileManager = thunar
$menu = rofi -show drun
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
accel_profile = flat
follow_mouse = 1
touchpad {
natural_scroll = yes
clickfinger_behavior = yes
tap-to-click = no
tap-and-drag = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 5
border_size = 2
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 0
blur {
enabled = yes
size = 5
passes = 3
new_optimizations = on
ignore_opacity = on
xray = false
}
shadow {
enabled = true
offset = 3, 3
color = rgba(323232cc)
}
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
layerrule = unset, overlay
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Window Rules
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exec, hyprlock
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, Space, exec, $menu
bind = $mainMod, B, exec, zen
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen,
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Screen Recording
bind = , code:76, exec, killall -SIGUSR1 gpu-screen-recorder
bind = , code:75, exec, killall -SIGINT gpu-screen-recorder
'';
}
@@ -1,6 +1,6 @@
background { background {
monitor = monitor =
path = ~/NixOS-Configs/Wallpapers/WE-Lake.png path = ~/NixOS-Configs/WE-Lake.png
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_passes = 3 # 0 disables blurring blur_passes = 3 # 0 disables blurring
-19
View File
@@ -1,19 +0,0 @@
## name: Rosé Pine
## author: jishnurajendran
## upstream: https://github.com/jishnurajendran/hyprland-rosepine/blob/main/rose-pine.conf
## All natural pine, faux fur and a bit of soho vibes for the classy minimalist
$base = 0xff191724
$surface = 0xff1f1d2e
$overlay = 0xff26233a
$muted = 0xff6e6a86
$subtle = 0xff908caa
$text = 0xffe0def4
$love = 0xffeb6f92
$gold = 0xfff6c177
$rose = 0xffebbcba
$pine = 0xff31748f
$foam = 0xff9ccfd8
$iris = 0xffc4a7e7
$highlightLow = 0xff21202e
$highlightMed = 0xff403d52
$highlightHigh = 0xff524f67
-110
View File
@@ -1,110 +0,0 @@
{
"bar.customModules.updates.pollingInterval": 1440000,
"menus.transition": "none",
"theme.bar.menus.monochrome": false,
"theme.bar.transparent": false,
"theme.bar.menus.card_radius": "0.4em",
"theme.bar.menus.border.radius": "0.7em",
"theme.bar.menus.border.size": "5px",
"theme.bar.floating": true,
"theme.bar.outer_spacing": "1px",
"theme.bar.border.location": "none",
"theme.bar.location": "top",
"theme.bar.buttons.enableBorders": false,
"menus.clock.time.military": true,
"menus.clock.time.hideSeconds": true,
"menus.clock.weather.location": "Cedar Hill",
"theme.bar.border_radius": "10px",
"theme.bar.buttons.workspaces.enableBorder": false,
"theme.bar.buttons.radius": "10px",
"theme.bar.buttons.padding_y": "0.2rem",
"theme.bar.buttons.padding_x": "0.7rem",
"theme.bar.margin_sides": "0.5em",
"bar.launcher.autoDetectIcon": true,
"menus.dashboard.powermenu.avatar.image": "/home/joshuaelm/NixOS-Configs/pfp.jpg",
"menus.dashboard.powermenu.avatar.name": "Joshua Elmasri",
"theme.bar.menus.menu.dashboard.profile.radius": "100px",
"menus.dashboard.powermenu.logout": "hyprlock",
"menus.dashboard.controls.enabled": false,
"menus.dashboard.stats.enabled": true,
"menus.dashboard.shortcuts.enabled": false,
"menus.dashboard.directories.enabled": false,
"menus.dashboard.stats.enable_gpu": false,
"menus.bluetooth.showBattery": true,
"theme.font.name": "Roboto",
"scalingPriority": "hyprland",
"bar.customModules.netstat.dynamicIcon": false,
"theme.bar.buttons.modules.netstat.enableBorder": false,
"theme.bar.buttons.modules.power.enableBorder": false,
"menus.media.hideAuthor": false,
"menus.media.displayTimeTooltip": false,
"menus.media.displayTime": true,
"menus.volume.raiseMaximumVolume": false,
"bar.volume.label": true,
"bar.network.label": true,
"bar.network.truncation": true,
"bar.media.format": "{title}",
"bar.media.show_active_only": true,
"bar.media.truncation_size": 100,
"bar.clock.format": "%R",
"bar.clock.icon": "",
"bar.layouts": {
"0": {
"left": [
"dashboard",
"workspaces"
],
"middle": [
"media"
],
"right": [
"volume",
"network",
"bluetooth",
"battery",
"systray",
"clock",
"notifications"
]
},
"1": {
"left": [
"dashboard",
"workspaces",
"windowtitle"
],
"middle": [
"media"
],
"right": [
"volume",
"clock",
"notifications"
]
},
"2": {
"left": [
"dashboard",
"workspaces",
"windowtitle"
],
"middle": [
"media"
],
"right": [
"volume",
"clock",
"notifications"
]
}
},
"theme.bar.buttons.workspaces.fontSize": "1.2em",
"bar.workspaces.show_numbered": false,
"theme.bar.buttons.workspaces.smartHighlight": true,
"bar.workspaces.show_icons": true,
"bar.workspaces.icons.occupied": "",
"theme.bar.opacity": 100,
"theme.bar.buttons.monochrome": false,
"theme.bar.buttons.notifications.enableBorder": false,
"menus.dashboard.powermenu.sleep": "systemctl suspend-then-hibernate"
}
+14
View File
@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
programs.kitty.enable = true;
programs.kitty.extraConfig = ''
font_family Fira Code Nerd Font
bold_font auto
italic_font auto
bold_italic_font auto
confirm_os_window_close 0
cursor_shape beam
cursor_trail 3
'';
}
-11
View File
@@ -1,11 +0,0 @@
include themes/tokyo-night-kitty.conf
font_family Fira Code Nerd Font
bold_font auto
italic_font auto
bold_italic_font auto
confirm_os_window_close 0
background_opacity 0.8
background_blur 0
cursor_shape beam
-56
View File
@@ -1,56 +0,0 @@
# vim:ft=kitty
# gruvbox-dark colorscheme for kitty
# snazzy theme used as base
cursor #928374
cursor_text_color background
visual_bell_color #8ec07c
bell_border_color #8ec07c
active_border_color #d3869b
inactive_border_color #665c54
active_tab_foreground #fbf1c7
active_tab_background #665c54
inactive_tab_foreground #a89984
inactive_tab_background #3c3836
foreground #ebdbb2
background #272727
selection_foreground #655b53
selection_background #ebdbb2
url_color #d65c0d
# black
color0 #272727
color8 #928373
# red
color1 #cc231c
color9 #fb4833
# green
color2 #989719
color10 #b8ba25
# yellow
color3 #d79920
color11 #fabc2e
# blue
color4 #448488
color12 #83a597
# magenta
color5 #b16185
color13 #d3859a
# cyan
color6 #689d69
color14 #8ec07b
# white
color7 #a89983
color15 #ebdbb2
-56
View File
@@ -1,56 +0,0 @@
## name: Rosé Pine Dawn
## author: mvllow
## license: MIT
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-dawn.conf
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
foreground #575279
background #faf4ed
selection_foreground #575279
selection_background #dfdad9
cursor #cecacd
cursor_text_color #575279
url_color #907aa9
active_tab_foreground #575279
active_tab_background #f2e9e1
inactive_tab_foreground #9893a5
inactive_tab_background #faf4ed
active_border_color #286983
inactive_border_color #dfdad9
# black
color0 #f2e9e1
color8 #9893a5
# red
color1 #b4637a
color9 #b4637a
# green
color2 #286983
color10 #286983
# yellow
color3 #ea9d34
color11 #ea9d34
# blue
color4 #56949f
color12 #56949f
# magenta
color5 #907aa9
color13 #907aa9
# cyan
color6 #d7827e
color14 #d7827e
# white
color7 #575279
color15 #575279
-56
View File
@@ -1,56 +0,0 @@
## name: Rosé Pine Moon
## author: mvllow
## license: MIT
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine-moon.conf
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
foreground #e0def4
background #232136
selection_foreground #e0def4
selection_background #44415a
cursor #56526e
cursor_text_color #e0def4
url_color #c4a7e7
active_tab_foreground #e0def4
active_tab_background #393552
inactive_tab_foreground #6e6a86
inactive_tab_background #232136
active_border_color #3e8fb0
inactive_border_color #44415a
# black
color0 #393552
color8 #6e6a86
# red
color1 #eb6f92
color9 #eb6f92
# green
color2 #3e8fb0
color10 #3e8fb0
# yellow
color3 #f6c177
color11 #f6c177
# blue
color4 #9ccfd8
color12 #9ccfd8
# magenta
color5 #c4a7e7
color13 #c4a7e7
# cyan
color6 #ea9a97
color14 #ea9a97
# white
color7 #e0def4
color15 #e0def4
-56
View File
@@ -1,56 +0,0 @@
## name: Rosé Pine
## author: mvllow
## license: MIT
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
foreground #e0def4
background #191724
selection_foreground #e0def4
selection_background #403d52
cursor #524f67
cursor_text_color #e0def4
url_color #c4a7e7
active_tab_foreground #e0def4
active_tab_background #26233a
inactive_tab_foreground #6e6a86
inactive_tab_background #191724
active_border_color #31748f
inactive_border_color #403d52
# black
color0 #26233a
color8 #6e6a86
# red
color1 #eb6f92
color9 #eb6f92
# green
color2 #31748f
color10 #31748f
# yellow
color3 #f6c177
color11 #f6c177
# blue
color4 #9ccfd8
color12 #9ccfd8
# magenta
color5 #c4a7e7
color13 #c4a7e7
# cyan
color6 #ebbcba
color14 #ebbcba
# white
color7 #e0def4
color15 #e0def4
@@ -1,77 +0,0 @@
# Tokyo Night color scheme for kitty terminal emulator
# https://github.com/davidmathers/tokyo-night-kitty-theme
#
# Based on Tokyo Night color theme for Visual Studio Code
# https://github.com/enkia/tokyo-night-vscode-theme
foreground #a9b1d6
background #1a1b26
# Black
color0 #414868
color8 #414868
# Red
color1 #f7768e
color9 #f7768e
# Green
color2 #73daca
color10 #73daca
# Yellow
color3 #e0af68
color11 #e0af68
# Blue
color4 #7aa2f7
color12 #7aa2f7
# Magenta
color5 #bb9af7
color13 #bb9af7
# Cyan
color6 #7dcfff
color14 #7dcfff
# White
color7 #c0caf5
color15 #c0caf5
# Cursor
cursor #c0caf5
cursor_text_color #1a1b26
# Selection highlight
selection_foreground none
selection_background #28344a
# The color for highlighting URLs on mouse-over
url_color #9ece6a
# Window borders
active_border_color #3d59a1
inactive_border_color #101014
bell_border_color #e0af68
# Tab bar
tab_bar_style fade
tab_fade 1
active_tab_foreground #3d59a1
active_tab_background #16161e
active_tab_font_style bold
inactive_tab_foreground #787c99
inactive_tab_background #16161e
inactive_tab_font_style bold
tab_bar_background #101014
# Title bar
macos_titlebar_color #16161e
# Storm
# background #24283b
# cursor_text_color #24283b
# active_tab_background #1f2335
# inactive_tab_background #1f2335
# macos_titlebar_color #1f2335
-1
View File
@@ -3,7 +3,6 @@
{ {
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
colorschemes.tokyonight.enable = true;
plugins.nvim-tree.enable = true; plugins.nvim-tree.enable = true;
plugins.treesitter.enable = true; plugins.treesitter.enable = true;
plugins.lualine.enable = true; plugins.lualine.enable = true;
+7
View File
@@ -0,0 +1,7 @@
{pkgs, ...}:
{
services.openvpn.servers = {
homeVPN = { config = '' config ./modules/openvpn/homeVPN.ovpn ''; };
};
}
+134
View File
@@ -0,0 +1,134 @@
client
dev tun
proto tcp
remote 150.220.96.4 1194
resolv-retry infinite
nobind
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
persist-key
persist-tun
auth-user-pass
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3
auth SHA1
key-direction 1
reneg-sec 0
redirect-gateway def1
<ca>
-----BEGIN CERTIFICATE-----
MIIEfDCCA2SgAwIBAgIIX7Vfn1rIEkQwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjUwNzAxMDAzNzE5WhcNNDAw
NjI3MDAzNzE5WjCBgTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEZMBcGA1UE
CwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UEAwwQVW5pRmlfT3BlblZQTl9DQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALj/Bc0DVwzWk5riE6vWcVqq
iTz5GtoHFlrnm0fce2/UZpXkgVg4oMY3IrDOFBwsoKBOflJhdzfBL37tZ0uTCvvs
9/ICF6EpuKH4Y7dqyV6lZOMJZ90rCZ0e+oX/VN8Z5hIN4fbatBsKeqA73oru+OMm
vipWBfYxFlf5nZN0ky1hrckADf1dN+EEJ7v+Ggu9JK0Vq4tv3qsiAdEzOqq5ptGB
uFOZaZZtOKyjnjoSlYdFku191SeVKUVlYqmaH3azokG9OUsfdLJGEGQ02fRInooi
kbBHZq6hwMqVWpwDN6u37oOALVgAZLK/UGJP7tmEyypHN3nIBERpCCyg/vDaqR0C
AwEAAaOB9TCB8jALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zCBtQYDVR0jBIGt
MIGqgBTPwX8miNgDvzHq8hfCfZw6ElH1AKGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
ETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwN
VWJpcXVpdGkgSW5jLjEZMBcGA1UECwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UE
AwwQVW5pRmlfT3BlblZQTl9DQYIIX7Vfn1rIEkQwHQYDVR0OBBYEFM/BfyaI2AO/
MeryF8J9nDoSUfUAMA0GCSqGSIb3DQEBCwUAA4IBAQCMjde9YE2dh46lkzZEf+jF
dm3oRi571XYM4vvlsN4IBGf6e9/mCsZZJO1x/P+f5+p1pkFao5bOCW4Mcyjh441T
JrrWFneY4Rso0fa76K6ufBr/tg0BH/uZxCyn6XfqhNlZOvpjCfNPuEEKl3JcT7mB
F8kCoBr4VBECo3QVOFpO+GUlbx90ah/eHg7Itjv4LRAR6nDwLcIdAw4xqD92n3hN
HbaMGGQuPdPpQ1yBtiVBtBazWj/GJRoqwayuwhmpHqOezwF5wZWV2NGDUpJk6B8O
N9kaWR7fuLhiWdDGO60vewasJzrJJ0FBs8p/nfA9YpEdJM6hyAAGtLHmFaRfI18c
-----END CERTIFICATE-----
</ca>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
3f2a7bf46921701f5fd0d519811da303
a400d24d06e0d715f30798f9761097e3
c28ef206c9dc6a140b668db9f8d73381
94b0518c10d32f899cf292709bd60385
fb020cef3a31270b1f6c6b9169ab56f7
12c2d2a1a3fb9d262fab2f3567d91372
d03e98a71b123105923e043f5001af09
88ae0e2a64e5ffba348c96eb29c7d4ff
dabfa1b08441d9bdf3498708c798ef01
71a8cb169f3b589ab1f6fb9b5478abb6
4f86a6310f4b36363dba42352e5c1d1d
b3f8c084a5c0ee98374ba3f62f3fe0bb
8c74df88091676c7a942e97dac90edab
b37356bf3e7de3d16e8d0e457de31430
37cd2deaf503cee38032a1e94b4f6d57
de4f5b7026693a1570439930f5662103
-----END OpenVPN Static key V1-----
</tls-auth>
<cert>
-----BEGIN CERTIFICATE-----
MIIEmDCCA4CgAwIBAgIIYFQWWbVqsLUwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjUwNzAxMDAzNzE5WhcNMzAw
NjMwMDAzNzE5WjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEdMBsGA1UE
CwwUVW5pRmlfT3BlblZQTl9DbGllbnQxHTAbBgNVBAMMFFVuaUZpX09wZW5WUE5f
Q2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjcFu13VZPUC5
HTLwGa/04hDeMIxLzb8r05LcgY4+6tvBl84ROtZByGW6Oe5ieL43AxolBhLPuqM0
v3rg3DVXLCA59ICUS16HkjiQobZp35ruxKP4YxIHBVxs5BTgC93Q21bVbCHox9bz
yTcGl4z+t3B6d3hrBqG46KAvPLQgxjaS3vSslSznfl92kA8drJskHELy6F4lFuV0
Wkyj8BQ9E6guPaCAopbji91OW21XymtPu6tJLwQhLICosttL1W6lFfA3sT5WC2vc
IuEhgPqa5UOTtoHvsBmbtFP7xc6L3+60cnmDjpKz7hEoK6iQg7V1aHZr0UmadGF2
5S2glTrb4QIDAQABo4IBCDCCAQQwgbUGA1UdIwSBrTCBqoAUz8F/JojYA78x6vIX
wn2cOhJR9QChgYekgYQwgYExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9y
azERMA8GA1UEBwwITmV3IFlvcmsxFjAUBgNVBAoMDVViaXF1aXRpIEluYy4xGTAX
BgNVBAsMEFVuaUZpX09wZW5WUE5fQ0ExGTAXBgNVBAMMEFVuaUZpX09wZW5WUE5f
Q0GCCF+1X59ayBJEMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoG
CCsGAQUFBwMCMB0GA1UdDgQWBBStg+rBUt0PoaLZZwSUwyGlOGP2fTANBgkqhkiG
9w0BAQsFAAOCAQEAamBemx+5wVyU82TreQ3dXIUAs+DndmHgL821Pmfo/G4n/rAO
Uaj3Ba14XZXm1sei6bWgv383J+Skvi325HghMqtEdK1rrHy9UTFt2UwEndxUNXJd
+3x83QEykjyiHwTiQ0nOo5Q4OYG0Eg+Bpvh6sLpEtXNrZVNyo+8Zj5hz5DAhc1i4
j6zv9Eg+lvaVQlH9Mld7fiVCIBB2173ThGSn9y5zH0BPHZZbCrKjc+Qj08An4HtX
1QDMhBX4S+4iZFcBE7ZAJ0OtLcKjou16wPP1ECKd9FpIV6FxL/pjK5E1zCXsKmMe
J4Z8W/RTTXqsZlHpri8LLCICBRkLjVF3g88MEw==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNwW7XdVk9QLkd
MvAZr/TiEN4wjEvNvyvTktyBjj7q28GXzhE61kHIZbo57mJ4vjcDGiUGEs+6ozS/
euDcNVcsIDn0gJRLXoeSOJChtmnfmu7Eo/hjEgcFXGzkFOAL3dDbVtVsIejH1vPJ
NwaXjP63cHp3eGsGobjooC88tCDGNpLe9KyVLOd+X3aQDx2smyQcQvLoXiUW5XRa
TKPwFD0TqC49oICiluOL3U5bbVfKa0+7q0kvBCEsgKiy20vVbqUV8DexPlYLa9wi
4SGA+prlQ5O2ge+wGZu0U/vFzovf7rRyeYOOkrPuESgrqJCDtXVodmvRSZp0YXbl
LaCVOtvhAgMBAAECggEAA6X3hKHd1s08VmuLfjKNbDOmvEiIFOoEJnEjreceztJl
rgYDYuiSKQzkZf3kJYGW9REufcFsyW8BrW64rDVobz3/FkAohBreBPd7hXK/6jc/
FbfqOlNQjSTe6pNwKe4FPffpc0IZW+qE1YHOI7otvhCt6wNu4bm2aOPig1hX2/7d
Krrrpt8yrtXoBzCvX8qsl2wadanDpbBqzzMlY4N/pbbkNkyNgeQUwpImgHtfL0VT
K+bGzEFrOaAVE/1z598OfPL1yrvIEGwlAX+0jWCySQA4LkepN+IoNYn6wZmMtc0u
355i7xjfxjpzldnaludz0D0l9om7kS6Yin8t92uvDwKBgQC/f8HG4TWwhPxGdwFM
l+p3HxUJLY6Hks2hupuCMGqAuE+Q/sg2MoSz434ZMUSJzSoYc14vPx8JNkgTHCAV
M5+oatLQ5CTPtsXlGc1DVZLuIhMWOYewEzYyz8HuJlTiGFbT5xUZj+rnvtiMBDGD
/GTfvbavEsheeVchPnfJxaEFFwKBgQC9gHwxRfN86ETO00u/IRkZlcKcQNsK3LxF
m0Bsyu08f8BRio5QeMjizkisUaADqnWtqdcQw9T2eS/m+Z+mzkjWsXtrnQlQwNUp
tO52axUo+d+cmjAhDby9CbJSShXaoOQ5XQQDaX02s0MUlnfBkq0qRZinnnsWK8vc
N3SkUK2xxwKBgBbeGLO5HQIxPzbi6yLMWVFUQtzPtd92pluTvxIy2eT5HXdBFYNz
UOlyVxKHEZorB8XXsP2PWhNtifnON/6QJZak+vu64rJzLvqGtD5AL8WECCd1Q0DB
ao1yxcO8jBJbubKgO6LLzs9RuOYvcgJC14DoVLJfWdH+R2tO3FsZ4HqNAoGBAKSv
Fj7T5ah1Sebb5YXyQ5fieD/GdRVZgxySsUhaihT7iKzUVp1Een/weWOXhBHrf10u
rkJZjaes5Z467S3PM6mwj+uTi1bsXdNi86Fhqf/0NwonTRBMmetGk/vDen6HOA9J
8ITuleyFmRQ5N1W4HFkSJnn01k8MPJvibbGmk2xdAoGAEgs01GX+sApfcMgFIgZO
XGJoSHDnuoMxnvgqFxdV+ELrOtLlslc3/SoA2RfVfsg+aUX6gO2XndsS0a4u1wJj
plp5pU0Yp7c2TdpCVsER3G9MLVkeA9cJj0XRPwNfR0sb5Qk/k1yQmvwwxveLWg0q
D/XWJgkDwapdkhWyrnZ1fPU=
-----END PRIVATE KEY-----
</key>
-17
View File
@@ -1,17 +0,0 @@
configuration {
show-icons: true;
font: "FreeSans Regular 12";
icon-theme: "Gruvbox-Plus-Dark";
display-ssh: "󰣀 ssh:";
display-run: "󱓞 run:";
display-drun: "󰣖 drun:";
display-window: "󱂬 window:";
display-combi: "󰕘 combi:";
display-filebrowser: "󰉋 filebrowser:";
dpi: 110;
}
@theme "~/.config/rofi/tokyo-night.rasi"
-16
View File
@@ -1,16 +0,0 @@
configuration {
show-icons: true;
font: "FreeSans Regular 12";
display-ssh: "󰣀 ssh:";
display-run: "󱓞 run:";
display-drun: "󰣖 drun:";
display-window: "󱂬 window:";
display-combi: "󰕘 combi:";
display-filebrowser: "󰉋 filebrowser:";
dpi: 110;
}
@theme "~/.config/rofi/tokyo-night.rasi"
+41
View File
@@ -0,0 +1,41 @@
{pkgs, lib, config, ... }:
{
programs.rofi.enable = true;
programs.rofi.extraConfig = {
show-icons = true;
drun-display-format = "{icon} {name}";
hide-scrollbar = true;
sidebar-mode = true;
dpi = 110;
font = "FreeSans Regular 12";
};
programs.rofi.theme = lib.mkAfter {
window.height = 600;
window.width = 600;
window.border-radius = 0;
element = {
padding = 5;
border-radius = 0;
};
inputbar.padding = 14;
listview = {
padding = 8;
border-radius = "0 0 0 0";
border = "2 2 2 2";
dynamic = false;
};
"element-text element-icon" = {
size = 40;
margin = "0 10 0 0";
};
"element selected.normal" = {
background-color = lib.mkForce "@normal-background";
};
"element alternate.normal" = {
background-color = lib.mkForce "@normal-background";
};
mainbox.children = "inputbar, message, listview";
mainbox.spacing = 0;
};
}
-132
View File
@@ -1,132 +0,0 @@
* {
scrollbar: false;
bg: #24283b;
bg-dark: #1f2335;
bg-highlight: #292e42;
fg: #c0caf5;
fg-dark: #3b4261;
red-dark: #db4b4b;
red-light: #f7768e;
yellow: #e0af68;
orange: #ff9e64;
gray: #565f89;
background: @bg-dark;
background-color: @background;
foreground: @fg;
border-color: @gray;
separatorcolor: @border-color;
scrollbar-handle: @border-color;
normal-background: @background;
normal-foreground: @foreground;
alternate-normal-background: @bg-dark;
alternate-normal-foreground: @fg;
selected-normal-background: @bg-highlight;
selected-normal-foreground: @fg;
active-background: @orange;
active-foreground: @bg;
alternate-active-background: @active-background;
alternate-active-foreground: @active-foreground;
selected-active-background: @yellow;
selected-active-foreground: @active-foreground;
urgent-background: @red-dark;
urgent-foreground: @background;
alternate-urgent-background: @urgent-background;
alternate-urgent-foreground: @urgent-foreground;
selected-urgent-background: @red-dark;
selected-urgent-foreground: @urgent-foreground;
}
window {
height: 600;
width: 600;
border-radius: 10;
}
mainbox {
spacing: 0;
children: [inputbar, message, listview];
}
inputbar {
color: @normal-foreground;
padding: 14;
background-color: @background;
}
message {
padding: 10;
background-color: @background;
}
listview {
padding: 8;
border-radius: 0 0 10 10;
border: 2 2 2 2;
border-color: @background;
background-color: @background;
dynamic: false;
}
textbox {
text-color: @normal-foreground;
}
error-message {
border: 20 20 20 20;
}
entry, prompt, case-indicator {
text-color: inherit;
}
prompt {
margin: 0 10 0 0;
}
element {
padding: 5;
vertical-align: 0.5;
border-radius: 10;
text-color: @normal-foreground;
background-color: @normal-background;
}
element.selected.normal {
background-color: @selected-normal-background;
}
element.alternate.normal {
background-color: inherit;
}
element.normal.active, element.alternate.active {
background-color: @background;
}
element.selected.active {
background-color: @selected-normal-background;
}
element.normal.urgent, element.alternate.urgent {
background-color: @urgent-background;
}
element.selected.urgent {
background-color: @urgent-background;
}
element-text, element-icon {
size: 40;
margin: 0 10 0 0;
vertical-align: 0.5;
background-color: inherit;
text-color: @normal-foreground;
}
+27
View File
@@ -0,0 +1,27 @@
{ pkgs, ... }:
{
stylix.enable = true;
stylix.polarity = "dark";
#stylix.targets.plymouth.enable = false;
stylix.targets.kitty.enable = true;
stylix.targets.hyprpaper.enable = true;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
stylix.targets.zen-browser.profileNames = [ "default" ];
stylix.targets.zen-browser.enable = true;
# blue aura house
/* stylix.image = pkgs.fetchurl {
url = "https://w.wallhaven.cc/full/1p/wallhaven-1py8lw.jpg";
hash = "sha256-smJTuprm8PVKWv56hfv9UMzDXkHm3R7O1ALaNpNYy3E=";
};*/
# coastal town
/*stylix.image = pkgs.fetchurl {
url = "https://w.wallhaven.cc/full/ex/wallhaven-ex8vml.jpg";
hash = "sha256-SNsauGNVU7p+FfZPJ97GQDz5roRfy82WbAuLmLl7iVs=";
};*/
stylix.image = pkgs.fetchurl {
url = "https://w.wallhaven.cc/full/5g/wallhaven-5g22q5.png";
hash = "sha256-snqkeQecU0opsBfIrnkl6aiV71hSCmqnZBAsibNG4w8=";
};
}
@@ -1,17 +0,0 @@
{
"version" : 1,
"replacementkey" : "empty",
"group" : "colorize",
"passes" :
[
{
"material" : "materials/effects/empty.json"
}
],
"dependencies" :
[
"materials/effects/empty.json",
"shaders/effects/empty.frag",
"shaders/effects/empty.vert"
]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/empty",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
uniform sampler2D g_Texture0; // {"material":"framebuffer","label":"ui_editor_properties_framebuffer","hidden":true}
varying vec2 v_TexCoord;
void main() {
vec4 albedo = texSample2D(g_Texture0, v_TexCoord.xy);
gl_FragColor = albedo;
}
@@ -1,12 +0,0 @@
uniform mat4 g_ModelViewProjectionMatrix;
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec2 v_TexCoord;
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord.xy = a_TexCoord;
}
@@ -1,20 +0,0 @@
{
"version" : 1,
"replacementkey" : "blend",
"name" : "ui_editor_effect_blend_title",
"description" : "ui_editor_effect_blend_description",
"group" : "colorize",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/blend.json"
}
],
"dependencies" :
[
"materials/effects/blend.json",
"shaders/effects/blend.frag",
"shaders/effects/blend.vert"
]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/blend",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,18 +0,0 @@
{
"name" : "Blend",
"description" : "Blend two images with various modes.",
"group" : "image",
//"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/blend.json"
}
],
"dependencies" :
[
"materials/effects/blend.json",
"shaders/effects/blend.frag",
"shaders/effects/blend.vert"
]
}
@@ -1,18 +0,0 @@
{
"name" : "Opacity",
"description" : "Adds an opacity mask to the image.",
"group" : "image",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/opacity.json"
}
],
"dependencies" :
[
"materials/effects/opacity.json",
"shaders/effects/opacity.frag",
"shaders/effects/opacity.vert"
]
}
@@ -1,18 +0,0 @@
{
"name" : "Scroll",
"description" : "Scrolls the image horizontally or vertically.",
"group" : "image",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/scroll.json"
}
],
"dependencies" :
[
"materials/effects/scroll.json",
"shaders/effects/scroll.frag",
"shaders/effects/scroll.vert"
]
}
@@ -1,18 +0,0 @@
{
"name" : "Spin",
"description" : "Spin the image.",
"group" : "image",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/spin.json"
}
],
"dependencies" :
[
"materials/effects/spin.json",
"shaders/effects/spin.frag",
"shaders/effects/spin.vert"
]
}
@@ -1,18 +0,0 @@
{
"name" : "Transform",
"description" : "Apply scaling, rotation and offsets to the image.",
"group" : "image",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/transform.json"
}
],
"dependencies" :
[
"materials/effects/transform.json",
"shaders/effects/transform.frag",
"shaders/effects/transform.vert"
]
}
@@ -1,13 +0,0 @@
{
"passes" :
[
{
"blending" : "translucent",
"cullmode" : "nocull",
"depthtest" : "disabled",
"depthwrite" : "disabled",
"shader" : "genericimage2",
"textures" : [ "effectpreview" ]
}
]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/blend",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/opacity",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/scroll",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/spin",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/transform",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,5 +0,0 @@
{
"format" : "rgba8888",
"nomip" : true,
"nonpoweroftwo" : true
}
@@ -1,4 +0,0 @@
{
"autosize" : true,
"material" : "materials/effectpreview.json"
}
@@ -1,18 +0,0 @@
{
"file" : "scene.json",
"general" :
{
"properties" :
{
"schemecolor" :
{
"order" : 0,
"text" : "ui_browse_properties_scheme_color",
"type" : "color",
"value" : "0 0 0"
}
}
},
"title" : "previewblend",
"type" : "scene"
}
@@ -1,115 +0,0 @@
{
"camera" :
{
"center" : "-121.595 -15.576 -1.000",
"eye" : "-121.595 -15.576 0.000",
"up" : "0.000 1.000 0.000"
},
"general" :
{
"ambientcolor" : "0.3 0.3 0.3",
"bloom" : false,
"bloomstrength" : 2,
"bloomthreshold" : 0.64999997615814209,
"cameraparallax" : false,
"cameraparallaxamount" : 0.5,
"cameraparallaxdelay" : 0.10000000149011612,
"cameraparallaxmouseinfluence" : 0,
"camerapreview" : true,
"camerashake" : false,
"camerashakeamplitude" : 0.5,
"camerashakeroughness" : 1,
"camerashakespeed" : 3,
"clearcolor" : "0.7 0.7 0.7",
"orthogonalprojection" :
{
"height" : 256,
"width" : 256
},
"skylightcolor" : "0.3 0.3 0.3"
},
"objects" :
[
{
"angles" : "0.000 0.000 0.000",
"dependencies" : [ 15 ],
"depth" : 1,
"effects" :
[
{
"file" : "effects/blend/effect.json",
"passes" :
[
{
"combos" :
{
"BLENDMODE" : 23
},
"constantshadervalues" : null,
"textures" : [ null, "_rt_imageLayerComposite_15_a" ]
}
]
}
],
"id" : 38,
"image" : "models/effectpreview.json",
"name" : "",
"origin" : "128.000 128.000 0.000",
"scale" : "1.000 1.000 1.000"
},
{
"angles" : "0.000 0.000 0.000",
"depth" : 1,
"effects" :
[
{
"file" : "effects/transform/effect.json",
"passes" :
[
{
"combos" :
{
"CLAMP" : 1,
"MODE" : 0
},
"constantshadervalues" :
{
"Angle" : 0,
"Scale" : "3 3"
}
}
]
},
{
"file" : "effects/spin/effect.json",
"passes" :
[
{
"combos" :
{
"MODE" : 0
},
"constantshadervalues" : null
}
]
},
{
"file" : "effects/opacity/effect.json",
"passes" :
[
{
"combos" : null,
"constantshadervalues" : null,
"textures" : [ null, "masks/opacity_mask_ee0d9bbc6d0516b8583c8fb3e841485c0b7ec4e8" ]
}
]
}
],
"id" : 15,
"image" : "models/effectpreview.json",
"name" : "effectpreview",
"origin" : "-204.142 136.225 0.000",
"scale" : "1.000 1.000 1.000"
}
]
}
@@ -1,18 +0,0 @@
// [COMBO] {"material":"Blend mode","combo":"BLENDMODE","type":"imageblending","default":2}
#include "common_blending.h"
varying vec4 v_TexCoord;
uniform sampler2D g_Texture0; // {"material":"Framebuffer","hidden":true}
uniform sampler2D g_Texture1; // {"material":"Color mask","mode":"rgbmask","default":"util/white"}
void main() {
vec4 albedo = texSample2D(g_Texture0, v_TexCoord.xy);
vec4 mask = texSample2D(g_Texture1, v_TexCoord.zw);
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, mask.rgb, mask.a);
gl_FragColor = albedo;
}
@@ -1,15 +0,0 @@
uniform mat4 g_ModelViewProjectionMatrix;
uniform vec4 g_Texture1Resolution;
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec4 v_TexCoord;
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord.xy = a_TexCoord;
v_TexCoord.zw = vec2(v_TexCoord.x * g_Texture1Resolution.z / g_Texture1Resolution.x,
v_TexCoord.y * g_Texture1Resolution.w / g_Texture1Resolution.y);
}
@@ -1,13 +0,0 @@
varying vec4 v_TexCoord;
uniform sampler2D g_Texture0; // {"material":"Framebuffer","hidden":true}
uniform sampler2D g_Texture1; // {"material":"Mask","mode":"opacitymask","default":"util/white"}
void main() {
vec4 albedo = texSample2D(g_Texture0, v_TexCoord.xy);
float mask = texSample2D(g_Texture1, v_TexCoord.zw).r;
albedo.a *= mask;
gl_FragColor = albedo;
}
@@ -1,15 +0,0 @@
uniform mat4 g_ModelViewProjectionMatrix;
uniform vec4 g_Texture1Resolution;
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec4 v_TexCoord;
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord.xy = a_TexCoord;
v_TexCoord.zw = vec2(v_TexCoord.x * g_Texture1Resolution.z / g_Texture1Resolution.x,
v_TexCoord.y * g_Texture1Resolution.w / g_Texture1Resolution.y);
}
@@ -1,10 +0,0 @@
varying vec2 v_TexCoord;
varying vec2 v_Scroll;
uniform sampler2D g_Texture0; // {"material":"Framebuffer","hidden":true}
void main() {
vec2 texCoord = frac(v_TexCoord + v_Scroll);
gl_FragColor = texSample2D(g_Texture0, texCoord);
}
@@ -1,21 +0,0 @@
uniform mat4 g_ModelViewProjectionMatrix;
uniform float g_Time;
uniform float g_ScrollX; // {"material":"Speed X","default":0.2,"range":[-2,2]}
uniform float g_ScrollY; // {"material":"Speed Y","default":0.2,"range":[-2,2]}
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec2 v_TexCoord;
varying vec2 v_Scroll;
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord = a_TexCoord;
vec2 scroll = vec2(g_ScrollX, g_ScrollY);
scroll = sign(scroll) * pow(vec2(g_ScrollX, g_ScrollY), CAST2(2.0));
v_Scroll = scroll * g_Time;
}
@@ -1,14 +0,0 @@
// [COMBO] {"material":"Repeat","combo":"CLAMP","type":"options","default":1}
varying vec2 v_TexCoord;
uniform sampler2D g_Texture0; // {"material":"Framebuffer","hidden":true}
void main() {
vec2 texCoord = v_TexCoord;
#if CLAMP
texCoord = frac(texCoord);
#endif
gl_FragColor = texSample2D(g_Texture0, texCoord);
}
@@ -1,29 +0,0 @@
// [COMBO] {"material":"Mode","combo":"MODE","type":"options","default":0,"options":{"Vertex":1,"UV":0}}
#include "common.h"
uniform mat4 g_ModelViewProjectionMatrix;
uniform float g_Time;
uniform float g_Speed; // {"material":"Speed","default":1.0,"range":[-5,5]}
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec2 v_TexCoord;
void main() {
vec3 position = a_Position;
#if MODE == 1
position.xy = rotateVec2(position.xy - CAST2(0.5), g_Speed * g_Time) + CAST2(0.5);
#endif
gl_Position = mul(vec4(position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord = a_TexCoord;
#if MODE == 0
v_TexCoord = rotateVec2(v_TexCoord - CAST2(0.5), g_Speed * g_Time) + CAST2(0.5);
#endif
}
@@ -1,14 +0,0 @@
// [COMBO] {"material":"Repeat","combo":"CLAMP","type":"options","default":0}
varying vec2 v_TexCoord;
uniform sampler2D g_Texture0; // {"material":"Framebuffer","hidden":true}
void main() {
vec2 texCoord = v_TexCoord;
#if CLAMP
texCoord = frac(texCoord);
#endif
gl_FragColor = texSample2D(g_Texture0, texCoord);
}
@@ -1,35 +0,0 @@
// [COMBO] {"material":"Mode","combo":"MODE","type":"options","default":0,"options":{"Vertex":1,"UV":0}}
#include "common.h"
uniform mat4 g_ModelViewProjectionMatrix;
uniform vec2 g_Offset; // {"material":"Offset","default":"0 0"}
uniform vec2 g_Scale; // {"material":"Scale","default":"1 1"}
uniform float g_Direction; // {"material":"Angle","default":0,"range":[0,6.28]}
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec2 v_TexCoord;
vec2 applyFx(vec2 v) {
v = rotateVec2(v - CAST2(0.5), g_Direction);
return (v + g_Offset) * g_Scale + CAST2(0.5);
}
void main() {
vec3 position = a_Position;
#if MODE == 1
position.xy = applyFx(position.xy);
#endif
gl_Position = mul(vec4(position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord = a_TexCoord;
#if MODE == 0
v_TexCoord = applyFx(v_TexCoord);
#endif
}
@@ -1,4 +0,0 @@
{
"name": "FX Preview",
"type": "scene2d"
}
@@ -1,127 +0,0 @@
// [COMBO] {"material":"ui_editor_properties_blend_mode","combo":"BLENDMODE","type":"imageblending","default":2}
// [COMBO] {"material":"ui_editor_properties_transform","combo":"TRANSFORMUV","type":"options","default":0}
// [COMBO] {"material":"ui_editor_properties_transform_repeat","combo":"TRANSFORMREPEAT","type":"options","default":0,"options":{"ui_editor_properties_clip":0,"ui_editor_properties_repeat":1,"ui_editor_properties_clamp_uvs":2},"require":{"TRANSFORMUV":1}}
// [COMBO] {"material":"ui_editor_properties_write_alpha","combo":"WRITEALPHA","type":"options","default":0}
// [COMBO] {"material":"ui_editor_properties_number_of_textures","combo":"NUMBLENDTEXTURES","type":"options","default":1,"options":{"1":1,"2":2,"3":3,"4":4,"5":5,"6":6}}
#include "common_blending.h"
varying vec4 v_TexCoord;
#if NUMBLENDTEXTURES >= 2
varying vec4 v_TexCoord23;
#endif
#if NUMBLENDTEXTURES >= 4
varying vec4 v_TexCoord45;
#endif
#if NUMBLENDTEXTURES >= 6
varying vec2 v_TexCoord6;
#endif
uniform float g_Multiply; // {"material":"multiply","label":"ui_editor_properties_blend_amount","default":1,"range":[0.0, 2.0]}
uniform float g_Multiply2; // {"material":"multiply2","label":"ui_editor_properties_blend_amount_2","default":1,"range":[0.0, 2.0]}
uniform float g_Multiply3; // {"material":"multiply3","label":"ui_editor_properties_blend_amount_3","default":1,"range":[0.0, 2.0]}
uniform float g_Multiply4; // {"material":"multiply4","label":"ui_editor_properties_blend_amount_4","default":1,"range":[0.0, 2.0]}
uniform float g_Multiply5; // {"material":"multiply5","label":"ui_editor_properties_blend_amount_5","default":1,"range":[0.0, 2.0]}
uniform float g_Multiply6; // {"material":"multiply6","label":"ui_editor_properties_blend_amount_6","default":1,"range":[0.0, 2.0]}
uniform float g_AlphaMultiply; // {"material":"alpha","label":"ui_editor_properties_alpha","default":1,"range":[0.0, 1.0]}
#if OPACITYMASK == 1
varying vec2 v_TexCoordOpacity;
#endif
uniform sampler2D g_Texture0; // {"hidden":true}
uniform sampler2D g_Texture7; // {"label":"ui_editor_properties_opacity_mask","mode":"opacitymask","default":"util/white","combo":"OPACITYMASK","paintdefaultcolor":"0 0 0 1"}
uniform sampler2D g_Texture1; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
#if NUMBLENDTEXTURES >= 2
uniform sampler2D g_Texture2; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
#endif
#if NUMBLENDTEXTURES >= 3
uniform sampler2D g_Texture3; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
#endif
#if NUMBLENDTEXTURES >= 4
uniform sampler2D g_Texture4; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
#endif
#if NUMBLENDTEXTURES >= 5
uniform sampler2D g_Texture5; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
#endif
#if NUMBLENDTEXTURES >= 6
uniform sampler2D g_Texture6; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
#endif
float GetUVBlend(vec2 uv)
{
#if TRANSFORMUV == 1 && TRANSFORMREPEAT == 0
return step(0.99, dot(step(CAST2(0.0), uv) * step(uv, CAST2(1.0)), CAST2(0.5)));
#endif
return 1.0;
}
void main() {
vec4 albedo = texSample2D(g_Texture0, v_TexCoord.xy);
vec2 blendUV = v_TexCoord.zw;
#if TRANSFORMUV == 1 && TRANSFORMREPEAT == 1
blendUV = frac(blendUV);
#endif
vec4 blendColors = texSample2D(g_Texture1, blendUV);
float blend = 1.0;
#if OPACITYMASK == 1
blend *= texSample2D(g_Texture7, v_TexCoordOpacity).r;
#endif
float blendAlpha = GetUVBlend(blendUV) * blend * g_Multiply * blendColors.a;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, blendAlpha);
#if NUMBLENDTEXTURES >= 2
blendUV = frac(v_TexCoord23.xy);
blendColors = texSample2D(g_Texture2, blendUV);
blendAlpha *= blendColors.a * g_Multiply2;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, GetUVBlend(blendUV) * blend * g_Multiply2 * blendColors.a);
#endif
#if NUMBLENDTEXTURES >= 3
blendUV = frac(v_TexCoord23.zw);
blendColors = texSample2D(g_Texture3, blendUV);
blendAlpha *= blendColors.a * g_Multiply3;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, GetUVBlend(blendUV) * blend * g_Multiply3 * blendColors.a);
#endif
#if NUMBLENDTEXTURES >= 4
blendUV = frac(v_TexCoord45.xy);
blendColors = texSample2D(g_Texture4, blendUV);
blendAlpha *= blendColors.a * g_Multiply4;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, GetUVBlend(blendUV) * blend * g_Multiply4 * blendColors.a);
#endif
#if NUMBLENDTEXTURES >= 5
blendUV = frac(v_TexCoord45.zw);
blendColors = texSample2D(g_Texture5, blendUV);
blendAlpha *= blendColors.a * g_Multiply5;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, GetUVBlend(blendUV) * blend * g_Multiply5 * blendColors.a);
#endif
#if NUMBLENDTEXTURES >= 6
blendUV = frac(v_TexCoord6.xy);
blendColors = texSample2D(g_Texture6, blendUV);
blendAlpha *= blendColors.a * g_Multiply6;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, GetUVBlend(blendUV) * blend * g_Multiply6 * blendColors.a);
#endif
#if WRITEALPHA
albedo.a = blendColors.a * g_AlphaMultiply;
#endif
gl_FragColor = albedo;
}
@@ -1,91 +0,0 @@
#include "common.h"
uniform mat4 g_ModelViewProjectionMatrix;
uniform vec4 g_Texture1Resolution;
uniform vec4 g_Texture2Resolution;
uniform vec4 g_Texture3Resolution;
uniform vec4 g_Texture4Resolution;
uniform vec4 g_Texture5Resolution;
uniform vec4 g_Texture6Resolution;
#if OPACITYMASK == 1
uniform vec4 g_Texture7Resolution;
varying vec2 v_TexCoordOpacity;
#endif
#if TRANSFORMUV == 1
uniform vec4 g_Texture0Resolution;
#endif
uniform vec2 g_BlendOffset; // {"material":"blendoffset","label":"ui_editor_properties_offset","default":"0 0"}
uniform float g_BlendAngle; // {"material":"blendangle","label":"ui_editor_properties_angle","default":0,"range":[0,6.28]}
uniform float g_BlendScale; // {"material":"blendscale","label":"ui_editor_properties_scale","default":1,"range":[0.01,2]}
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec4 v_TexCoord;
#if NUMBLENDTEXTURES >= 2
varying vec4 v_TexCoord23;
#endif
#if NUMBLENDTEXTURES >= 4
varying vec4 v_TexCoord45;
#endif
#if NUMBLENDTEXTURES >= 6
varying vec2 v_TexCoord6;
#endif
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord.xy = a_TexCoord;
v_TexCoord.zw = vec2(v_TexCoord.x * g_Texture1Resolution.z / g_Texture1Resolution.x,
v_TexCoord.y * g_Texture1Resolution.w / g_Texture1Resolution.y);
#if NUMBLENDTEXTURES >= 2
v_TexCoord23.xy = vec2(v_TexCoord.x * g_Texture2Resolution.z / g_Texture2Resolution.x,
v_TexCoord.y * g_Texture2Resolution.w / g_Texture2Resolution.y);
v_TexCoord23.zw = CAST2(0.0);
#endif
#if NUMBLENDTEXTURES >= 3
v_TexCoord23.zw = vec2(v_TexCoord.x * g_Texture3Resolution.z / g_Texture3Resolution.x,
v_TexCoord.y * g_Texture3Resolution.w / g_Texture3Resolution.y);
#endif
#if NUMBLENDTEXTURES >= 4
v_TexCoord45.xy = vec2(v_TexCoord.x * g_Texture4Resolution.z / g_Texture4Resolution.x,
v_TexCoord.y * g_Texture4Resolution.w / g_Texture4Resolution.y);
v_TexCoord45.zw = CAST2(0.0);
#endif
#if NUMBLENDTEXTURES >= 5
v_TexCoord45.zw = vec2(v_TexCoord.x * g_Texture5Resolution.z / g_Texture5Resolution.x,
v_TexCoord.y * g_Texture5Resolution.w / g_Texture5Resolution.y);
#endif
#if NUMBLENDTEXTURES >= 6
v_TexCoord6.xy = vec2(v_TexCoord.x * g_Texture6Resolution.z / g_Texture6Resolution.x,
v_TexCoord.y * g_Texture6Resolution.w / g_Texture6Resolution.y);
#endif
#if TRANSFORMUV == 1
vec2 scaleA = g_Texture0Resolution.zw / g_Texture1Resolution.zw;
//vec2 scaleB = g_Texture0Resolution.wz / g_Texture1Resolution.wz;
//vec2 dir = abs(rotateVec2(vec2(1, 0), g_BlendAngle));
v_TexCoord.zw -= (g_BlendOffset - (g_Texture0Resolution.zw - g_Texture1Resolution.zw) * 0.5) / g_Texture0Resolution.zw;
v_TexCoord.zw -= CAST2(0.5);
v_TexCoord.zw = rotateVec2(v_TexCoord.zw, g_BlendAngle);
// Too tired now to get this right, maybe look later at this again
//v_TexCoord.zw *= scaleA * dot(dir, vec2(1, 0)) + scaleB * dot(dir, vec2(0, 1));
//v_TexCoord.zw *= mix(scaleA, scaleB, abs(sin(g_BlendAngle))) / g_BlendScale;
v_TexCoord.zw *= scaleA / g_BlendScale;
//v_TexCoord.zw *= scaleA * abs(cos(g_BlendAngle)) + scaleB * abs(sin(g_BlendAngle));
v_TexCoord.zw += CAST2(0.5);
#endif
#if OPACITYMASK == 1
v_TexCoordOpacity = vec2(v_TexCoord.x * g_Texture7Resolution.z / g_Texture7Resolution.x,
v_TexCoord.y * g_Texture7Resolution.w / g_Texture7Resolution.y);
#endif
}
@@ -1,20 +0,0 @@
{
"version" : 1,
"replacementkey" : "blendgradient",
"name" : "ui_editor_effect_blend_gradient_title",
"description" : "ui_editor_effect_blend_gradient_description",
"group" : "colorize",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/blendgradient.json"
}
],
"dependencies" :
[
"materials/effects/blendgradient.json",
"shaders/effects/blendgradient.frag",
"shaders/effects/blendgradient.vert"
]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/blendgradient",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,20 +0,0 @@
{
"version" : 1,
"replacementkey" : "blendgradient",
"name" : "ui_editor_effect_blend_gradient_title",
"description" : "ui_editor_effect_blend_gradient_description",
"group" : "colorize",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/blendgradient.json"
}
],
"dependencies" :
[
"materials/effects/blendgradient.json",
"shaders/effects/blendgradient.frag",
"shaders/effects/blendgradient.vert"
]
}
@@ -1,20 +0,0 @@
{
"version" : 1,
"replacementkey" : "tint",
"name" : "ui_editor_effect_tint_title",
"description" : "ui_editor_effect_tint_description",
"group" : "colorize",
"preview" : "preview/project.json",
"passes" :
[
{
"material" : "materials/effects/tint.json"
}
],
"dependencies" :
[
"materials/effects/tint.json",
"shaders/effects/tint.frag",
"shaders/effects/tint.vert"
]
}
@@ -1,20 +0,0 @@
{
"version" : 1,
"replacementkey" : "vhs",
"name" : "ui_editor_effect_vhs_title",
"description" : "ui_editor_effect_vhs_description",
"group" : "colorize",
"preview" : "previewvhs/project.json",
"passes" :
[
{
"material" : "materials/effects/vhs.json"
}
],
"dependencies" :
[
"materials/effects/vhs.json",
"shaders/effects/vhs.frag",
"shaders/effects/vhs.vert"
]
}
@@ -1,13 +0,0 @@
{
"passes" :
[
{
"blending" : "translucent",
"cullmode" : "nocull",
"depthtest" : "disabled",
"depthwrite" : "disabled",
"shader" : "genericimage2",
"textures" : [ "effectpreview" ]
}
]
}
@@ -1,6 +0,0 @@
{
"clampuvs" : true,
"format" : "rgba8888",
"nomip" : true,
"nonpoweroftwo" : true
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/blendgradient",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/tint",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,9 +0,0 @@
{
"passes": [{
"shader": "effects/vhs",
"blending": "normal",
"depthtest": "disabled",
"depthwrite": "disabled",
"cullmode": "nocull"
}]
}
@@ -1,4 +0,0 @@
{
"autosize" : true,
"material" : "materials/effectpreview.json"
}
@@ -1,19 +0,0 @@
{
"file" : "scene.json",
"general" :
{
"properties" :
{
"schemecolor" :
{
"order" : 0,
"text" : "ui_browse_properties_scheme_color",
"type" : "color",
"value" : "0 0 0"
}
}
},
"title" : "preview",
"type" : "scene",
"version" : 0
}
@@ -1,213 +0,0 @@
{
"camera" :
{
"center" : "0.00000 0.00000 -1.00000",
"eye" : "0.00000 0.00000 0.00000",
"up" : "0.00000 1.00000 0.00000"
},
"general" :
{
"ambientcolor" : "0.30000 0.30000 0.30000",
"bloom" : false,
"bloomhdrfeather" : 0.1,
"bloomhdriterations" : 8,
"bloomhdrscatter" : 1.619,
"bloomhdrstrength" : 2.0,
"bloomhdrthreshold" : 1.0,
"bloomstrength" : 2.0,
"bloomthreshold" : 0.64999998,
"camerafade" : true,
"cameraparallax" : false,
"cameraparallaxamount" : 0.5,
"cameraparallaxdelay" : 0.1,
"cameraparallaxmouseinfluence" : 0.0,
"camerapreview" : true,
"camerashake" : false,
"camerashakeamplitude" : 0.5,
"camerashakeroughness" : 1.0,
"camerashakespeed" : 3.0,
"clearcolor" : "0.70000 0.70000 0.70000",
"clearenabled" : true,
"farz" : 10000.0,
"fov" : 50.0,
"hdr" : false,
"nearz" : 0.0099999998,
"orthogonalprojection" :
{
"height" : 256,
"width" : 256
},
"skylightcolor" : "0.30000 0.30000 0.30000",
"zoom" : 1.0
},
"objects" :
[
{
"alignment" : "center",
"alpha" : 1.0,
"angles" : "0.00000 0.00000 0.00000",
"brightness" : 1.0,
"color" : "1.00000 1.00000 1.00000",
"colorBlendMode" : 0,
"copybackground" : true,
"effects" :
[
{
"file" : "effects/tint/effect.json",
"id" : 28,
"name" : "",
"passes" :
[
{
"constantshadervalues" :
{
"alpha" : 1.0,
"color" : "1 0 0"
},
"id" : 29
}
],
"visible" : true
},
{
"file" : "effects/vhs/effect.json",
"id" : 35,
"name" : "",
"passes" :
[
{
"constantshadervalues" :
{
"artifacts" : 3,
"chromatic" : 0,
"distortionspeed" : 2,
"distortionstrength" : 10,
"distortionwidth" : 2,
"scale" : 0.03,
"strength" : 2
},
"id" : 36,
"textures" : [ null, "util/noise" ]
}
],
"visible" : true
}
],
"id" : 26,
"image" : "models/effectpreview.json",
"ledsource" : false,
"locktransforms" : false,
"name" : "effectpreview",
"origin" : "128.00000 128.00000 0.00000",
"parallaxDepth" : "1.00000 1.00000",
"perspective" : false,
"scale" : "1.00000 1.00000 1.00000",
"size" : "256.00000 256.00000",
"solid" : true,
"visible" : false
},
{
"alignment" : "center",
"alpha" : 1.0,
"angles" : "0.00000 0.00000 0.00000",
"brightness" : 1.0,
"color" : "1.00000 1.00000 1.00000",
"colorBlendMode" : 0,
"copybackground" : true,
"dependencies" : [ 26 ],
"depth" : 1,
"effects" :
[
{
"file" : "effects/blendgradient/effect.json",
"id" : 18,
"name" : "",
"passes" :
[
{
"combos" :
{
"EDGEGLOW" : 1
},
"constantshadervalues" :
{
"edgebrightness" : 1.0,
"edgecolor" : "0 0 0",
"gradientscale" : 0.05,
"multiply" :
{
"animation" :
{
"c0" :
[
{
"back" :
{
"enabled" : true,
"x" : -1,
"y" : 0
},
"frame" : 0,
"front" :
{
"enabled" : true,
"x" : 1,
"y" : 0
},
"lockangle" : true,
"locklength" : true,
"value" : 1
},
{
"back" :
{
"enabled" : true,
"x" : -1,
"y" : 0
},
"frame" : 30,
"front" :
{
"enabled" : true,
"x" : 1,
"y" : 0
},
"lockangle" : true,
"locklength" : true,
"value" : 0
}
],
"options" :
{
"fps" : 15,
"length" : 30,
"mode" : "mirror",
"wraploop" : null
}
},
"value" : 1
}
},
"id" : 19,
"textures" : [ null, "_rt_imageLayerComposite_26_a", "util/clouds_256" ]
}
],
"visible" : true
}
],
"id" : 38,
"image" : "models/effectpreview.json",
"ledsource" : false,
"locktransforms" : false,
"name" : "",
"origin" : "128.00000 128.00000 0.00000",
"parallaxDepth" : "1.00000 1.00000",
"perspective" : false,
"scale" : "1.00000 1.00000 1.00000",
"size" : "256.00000 256.00000",
"solid" : true,
"visible" : true
}
],
"version" : 0
}
@@ -1,75 +0,0 @@
// [COMBO] {"material":"ui_editor_properties_blend_mode","combo":"BLENDMODE","type":"imageblending","default":0}
// [COMBO] {"material":"ui_editor_properties_transform","combo":"TRANSFORMUV","type":"options","default":0}
// [COMBO] {"material":"ui_editor_properties_transform_repeat","combo":"TRANSFORMREPEAT","type":"options","default":0,"options":{"ui_editor_properties_clip":0,"ui_editor_properties_repeat":1,"ui_editor_properties_clamp_uvs":2}}
// [COMBO] {"material":"ui_editor_properties_write_alpha","combo":"WRITEALPHA","type":"options","default":0}
// [COMBO] {"material":"ui_editor_properties_edge_glow","combo":"EDGEGLOW","type":"options","default":0}
#include "common_blending.h"
varying vec4 v_TexCoord;
uniform float g_Multiply; // {"material":"multiply","label":"ui_editor_properties_blend_amount","default":1,"range":[0.0, 1.0]}
uniform float g_GradientScale; // {"material":"gradientscale","label":"ui_editor_properties_gradient_scale","default":0.05,"range":[0.01, 0.25]}
uniform float g_AlphaMultiply; // {"material":"alpha","label":"ui_editor_properties_alpha","default":1,"range":[0.0, 1.0]}
uniform float g_EdgeBrightness; // {"material":"edgebrightness","label":"ui_editor_properties_edge_brightness","default":1,"range":[0.0, 5.0]}
uniform vec3 g_EdgeColor; // {"material":"edgecolor","label":"ui_editor_properties_edge_color","default":"1 0.75 0","type":"color"}
#if OPACITYMASK == 1
varying vec2 v_TexCoordOpacity;
#endif
uniform sampler2D g_Texture0; // {"hidden":true}
uniform sampler2D g_Texture1; // {"label":"ui_editor_properties_blend_texture","mode":"rgbmask","default":"util/white"}
uniform sampler2D g_Texture2; // {"label":"ui_editor_properties_gradient_mask","mode":"opacitymask","default":"util/clouds_256","paintdefaultcolor":"0 0 0 1"}
uniform sampler2D g_Texture3; // {"label":"ui_editor_properties_opacity_mask","mode":"opacitymask","default":"util/white","combo":"OPACITYMASK","paintdefaultcolor":"0 0 0 1"}
float GetUVBlend(vec2 uv)
{
#if TRANSFORMUV == 1 && TRANSFORMREPEAT == 0
return step(0.99, dot(step(CAST2(0.0), uv) * step(uv, CAST2(1.0)), CAST2(0.5)));
#endif
return 1.0;
}
void main() {
vec4 albedo = texSample2D(g_Texture0, v_TexCoord.xy);
vec2 blendUV = v_TexCoord.zw;
#if TRANSFORMUV == 1 && TRANSFORMREPEAT == 1
blendUV = frac(blendUV);
#endif
vec4 blendColors = texSample2D(g_Texture1, blendUV);
float blend = 1.0;
float gradient = texSample2D(g_Texture2, blendUV).r;
blend = smoothstep(saturate(gradient - g_GradientScale), saturate(gradient + g_GradientScale), g_Multiply);
#if OPACITYMASK == 1
float mask = texSample2D(g_Texture3, v_TexCoordOpacity).r;
blend *= mask;
#endif
float blendAlpha = GetUVBlend(blendUV) * blend * blendColors.a;
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, blendColors.rgb, blendAlpha);
#if EDGEGLOW
float burnWidth = g_GradientScale * 0.5;
float burnAmount = step(gradient - burnWidth, g_Multiply) *
step(g_Multiply, gradient + burnWidth) *
step(0.01, g_Multiply) *
step(g_Multiply, 0.999);
#if OPACITYMASK == 1
burnAmount *= mask;
#endif
albedo.rgb = max(CAST3(0.0), mix(albedo.rgb, g_EdgeColor, burnAmount * g_EdgeBrightness));
#endif
#if WRITEALPHA
albedo.a = blendColors.a * g_AlphaMultiply;
#endif
gl_FragColor = albedo;
}
@@ -1,52 +0,0 @@
#include "common.h"
uniform mat4 g_ModelViewProjectionMatrix;
uniform vec4 g_Texture1Resolution;
uniform vec4 g_Texture2Resolution;
uniform vec4 g_Texture3Resolution;
uniform vec4 g_Texture4Resolution;
uniform vec4 g_Texture5Resolution;
uniform vec4 g_Texture6Resolution;
#if OPACITYMASK == 1
uniform vec4 g_Texture7Resolution;
varying vec2 v_TexCoordOpacity;
#endif
#if TRANSFORMUV == 1
uniform vec4 g_Texture0Resolution;
#endif
uniform vec2 g_BlendOffset; // {"material":"blendoffset","label":"ui_editor_properties_offset","default":"0 0"}
uniform float g_BlendAngle; // {"material":"blendangle","label":"ui_editor_properties_angle","default":0,"range":[0,6.28]}
uniform float g_BlendScale; // {"material":"blendscale","label":"ui_editor_properties_scale","default":1,"range":[0.01,2]}
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec4 v_TexCoord;
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord.xy = a_TexCoord;
v_TexCoord.zw = vec2(v_TexCoord.x * g_Texture1Resolution.z / g_Texture1Resolution.x,
v_TexCoord.y * g_Texture1Resolution.w / g_Texture1Resolution.y);
#if TRANSFORMUV == 1
vec2 scaleA = g_Texture0Resolution.zw / g_Texture1Resolution.zw;
v_TexCoord.zw -= (g_BlendOffset - (g_Texture0Resolution.zw - g_Texture1Resolution.zw) * 0.5) / g_Texture0Resolution.zw;
v_TexCoord.zw -= CAST2(0.5);
v_TexCoord.zw = rotateVec2(v_TexCoord.zw, g_BlendAngle);
v_TexCoord.zw *= scaleA / g_BlendScale;
v_TexCoord.zw += CAST2(0.5);
#endif
#if OPACITYMASK == 1
v_TexCoordOpacity = vec2(v_TexCoord.x * g_Texture7Resolution.z / g_Texture7Resolution.x,
v_TexCoord.y * g_Texture7Resolution.w / g_Texture7Resolution.y);
#endif
}
@@ -1,29 +0,0 @@
// [COMBO] {"material":"ui_editor_properties_blend_mode","combo":"BLENDMODE","type":"imageblending","default":30}
#include "common_blending.h"
varying vec4 v_TexCoord;
uniform sampler2D g_Texture0; // {"hidden":true}
uniform sampler2D g_Texture1; // {"label":"ui_editor_properties_opacity_mask","mode":"opacitymask","combo":"MASK","paintdefaultcolor":"0 0 0 1"}
uniform float g_BlendAlpha; // {"material":"alpha", "label":"ui_editor_properties_alpha","default":1,"range":[0,1]}
uniform vec3 g_TintColor; // {"material":"color", "label":"ui_editor_properties_color", "type": "color", "default":"1 0 0"}
void main() {
vec4 albedo = texSample2D(g_Texture0, v_TexCoord.xy);
float mask = g_BlendAlpha;
#if MASK
mask *= texSample2D(g_Texture1, v_TexCoord.zw).r;
#endif
albedo.rgb = ApplyBlending(BLENDMODE, albedo.rgb, g_TintColor, mask);
#if BLENDMODE == 0
albedo.a = 1.0;
#endif
gl_FragColor = albedo;
}
@@ -1,21 +0,0 @@
uniform mat4 g_ModelViewProjectionMatrix;
#if MASK
uniform vec4 g_Texture1Resolution;
#endif
attribute vec3 a_Position;
attribute vec2 a_TexCoord;
varying vec4 v_TexCoord;
void main() {
gl_Position = mul(vec4(a_Position, 1.0), g_ModelViewProjectionMatrix);
v_TexCoord = a_TexCoord.xyxy;
#if MASK
v_TexCoord.zw = vec2(v_TexCoord.x * g_Texture1Resolution.z / g_Texture1Resolution.x,
v_TexCoord.y * g_Texture1Resolution.w / g_Texture1Resolution.y);
#endif
}

Some files were not shown because too many files have changed in this diff Show More