Upload files to "/"
674
LICENSE
Normal file
|
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 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.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
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/licenses/why-not-lgpl.html>.
|
||||
48
README.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# 4rch-linux
|
||||
|
||||
4RCH linux is an Arch based linux distribution focused on minimalism while including Calamares installer.
|
||||
|
||||
# ISO PASSWORD
|
||||
|
||||
The ISO password is: 4rch
|
||||
|
||||
(Theres an password due to ezarch using password for some reason by default, this will change in the future)
|
||||
|
||||
# BINARY ISO available here
|
||||
|
||||
|
||||
|
||||
# BUILD THE ISO
|
||||
|
||||
```
|
||||
git clone --recurse-submodules https://github.com/M4RT1NDEV/4rch-linux
|
||||
|
||||
sudo pacman -Syu
|
||||
|
||||
sudo pacman -S --noconfirm archlinux-keyring
|
||||
|
||||
sudo pacman -S archiso mkinitcpio-archiso
|
||||
|
||||
sudo pacman -S --needed boost cmake extra-cmake-modules libpwquality qt5ct qt5-location qt5-svg qt5-webengine yaml-cpp hwinfo plasma-framework qt5-translations upower kcoreaddons kconfig kpmcore kservice kwidgetsaddons dmidecode doxygen kparts polkit-qt5 python qt5-tools qt5-xmlpatterns solid
|
||||
|
||||
cd 4rch-linux
|
||||
|
||||
sudo bash steps.sh
|
||||
```
|
||||
|
||||
And you should be able to find the iso in the out directory!
|
||||
|
||||
# EZARCH livegui template
|
||||
|
||||
4RCH linux live gui uses EZARCH lxqt template
|
||||
|
||||
template could be found here: https://www.mediafire.com/file/83yvkypwrviueq7/4rch-lxqt-Alpha-0_2-x86_64.iso/file
|
||||
|
||||
# Calamares Installer
|
||||
|
||||
4RCH linux uses calamares installer
|
||||
https://calamares.io/
|
||||
|
||||
EPIC ANIME SLIDESHOW
|
||||
|
||||
<img src="https://cdn.discordapp.com/attachments/989526772989177898/989576071282303077/unknown.png" width="75%" height="75%">
|
||||
6
efiboot/loader/entries/01-archiso-x86_64-linux.conf
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
title 4rch Linux (x86_64, UEFI)
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=4G
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
title 4rch Linux (x86_64, UEFI) with speech
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% accessibility=on cow_spacesize=4G
|
||||
2
efiboot/loader/loader.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
timeout 15
|
||||
default 01-archiso-x86_64-linux.conf
|
||||
2
etc/NetworkManager/conf.d/dns.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
[main]
|
||||
dns=systemd-resolved
|
||||
222
etc/calamares/branding/ezarcher/branding.desc
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Product branding information. This influences some global
|
||||
# user-visible aspects of Calamares, such as the product
|
||||
# name, window behavior, and the slideshow during installation.
|
||||
#
|
||||
# Additional styling can be done using the stylesheet.qss
|
||||
# file, also in the branding directory.
|
||||
---
|
||||
componentName: ezarcher
|
||||
|
||||
|
||||
### WELCOME / OVERALL WORDING
|
||||
#
|
||||
# These settings affect some overall phrasing and looks,
|
||||
# which are most visible in the welcome page.
|
||||
|
||||
# This selects between different welcome texts. When false, uses
|
||||
# the traditional "Welcome to the %1 installer.", and when true,
|
||||
# uses "Welcome to the Calamares installer for %1." This allows
|
||||
# to distinguish this installer from other installers for the
|
||||
# same distribution.
|
||||
welcomeStyleCalamares: false
|
||||
|
||||
# Should the welcome image (productWelcome, below) be scaled
|
||||
# up beyond its natural size? If false, the image does not grow
|
||||
# with the window but remains the same size throughout (this
|
||||
# may have surprising effects on HiDPI monitors).
|
||||
welcomeExpandingLogo: true
|
||||
|
||||
### WINDOW CONFIGURATION
|
||||
#
|
||||
# The settings here affect the placement of the Calamares
|
||||
# window through hints to the window manager and initial
|
||||
# sizing of the Calamares window.
|
||||
|
||||
# Size and expansion policy for Calamares.
|
||||
# - "normal" or unset, expand as needed, use *windowSize*
|
||||
# - "fullscreen", start as large as possible, ignore *windowSize*
|
||||
# - "noexpand", don't expand automatically, use *windowSize*
|
||||
windowExpanding: normal
|
||||
|
||||
# Size of Calamares window, expressed as w,h. Both w and h
|
||||
# may be either pixels (suffix px) or font-units (suffix em).
|
||||
# e.g. "800px,600px"
|
||||
# "60em,480px"
|
||||
# This setting is ignored if "fullscreen" is selected for
|
||||
# *windowExpanding*, above. If not set, use constants defined
|
||||
# in CalamaresUtilsGui, 800x520.
|
||||
windowSize: 800px,520px
|
||||
|
||||
# Placement of Calamares window. Either "center" or "free".
|
||||
# Whether "center" actually works does depend on the window
|
||||
# manager in use (and only makes sense if you're not using
|
||||
# *windowExpanding* set to "fullscreen").
|
||||
windowPlacement: center
|
||||
|
||||
### PANELS CONFIGURATION
|
||||
#
|
||||
# Calamares has a main content area, and two panels (navigation
|
||||
# and progress / sidebar). The panels can be controlled individually,
|
||||
# or switched off. If both panels are switched off, the layout of
|
||||
# the main content area loses its margins, on the assumption that
|
||||
# you're doing something special.
|
||||
|
||||
# Kind of sidebar (panel on the left, showing progress).
|
||||
# - "widget" or unset, use traditional sidebar (logo, items)
|
||||
# - "none", hide it entirely
|
||||
# - "qml", use calamares-sidebar.qml from branding folder
|
||||
# In addition, you **may** specify a side, separated by a comma,
|
||||
# from the kind. Valid sides are:
|
||||
# - "left" (if not specified, uses this)
|
||||
# - "right"
|
||||
# - "top"
|
||||
# - "bottom"
|
||||
# For instance, "widget,right" is valid; so is "qml", which defaults
|
||||
# to putting the sidebar on the left. Also valid is "qml,top".
|
||||
# While "widget,top" is valid, the widgets code is **not** flexible
|
||||
# and results will be terrible.
|
||||
sidebar: widget
|
||||
|
||||
# Kind of navigation (button panel on the bottom).
|
||||
# - "widget" or unset, use traditional navigation
|
||||
# - "none", hide it entirely
|
||||
# - "qml", use calamares-navigation.qml from branding folder
|
||||
# In addition, you **may** specify a side, separated by a comma,
|
||||
# from the kind. The same sides are valid as for *sidebar*,
|
||||
# except the default is *bottom*.
|
||||
navigation: widget
|
||||
|
||||
|
||||
### STRINGS, IMAGES AND COLORS
|
||||
#
|
||||
# This section contains the "branding proper" of names
|
||||
# and images, rather than global-look settings.
|
||||
|
||||
# These are strings shown to the user in the user interface.
|
||||
# There is no provision for translating them -- since they
|
||||
# are names, the string is included as-is.
|
||||
#
|
||||
# The four Url strings are the Urls used by the buttons in
|
||||
# the welcome screen, and are not shown to the user. Clicking
|
||||
# on the "Support" button, for instance, opens the link supportUrl.
|
||||
# If a Url is empty, the corresponding button is not shown.
|
||||
#
|
||||
# bootloaderEntryName is how this installation / distro is named
|
||||
# in the boot loader (e.g. in the GRUB menu).
|
||||
#
|
||||
# These strings support substitution from /etc/os-release
|
||||
# if KDE Frameworks 5.58 are available at build-time. When
|
||||
# enabled, @{var-name} is replaced by the equivalent value
|
||||
# from os-release. All the supported var-names are in all-caps,
|
||||
# and are listed on the FreeDesktop.org site,
|
||||
# https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
# Note that ANSI_COLOR and CPE_NAME don't make sense here, and
|
||||
# are not supported (the rest are). Remember to quote the string
|
||||
# if it contains substitutions, or you'll get YAML exceptions.
|
||||
#
|
||||
# The *Url* entries are used on the welcome page, and they
|
||||
# are visible as buttons there if the corresponding *show* keys
|
||||
# are set to "true" (they can also be overridden).
|
||||
strings:
|
||||
productName: "@{NAME}"
|
||||
shortProductName: 4RCH
|
||||
version: 2021
|
||||
shortVersion: 2021
|
||||
versionedName: 4RCH Linux
|
||||
shortVersionedName: 4RCH Linux
|
||||
bootloaderEntryName: 4RCH Linux
|
||||
productUrl: https://sourceforge.net/projects/ezarch/
|
||||
# supportUrl: https://sourceforge.net/projects/ezarch/
|
||||
# knownIssuesUrl: https://sourceforge.net/projects/ezarch/
|
||||
# releaseNotesUrl: https://sourceforge.net/projects/ezarch/
|
||||
# donateUrl: https://sourceforge.net/projects/ezarch/
|
||||
|
||||
# These images are loaded from the branding module directory.
|
||||
#
|
||||
# productBanner is an optional image, which if present, will be shown
|
||||
# on the welcome page of the application, above the welcome text.
|
||||
# It is intended to have a width much greater than height.
|
||||
# It is displayed at 64px height (also on HiDPI).
|
||||
# Recommended size is 64px tall, and up to 460px wide.
|
||||
# productIcon is used as the window icon, and will (usually) be used
|
||||
# by the window manager to represent the application. This image
|
||||
# should be square, and may be displayed by the window manager
|
||||
# as small as 16x16 (but possibly larger).
|
||||
# productLogo is used as the logo at the top of the left-hand column
|
||||
# which shows the steps to be taken. The image should be square,
|
||||
# and is displayed at 80x80 pixels (also on HiDPI).
|
||||
# productWallpaper is an optional image, which if present, will replace
|
||||
# the normal solid background on every page of the application.
|
||||
# It can be any size and proportion,
|
||||
# and will be tiled to fit the entire window.
|
||||
# For a non-tiled wallpaper, the size should be the same as
|
||||
# the overall window, see *windowSize* above (800x520).
|
||||
# productWelcome is shown on the welcome page of the application in
|
||||
# the middle of the window, below the welcome text. It can be
|
||||
# any size and proportion, and will be scaled to fit inside
|
||||
# the window. Use `welcomeExpandingLogo` to make it non-scaled.
|
||||
# Recommended size is 320x150.
|
||||
#
|
||||
# These filenames can also use substitutions from os-release (see above).
|
||||
images:
|
||||
# productBanner: "banner.png"
|
||||
productIcon: "squid.png"
|
||||
productLogo: "logo.png"
|
||||
productWallpaper: "wallpaper.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
# Colors for text and background components.
|
||||
#
|
||||
# - sidebarBackground is the background of the sidebar
|
||||
# - sidebarText is the (foreground) text color
|
||||
# - sidebarTextHighlight sets the background of the selected (current) step.
|
||||
# Optional, and defaults to the application palette.
|
||||
# - sidebarSelect is the text color of the selected step.
|
||||
#
|
||||
# These colors can **also** be set through the stylesheet, if the
|
||||
# branding component also ships a stylesheet.qss. Then they are
|
||||
# the corresponding CSS attributes of #sidebarApp.
|
||||
style:
|
||||
sidebarBackground: "#292F34"
|
||||
sidebarText: "#FFFFFF"
|
||||
sidebarTextSelect: "#292F34"
|
||||
sidebarTextHighlight: "#D35400"
|
||||
|
||||
### SLIDESHOW
|
||||
#
|
||||
# The slideshow is displayed during execution steps (e.g. when the
|
||||
# installer is actually writing to disk and doing other slow things).
|
||||
|
||||
# The slideshow can be a QML file (recommended) which can display
|
||||
# arbitrary things -- text, images, animations, or even play a game --
|
||||
# during the execution step. The QML **is** abruptly stopped when the
|
||||
# execution step is done, though, so maybe a game isn't a great idea.
|
||||
#
|
||||
# The slideshow can also be a sequence of images (not recommended unless
|
||||
# you don't want QML at all in your Calamares). The images are displayed
|
||||
# at a rate of 1 every 2 seconds during the execution step.
|
||||
#
|
||||
# To configure a QML file, list a single filename:
|
||||
# slideshow: "show.qml"
|
||||
# To configure images, like the filenames (here, as an inline list):
|
||||
# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ]
|
||||
slideshow: "show.qml"
|
||||
|
||||
# There are two available APIs for a QML slideshow:
|
||||
# - 1 (the default) loads the entire slideshow when the installation-
|
||||
# slideshow page is shown and starts the QML then. The QML
|
||||
# is never stopped (after installation is done, times etc.
|
||||
# continue to fire).
|
||||
# - 2 loads the slideshow on startup and calls onActivate() and
|
||||
# onLeave() in the root object. After the installation is done,
|
||||
# the show is stopped (first by calling onLeave(), then destroying
|
||||
# the QML components).
|
||||
#
|
||||
# An image slideshow does not need to have the API defined.
|
||||
slideshowAPI: 2
|
||||
|
||||
|
||||
BIN
etc/calamares/branding/ezarcher/lang/calamares-default_ar.qm
Normal file
BIN
etc/calamares/branding/ezarcher/lang/calamares-default_en.qm
Normal file
BIN
etc/calamares/branding/ezarcher/lang/calamares-default_eo.qm
Normal file
BIN
etc/calamares/branding/ezarcher/lang/calamares-default_fr.qm
Normal file
BIN
etc/calamares/branding/ezarcher/lang/calamares-default_nl.qm
Normal file
BIN
etc/calamares/branding/ezarcher/languages.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
2
etc/calamares/branding/ezarcher/languages.png.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
BIN
etc/calamares/branding/ezarcher/languages.png~
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
etc/calamares/branding/ezarcher/logo.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
etc/calamares/branding/ezarcher/logo.png~
Normal file
|
After Width: | Height: | Size: 33 KiB |
121
etc/calamares/branding/ezarcher/show.qml
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares 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.
|
||||
*
|
||||
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* 4RCH custom settings
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
Timer {
|
||||
id: advanceTimer
|
||||
interval: 30000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
|
||||
Image {
|
||||
id: background1
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 165
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("<b>Welcome to 4RCH Linux, an Arch based Linux<br/>")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
Image {
|
||||
id: background2
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 163
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("<b>4RCH aims to be minimal but simple arch based distribution<br/>")
|
||||
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Slide {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenterOffset: 0
|
||||
|
||||
Image {
|
||||
id: background4
|
||||
source: "slide1.png"
|
||||
width: parent.width; height: parent.height
|
||||
horizontalAlignment: Image.AlignCenter
|
||||
verticalAlignment: Image.AlignTop
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: 165
|
||||
anchors.horizontalCenterOffset: 0
|
||||
font.pixelSize: parent.width *.020
|
||||
color: 'white'
|
||||
text: qsTr("")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width / 1.4
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: advanceTimer.running = true
|
||||
}
|
||||
|
||||
BIN
etc/calamares/branding/ezarcher/slide1.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
etc/calamares/branding/ezarcher/slide1.png~
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
etc/calamares/branding/ezarcher/squid.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
2
etc/calamares/branding/ezarcher/squid.png.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2014 Teo Mrnjavac <teo@kde.org>
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
92
etc/calamares/branding/ezarcher/stylesheet.qss
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
|
||||
A branding component can ship a stylesheet (like this one)
|
||||
which is applied to parts of the Calamares user-interface.
|
||||
In principle, all parts can be styled through CSS.
|
||||
Missing parts should be filed as issues.
|
||||
|
||||
The IDs are based on the object names in the C++ code.
|
||||
You can use the Debug Dialog to find out object names:
|
||||
- Open the debug dialog
|
||||
- Choose tab *Tools*
|
||||
- Click *Widget Tree* button
|
||||
The list of object names is printed in the log.
|
||||
|
||||
Documentation for styling Qt Widgets through a stylesheet
|
||||
can be found at
|
||||
https://doc.qt.io/qt-5/stylesheet-examples.html
|
||||
https://doc.qt.io/qt-5/stylesheet-reference.html
|
||||
In Calamares, styling widget classes is supported (e.g.
|
||||
using `QComboBox` as a selector).
|
||||
|
||||
This example stylesheet has all the actual styling commented out.
|
||||
The examples are not exhaustive.
|
||||
|
||||
*/
|
||||
|
||||
/*** Generic Widgets.
|
||||
*
|
||||
* You can style **all** widgets of a given class by selecting
|
||||
* the class name. Some widgets have specialized sub-selectors.
|
||||
*/
|
||||
|
||||
/*
|
||||
QPushButton { background-color: green; }
|
||||
*/
|
||||
|
||||
/*** Main application window.
|
||||
*
|
||||
* The main application window has the sidebar, which in turn
|
||||
* contains a logo and a list of items -- note that the list
|
||||
* can **not** be styled, since it has its own custom C++
|
||||
* delegate code.
|
||||
*/
|
||||
|
||||
/*
|
||||
#mainApp { }
|
||||
#sidebarApp { }
|
||||
#logoApp { }
|
||||
*/
|
||||
|
||||
/*** Welcome module.
|
||||
*
|
||||
* There are plenty of parts, but the buttons are the most interesting
|
||||
* ones (donate, release notes, ...). The little icon image can be
|
||||
* styled through *qproperty-icon*, which is a little obscure.
|
||||
* URLs can reference the QRC paths of the Calamares application
|
||||
* or loaded via plugins or within the filesystem. There is no
|
||||
* comprehensive list of available icons, though.
|
||||
*/
|
||||
|
||||
/*
|
||||
QPushButton#aboutButton { qproperty-icon: url(:/data/images/release.svg); }
|
||||
#donateButton,
|
||||
#supportButton,
|
||||
#releaseNotesButton,
|
||||
#knownIssuesButton { qproperty-icon: url(:/data/images/help.svg); }
|
||||
*/
|
||||
|
||||
/*** Partitioning module.
|
||||
*
|
||||
* Many moving parts, which you will need to experiment with.
|
||||
*/
|
||||
|
||||
/*
|
||||
#bootInfoIcon { }
|
||||
#bootInfoLable { }
|
||||
#deviceInfoIcon { }
|
||||
#defineInfoLabel { }
|
||||
#scrollAreaWidgetContents { }
|
||||
#partitionBarView { }
|
||||
*/
|
||||
|
||||
/*** Licensing module.
|
||||
*
|
||||
* The licensing module paints individual widgets for each of
|
||||
* the licenses. The item can be collapsed or expanded.
|
||||
*/
|
||||
|
||||
/*
|
||||
#licenseItem { }
|
||||
#licenseItemFullText { }
|
||||
*/
|
||||
BIN
etc/calamares/branding/ezarcher/wallpaper.png
Normal file
|
After Width: | Height: | Size: 1,013 KiB |
BIN
etc/calamares/branding/ezarcher/wallpaper.png~
Normal file
|
After Width: | Height: | Size: 1,015 KiB |
22
etc/calamares/modules/bootloader.conf
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the bootloader module.
|
||||
#
|
||||
---
|
||||
|
||||
efiBootLoader: "grub"
|
||||
|
||||
kernel: "/vmlinuz-linux"
|
||||
img: "/initramfs-linux.img"
|
||||
fallback: "/initramfs-linux-fallback.img"
|
||||
timeout: "10"
|
||||
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "grub-probe"
|
||||
efiBootMgr: "efibootmgr"
|
||||
|
||||
installEFIFallback: true
|
||||
15
etc/calamares/modules/displaymanager.conf
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the displaymanager module.
|
||||
#
|
||||
---
|
||||
|
||||
displaymanagers:
|
||||
- sddm
|
||||
- lightdm
|
||||
|
||||
basicSetup: false
|
||||
|
||||
sysconfigSetup: false
|
||||
20
etc/calamares/modules/fstab.conf
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the fstab module.
|
||||
#
|
||||
---
|
||||
|
||||
mountOptions:
|
||||
default: defaults,noatime
|
||||
btrfs: defaults,noatime,noautodefrag
|
||||
btrfs_swap: defaults
|
||||
|
||||
efiMountOptions: umask=0077
|
||||
|
||||
ssdExtraMountOptions:
|
||||
btrfs: ssd
|
||||
|
||||
crypttabOptions: luks
|
||||
|
||||
20
etc/calamares/modules/grubcfg.conf
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the grugcfg module.
|
||||
#
|
||||
---
|
||||
|
||||
overwrite: false
|
||||
|
||||
prefer_grub_d: false
|
||||
|
||||
keepDistributor: false
|
||||
|
||||
defaults:
|
||||
GRUB_TIMEOUT: 5
|
||||
GRUB_DEFAULT: "saved"
|
||||
GRUB_DISABLE_SUBMENU: true
|
||||
GRUB_TERMINAL_OUTPUT: "console"
|
||||
GRUB_DISABLE_RECOVERY: true
|
||||
11
etc/calamares/modules/initcpio.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the initcpio module.
|
||||
#
|
||||
---
|
||||
|
||||
kernel: linux
|
||||
|
||||
be_unsafe: false
|
||||
11
etc/calamares/modules/keyboard.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the keyboard module.
|
||||
#
|
||||
---
|
||||
|
||||
xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
|
||||
|
||||
convertedKeymapPath: "/lib/kbd/keymaps/xkb"
|
||||
15
etc/calamares/modules/locale.conf
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the locale module.
|
||||
#
|
||||
---
|
||||
|
||||
region: ""
|
||||
zone: ""
|
||||
|
||||
geoip:
|
||||
style: "json"
|
||||
url: "https://geoip.kde.org/v1/calamares"
|
||||
selector: "" # leave blank for the default
|
||||
19
etc/calamares/modules/machineid.conf
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Machine-ID and other random data on the target system.
|
||||
#
|
||||
---
|
||||
|
||||
systemd: true
|
||||
|
||||
dbus: true
|
||||
|
||||
dbus-symlink: true
|
||||
|
||||
entropy-copy: false
|
||||
|
||||
entropy-files:
|
||||
- /var/lib/urandom/random-seed
|
||||
- /var/lib/systemd/random-seed
|
||||
39
etc/calamares/modules/mount.conf
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the mount module.
|
||||
#
|
||||
---
|
||||
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: bind
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: bind
|
||||
|
||||
extraMountsEfi:
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
|
||||
btrfsSubvolumes:
|
||||
- mountPoint: /
|
||||
subvolume: /@
|
||||
- mountPoint: /home
|
||||
subvolume: /@home
|
||||
- mountPoint: /var/cache
|
||||
subvolume: /@cache
|
||||
- mountPoint: /var/log
|
||||
subvolume: /@log
|
||||
18
etc/calamares/modules/packages.conf
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# The configuration for the packages module.
|
||||
#
|
||||
---
|
||||
|
||||
backend: pacman
|
||||
|
||||
skip_if_no_internet: false
|
||||
update_db: false
|
||||
update_system: false
|
||||
|
||||
operations:
|
||||
- remove:
|
||||
- calamares
|
||||
- ckbcomp
|
||||
36
etc/calamares/modules/partition.conf
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the partition module.
|
||||
#
|
||||
---
|
||||
|
||||
efiSystemPartition: "/boot/efi"
|
||||
|
||||
efiSystemPartitionSize: 550M
|
||||
|
||||
efiSystemPartitionName: EFI
|
||||
|
||||
userSwapChoices:
|
||||
- none # Create no swap, use no swap
|
||||
- small # Up to 4GB
|
||||
- suspend # At least main memory size
|
||||
# - reuse # Re-use existing swap, but don't create any (unsupported right now)
|
||||
- file # To swap file instead of partition
|
||||
|
||||
swapPartitionName: SWAP
|
||||
|
||||
drawNestedPartitions: false
|
||||
|
||||
alwaysShowPartitionLabels: true
|
||||
|
||||
allowManualPartitioning: true
|
||||
|
||||
initialPartitioningChoice: none
|
||||
|
||||
initialSwapChoice: none
|
||||
|
||||
defaultFileSystemType: "btrfs"
|
||||
|
||||
availableFileSystemTypes: ["ext4","btrfs","xfs"]
|
||||
9
etc/calamares/modules/removeuser.conf
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the removeuser module.
|
||||
#
|
||||
---
|
||||
|
||||
username: 4rch
|
||||
17
etc/calamares/modules/services-systemd.conf
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Systemd services manipulation.
|
||||
#
|
||||
---
|
||||
|
||||
services:
|
||||
- name: "avahi-daemon"
|
||||
mandatory: false
|
||||
|
||||
timers:
|
||||
- name: "fstrim"
|
||||
mandatory: false
|
||||
- name: "plocate-updatedb"
|
||||
mandatory: false
|
||||
18
etc/calamares/modules/shellprocess-ezfinish.conf
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the ezfinish.conf shell process job.
|
||||
#
|
||||
---
|
||||
|
||||
i18n:
|
||||
name: "Remove misc files"
|
||||
|
||||
dontChroot: false
|
||||
timeout: 999
|
||||
script:
|
||||
- "-mv @@ROOT@@/etc/systemd/system/ez-pacman-init @@ROOT@@/etc/systemd/system/pacman-init.service"
|
||||
- "-rm @@ROOT@@/etc/systemd/system/etc-pacman.d-gnupg.mount"
|
||||
- "-rm @@ROOT@@/root/.automated_script.sh"
|
||||
- "-rm @@ROOT@@/root/.zlogin"
|
||||
16
etc/calamares/modules/shellprocess-mvezmkinit.conf
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the mvezmkinit.conf files shell process job.
|
||||
#
|
||||
---
|
||||
|
||||
i18n:
|
||||
name: "Fix mkinitcpio stuff"
|
||||
|
||||
dontChroot: false
|
||||
timeout: 999
|
||||
script:
|
||||
- "-mv @@ROOT@@/etc/mkinitcpio.d/ezmkinit @@ROOT@@/etc/mkinitcpio.d/linux.preset"
|
||||
- "-mv @@ROOT@@/etc/ezmkinitcpio.conf @@ROOT@@/etc/mkinitcpio.conf"
|
||||
15
etc/calamares/modules/unpackfs.conf
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the unpackfs module.
|
||||
#
|
||||
---
|
||||
|
||||
unpack:
|
||||
- source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: "/"
|
||||
- source: "/run/archiso/bootmnt/arch/boot/x86_64/vmlinuz-linux"
|
||||
sourcefs: "file"
|
||||
destination: "/boot/vmlinuz-linux"
|
||||
57
etc/calamares/modules/users.conf
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the users module.
|
||||
#
|
||||
---
|
||||
|
||||
defaultGroups:
|
||||
- name: users
|
||||
must_exist: true
|
||||
system: true
|
||||
- adm
|
||||
- lp
|
||||
- power
|
||||
- video
|
||||
- network
|
||||
- storage
|
||||
- name: wheel
|
||||
must_exist: false
|
||||
system: true
|
||||
- audio
|
||||
- sys
|
||||
- optical
|
||||
- scanner
|
||||
- rfkill
|
||||
- uucp
|
||||
- sambashare
|
||||
|
||||
|
||||
autologinGroup: autologin
|
||||
|
||||
doAutologin: false
|
||||
|
||||
sudoersGroup: wheel
|
||||
|
||||
setRootPassword: true
|
||||
|
||||
doReusePassword: true
|
||||
|
||||
passwordRequirements:
|
||||
nonempty: true
|
||||
minLength: -1 # Password at least this many characters
|
||||
maxLength: -1 # Password at most this many characters
|
||||
libpwquality:
|
||||
- minlen=0
|
||||
- minclass=0
|
||||
|
||||
allowWeakPasswords: true
|
||||
|
||||
allowWeakPasswordsDefault: true
|
||||
|
||||
userShell: /bin/bash
|
||||
|
||||
setHostname: EtcFile
|
||||
|
||||
writeHostsFile: true
|
||||
37
etc/calamares/modules/welcome.conf
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration for the welcome module.
|
||||
#
|
||||
---
|
||||
|
||||
showSupportUrl: false
|
||||
showKnownIssuesUrl: false
|
||||
showReleaseNotesUrl: false
|
||||
showDonateUrl: false
|
||||
|
||||
requirements:
|
||||
requiredStorage: 8.0
|
||||
|
||||
requiredRam: 1.0
|
||||
|
||||
internetCheckUrl: http://www.freebsd.org
|
||||
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- internet
|
||||
- root
|
||||
- screen
|
||||
|
||||
required:
|
||||
# - storage
|
||||
- ram
|
||||
# - root
|
||||
|
||||
geoip:
|
||||
style: "xml"
|
||||
url: "https://geoip.kde.org/v1/ubiquity" # extended XML format
|
||||
selector: "CountryCode" # blank uses default, which is wrong
|
||||
15
etc/calamares/qml/calamares/slideshow/BackButton.qml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
NavButton {
|
||||
id: backButton
|
||||
anchors.left: parent.left
|
||||
visible: parent.currentSlide > 0
|
||||
isForward: false
|
||||
}
|
||||
14
etc/calamares/qml/calamares/slideshow/ForwardButton.qml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
NavButton {
|
||||
id: forwardButton
|
||||
anchors.right: parent.right
|
||||
visible: parent.currentSlide + 1 < parent.slides.length;
|
||||
}
|
||||
59
etc/calamares/qml/calamares/slideshow/NavButton.qml
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
/* This is a navigation (arrow) button that fades in on hover, and
|
||||
* which calls forward / backward navigation on the presentation it
|
||||
* is in. It should be a child item of the presentation (not of a
|
||||
* single slide). Use the ForwardButton or BackButton for a pre-
|
||||
* configured instance that interacts with the presentation.
|
||||
*/
|
||||
|
||||
import QtQuick 2.5;
|
||||
|
||||
Image {
|
||||
id: fade
|
||||
|
||||
property bool isForward : true
|
||||
|
||||
width: 100
|
||||
height: 100
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
opacity: 0.3
|
||||
|
||||
OpacityAnimator {
|
||||
id: fadeIn
|
||||
target: fade
|
||||
from: fade.opacity
|
||||
to: 1.0
|
||||
duration: 500
|
||||
running: false
|
||||
}
|
||||
|
||||
OpacityAnimator {
|
||||
id: fadeOut
|
||||
target: fade
|
||||
from: fade.opacity
|
||||
to: 0.3
|
||||
duration: 250
|
||||
running: false
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: { fadeOut.running = false; fadeIn.running = true }
|
||||
onExited: { fadeIn.running = false ; fadeOut.running = true }
|
||||
onClicked: {
|
||||
if (isForward)
|
||||
fade.parent.goToNextSlide()
|
||||
else
|
||||
fade.parent.goToPreviousSlide()
|
||||
}
|
||||
}
|
||||
}
|
||||
243
etc/calamares/qml/calamares/slideshow/Presentation.qml
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2017 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-FileCopyrightText: 2016 The Qt Company Ltd.
|
||||
* SPDX-License-Identifier: LGPL-2.1-only
|
||||
*
|
||||
* 2017, Adriaan de Groot <groot@kde.org>
|
||||
* - added looping, keys-instead-of-shortcut
|
||||
* 2018, Adriaan de Groot <groot@kde.org>
|
||||
* - make looping a property, drop the 'c' fade-key
|
||||
* - drop navigation through entering a slide number
|
||||
* (this and the 'c' key make sense in a *presentation*
|
||||
* slideshow, not in a passive slideshow like Calamares)
|
||||
* - remove quit key
|
||||
* 2019, Adriaan de Groot <groot@kde.org>
|
||||
* - Support "V2" loading
|
||||
* - Disable shortcuts until the content is visible in Calamares
|
||||
* 2020, Adriaan de Groot <groot@kde.org>
|
||||
* - Updated to SPDX headers
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QML Presentation System.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
import QtQuick 2.5
|
||||
import QtQuick.Window 2.0
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property variant slides: []
|
||||
property int currentSlide: 0
|
||||
|
||||
property bool loopSlides: true
|
||||
|
||||
property bool showNotes: false;
|
||||
property bool allowDelay: true;
|
||||
property alias mouseNavigation: mouseArea.enabled
|
||||
property bool arrowNavigation: true
|
||||
property bool keyShortcutsEnabled: true
|
||||
|
||||
property color titleColor: textColor;
|
||||
property color textColor: "black"
|
||||
property string fontFamily: "Helvetica"
|
||||
property string codeFontFamily: "Courier New"
|
||||
|
||||
// This is set by the C++ part of Calamares when the slideshow
|
||||
// becomes visible. You can connect it to a timer, or whatever
|
||||
// else needs to start only when the slideshow becomes visible.
|
||||
//
|
||||
// It is used in this example also to keep the keyboard shortcuts
|
||||
// enabled only while the slideshow is active.
|
||||
property bool activatedInCalamares: false
|
||||
|
||||
// Private API
|
||||
property int _lastShownSlide: 0
|
||||
|
||||
Component.onCompleted: {
|
||||
var slideCount = 0;
|
||||
var slides = [];
|
||||
for (var i=0; i<root.children.length; ++i) {
|
||||
var r = root.children[i];
|
||||
if (r.isSlide) {
|
||||
slides.push(r);
|
||||
}
|
||||
}
|
||||
|
||||
root.slides = slides;
|
||||
|
||||
// Make first slide visible...
|
||||
if (root.slides.length > 0)
|
||||
root.slides[root.currentSlide].visible = true;
|
||||
}
|
||||
|
||||
function switchSlides(from, to, forward) {
|
||||
from.visible = false
|
||||
to.visible = true
|
||||
return true
|
||||
}
|
||||
|
||||
onCurrentSlideChanged: {
|
||||
switchSlides(root.slides[_lastShownSlide], root.slides[currentSlide], currentSlide > _lastShownSlide)
|
||||
_lastShownSlide = currentSlide
|
||||
// Always keep focus on the slideshow
|
||||
root.focus = true
|
||||
}
|
||||
|
||||
function goToNextSlide() {
|
||||
if (root.slides[currentSlide].delayPoints) {
|
||||
if (root.slides[currentSlide]._advance())
|
||||
return;
|
||||
}
|
||||
if (currentSlide + 1 < root.slides.length)
|
||||
++currentSlide;
|
||||
else if (loopSlides)
|
||||
currentSlide = 0; // Loop at the end
|
||||
}
|
||||
|
||||
function goToPreviousSlide() {
|
||||
if (currentSlide - 1 >= 0)
|
||||
--currentSlide;
|
||||
else if (loopSlides)
|
||||
currentSlide = root.slides.length - 1
|
||||
}
|
||||
|
||||
focus: true // Keep focus
|
||||
|
||||
// Navigation through key events, too
|
||||
Keys.onSpacePressed: goToNextSlide()
|
||||
Keys.onRightPressed: goToNextSlide()
|
||||
Keys.onLeftPressed: goToPreviousSlide()
|
||||
|
||||
// navigate with arrow keys
|
||||
Shortcut { sequence: StandardKey.MoveToNextLine; enabled: root.activatedInCalamares && root .arrowNavigation; onActivated: goToNextSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToPreviousLine; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToPreviousSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToNextChar; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToNextSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToPreviousChar; enabled: root.activatedInCalamares && root.arrowNavigation; onActivated: goToPreviousSlide() }
|
||||
|
||||
// presentation-specific single-key shortcuts (which interfere with normal typing)
|
||||
Shortcut { sequence: " "; enabled: root.activatedInCalamares && root.keyShortcutsEnabled; onActivated: goToNextSlide() }
|
||||
|
||||
// standard shortcuts
|
||||
Shortcut { sequence: StandardKey.MoveToNextPage; enabled: root.activatedInCalamares; onActivated: goToNextSlide() }
|
||||
Shortcut { sequence: StandardKey.MoveToPreviousPage; enabled: root.activatedInCalamares; onActivated: goToPreviousSlide() }
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
onClicked: {
|
||||
if (mouse.button == Qt.RightButton)
|
||||
goToPreviousSlide()
|
||||
else
|
||||
goToNextSlide()
|
||||
}
|
||||
onPressAndHold: goToPreviousSlide(); //A back mechanism for touch only devices
|
||||
}
|
||||
|
||||
Window {
|
||||
id: notesWindow;
|
||||
width: 400
|
||||
height: 300
|
||||
|
||||
title: "QML Presentation: Notes"
|
||||
visible: root.showNotes
|
||||
|
||||
Flickable {
|
||||
anchors.fill: parent
|
||||
contentWidth: parent.width
|
||||
contentHeight: textContainer.height
|
||||
|
||||
Item {
|
||||
id: textContainer
|
||||
width: parent.width
|
||||
height: notesText.height + 2 * notesText.padding
|
||||
|
||||
Text {
|
||||
id: notesText
|
||||
|
||||
property real padding: 16;
|
||||
|
||||
x: padding
|
||||
y: padding
|
||||
width: parent.width - 2 * padding
|
||||
|
||||
|
||||
font.pixelSize: 16
|
||||
wrapMode: Text.WordWrap
|
||||
|
||||
property string notes: root.slides[root.currentSlide].notes;
|
||||
|
||||
onNotesChanged: {
|
||||
var result = "";
|
||||
|
||||
var lines = notes.split("\n");
|
||||
var beginNewLine = false
|
||||
for (var i=0; i<lines.length; ++i) {
|
||||
var line = lines[i].trim();
|
||||
if (line.length == 0) {
|
||||
beginNewLine = true;
|
||||
} else {
|
||||
if (beginNewLine && result.length) {
|
||||
result += "\n\n"
|
||||
beginNewLine = false
|
||||
}
|
||||
if (result.length > 0)
|
||||
result += " ";
|
||||
result += line;
|
||||
}
|
||||
}
|
||||
|
||||
if (result.length == 0) {
|
||||
font.italic = true;
|
||||
text = "no notes.."
|
||||
} else {
|
||||
font.italic = false;
|
||||
text = result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
206
etc/calamares/qml/calamares/slideshow/Slide.qml
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
* SPDX-License-Identifier: LGPL-2.1-only
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the QML Presentation System.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Digia. For licensing terms and
|
||||
** conditions see http://qt.digia.com/licensing. For further information
|
||||
** use the contact form at http://qt.digia.com/contact-us.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Digia gives you certain additional
|
||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3.0 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU General Public License version 3.0 requirements will be
|
||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
**
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
import QtQuick 2.5
|
||||
|
||||
Item {
|
||||
/*
|
||||
Slides can only be instantiated as a direct child of a Presentation {} as they rely on
|
||||
several properties there.
|
||||
*/
|
||||
|
||||
id: slide
|
||||
|
||||
property bool isSlide: true;
|
||||
|
||||
property bool delayPoints: false;
|
||||
property int _pointCounter: 0;
|
||||
function _advance() {
|
||||
if (!parent.allowDelay)
|
||||
return false;
|
||||
|
||||
_pointCounter = _pointCounter + 1;
|
||||
if (_pointCounter < content.length)
|
||||
return true;
|
||||
_pointCounter = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
property string title;
|
||||
property variant content: []
|
||||
property string centeredText
|
||||
property string writeInText;
|
||||
property string notes;
|
||||
|
||||
property real fontSize: parent.height * 0.05
|
||||
property real fontScale: 1
|
||||
|
||||
property real baseFontSize: fontSize * fontScale
|
||||
property real titleFontSize: fontSize * 1.2 * fontScale
|
||||
property real bulletSpacing: 1
|
||||
|
||||
property real contentWidth: width
|
||||
|
||||
// Define the slide to be the "content area"
|
||||
x: parent.width * 0.05
|
||||
y: parent.height * 0.2
|
||||
width: parent.width * 0.9
|
||||
height: parent.height * 0.7
|
||||
|
||||
property real masterWidth: parent.width
|
||||
property real masterHeight: parent.height
|
||||
|
||||
property color titleColor: parent.titleColor;
|
||||
property color textColor: parent.textColor;
|
||||
property string fontFamily: parent.fontFamily;
|
||||
property int textFormat: Text.PlainText
|
||||
|
||||
visible: false
|
||||
|
||||
Text {
|
||||
id: titleText
|
||||
font.pixelSize: titleFontSize
|
||||
text: title;
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.top
|
||||
anchors.bottomMargin: parent.fontSize * 1.5
|
||||
font.bold: true;
|
||||
font.family: slide.fontFamily
|
||||
color: slide.titleColor
|
||||
horizontalAlignment: Text.Center
|
||||
z: 1
|
||||
}
|
||||
|
||||
Text {
|
||||
id: centeredId
|
||||
width: parent.width
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - parent.y / 3
|
||||
text: centeredText
|
||||
horizontalAlignment: Text.Center
|
||||
font.pixelSize: baseFontSize
|
||||
font.family: slide.fontFamily
|
||||
color: slide.textColor
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
Text {
|
||||
id: writeInTextId
|
||||
property int length;
|
||||
font.family: slide.fontFamily
|
||||
font.pixelSize: baseFontSize
|
||||
color: slide.textColor
|
||||
|
||||
anchors.fill: parent;
|
||||
wrapMode: Text.Wrap
|
||||
|
||||
text: slide.writeInText.substring(0, length);
|
||||
|
||||
NumberAnimation on length {
|
||||
from: 0;
|
||||
to: slide.writeInText.length;
|
||||
duration: slide.writeInText.length * 30;
|
||||
running: slide.visible && parent.visible && slide.writeInText.length > 0
|
||||
}
|
||||
|
||||
visible: slide.writeInText != undefined;
|
||||
}
|
||||
|
||||
|
||||
Column {
|
||||
id: contentId
|
||||
anchors.fill: parent
|
||||
|
||||
Repeater {
|
||||
model: content.length
|
||||
|
||||
Row {
|
||||
id: row
|
||||
|
||||
function decideIndentLevel(s) { return s.charAt(0) == " " ? 1 + decideIndentLevel(s.substring(1)) : 0 }
|
||||
property int indentLevel: decideIndentLevel(content[index])
|
||||
property int nextIndentLevel: index < content.length - 1 ? decideIndentLevel(content[index+1]) : 0
|
||||
property real indentFactor: (10 - row.indentLevel * 2) / 10;
|
||||
|
||||
height: text.height + (nextIndentLevel == 0 ? 1 : 0.3) * slide.baseFontSize * slide.bulletSpacing
|
||||
x: slide.baseFontSize * indentLevel
|
||||
visible: (!slide.parent.allowDelay || !delayPoints) || index <= _pointCounter
|
||||
|
||||
Rectangle {
|
||||
id: dot
|
||||
anchors.baseline: text.baseline
|
||||
anchors.baselineOffset: -text.font.pixelSize / 2
|
||||
width: text.font.pixelSize / 3
|
||||
height: text.font.pixelSize / 3
|
||||
color: slide.textColor
|
||||
radius: width / 2
|
||||
opacity: text.text.length == 0 ? 0 : 1
|
||||
}
|
||||
|
||||
Item {
|
||||
id: space
|
||||
width: dot.width * 1.5
|
||||
height: 1
|
||||
}
|
||||
|
||||
Text {
|
||||
id: text
|
||||
width: slide.contentWidth - parent.x - dot.width - space.width
|
||||
font.pixelSize: baseFontSize * row.indentFactor
|
||||
text: content[index]
|
||||
textFormat: slide.textFormat
|
||||
wrapMode: Text.WordWrap
|
||||
color: slide.textColor
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
font.family: slide.fontFamily
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
29
etc/calamares/qml/calamares/slideshow/SlideCounter.qml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
/* This control just shows a (non-translated) count of the slides
|
||||
* in the slideshow in the format "n / total".
|
||||
*/
|
||||
|
||||
import QtQuick 2.5;
|
||||
|
||||
Rectangle {
|
||||
id: slideCounter
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
width: 100
|
||||
height: 50
|
||||
|
||||
Text {
|
||||
id: slideCounterText
|
||||
anchors.centerIn: parent
|
||||
//: slide counter, %1 of %2 (numeric)
|
||||
text: qsTr("%L1 / %L2").arg(parent.parent.currentSlide + 1).arg(parent.parent.slides.length)
|
||||
}
|
||||
}
|
||||
10
etc/calamares/qml/calamares/slideshow/qmldir
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
module calamares.slideshow
|
||||
|
||||
Presentation 1.0 Presentation.qml
|
||||
Slide 1.0 Slide.qml
|
||||
|
||||
NavButton 1.0 NavButton.qml
|
||||
ForwardButton 1.0 ForwardButton.qml
|
||||
BackButton 1.0 BackButton.qml
|
||||
|
||||
SlideCounter 1.0 SlideCounter.qml
|
||||
2
etc/calamares/qml/calamares/slideshow/qmldir.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: no
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
69
etc/calamares/settings.conf
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# 4rch custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Configuration file for Calamares
|
||||
#
|
||||
---
|
||||
|
||||
modules-search: [ local ]
|
||||
|
||||
instances:
|
||||
- id: mvezmkinit
|
||||
module: shellprocess
|
||||
config: shellprocess-mvezmkinit.conf
|
||||
- id: ezfinish
|
||||
module: shellprocess
|
||||
config: shellprocess-ezfinish.conf
|
||||
|
||||
sequence:
|
||||
- show:
|
||||
- welcome
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
- users
|
||||
- summary
|
||||
- exec:
|
||||
- partition
|
||||
- mount
|
||||
- unpackfs
|
||||
- machineid
|
||||
- fstab
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- luksbootkeyfile
|
||||
- luksopenswaphookcfg
|
||||
- removeuser
|
||||
- users
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services-systemd
|
||||
- packages
|
||||
- displaymanager
|
||||
- shellprocess@mvezmkinit
|
||||
- initcpiocfg
|
||||
- initcpio
|
||||
- grubcfg
|
||||
- bootloader
|
||||
- shellprocess@ezfinish
|
||||
- umount
|
||||
- show:
|
||||
- finished
|
||||
|
||||
branding: ezarcher
|
||||
|
||||
prompt-install: true
|
||||
|
||||
dont-chroot: false
|
||||
|
||||
oem-setup: false
|
||||
|
||||
disable-cancel: false
|
||||
|
||||
disable-cancel-during-exec: false
|
||||
|
||||
hide-back-and-next-during-exec: false
|
||||
|
||||
quit-at-end: false
|
||||
60
etc/default/grub
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# GRUB boot loader configuration
|
||||
|
||||
GRUB_DEFAULT=0
|
||||
GRUB_TIMEOUT=5
|
||||
GRUB_DISTRIBUTOR="Arch"
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
|
||||
GRUB_CMDLINE_LINUX=""
|
||||
|
||||
# Preload both GPT and MBR modules so that they are not missed
|
||||
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
|
||||
|
||||
# Uncomment to enable booting from LUKS encrypted devices
|
||||
#GRUB_ENABLE_CRYPTODISK=y
|
||||
|
||||
# Set to 'countdown' or 'hidden' to change timeout behavior,
|
||||
# press ESC key to display menu.
|
||||
GRUB_TIMEOUT_STYLE=menu
|
||||
|
||||
# Uncomment to use basic console
|
||||
GRUB_TERMINAL_INPUT=console
|
||||
|
||||
# Uncomment to disable graphical terminal
|
||||
#GRUB_TERMINAL_OUTPUT=console
|
||||
|
||||
# The resolution used on graphical terminal
|
||||
# note that you can use only modes which your graphic card supports via VBE
|
||||
# you can see them in real GRUB with the command `vbeinfo'
|
||||
GRUB_GFXMODE=auto
|
||||
|
||||
# Uncomment to allow the kernel use the same resolution used by grub
|
||||
GRUB_GFXPAYLOAD_LINUX=keep
|
||||
|
||||
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
|
||||
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
|
||||
#GRUB_DISABLE_LINUX_UUID=true
|
||||
|
||||
# Uncomment to disable generation of recovery mode menu entries
|
||||
GRUB_DISABLE_RECOVERY=true
|
||||
|
||||
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
|
||||
# modes only. Entries specified as foreground/background.
|
||||
#GRUB_COLOR_NORMAL="light-blue/black"
|
||||
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
|
||||
|
||||
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
|
||||
#GRUB_BACKGROUND="/path/to/wallpaper"
|
||||
#GRUB_THEME="/path/to/gfxtheme"
|
||||
|
||||
# Uncomment to get a beep at GRUB start
|
||||
#GRUB_INIT_TUNE="480 440 1"
|
||||
|
||||
# Uncomment to make GRUB remember the last selection. This requires
|
||||
# setting 'GRUB_DEFAULT=saved' above.
|
||||
#GRUB_SAVEDEFAULT=true
|
||||
|
||||
# Uncomment to disable submenus in boot menu
|
||||
#GRUB_DISABLE_SUBMENU=y
|
||||
|
||||
# Enable os-prober
|
||||
GRUB_DISABLE_OS_PROBER=false
|
||||
67
etc/ezmkinitcpio.conf
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# vim:set ft=sh
|
||||
# MODULES
|
||||
# The following modules are loaded before any boot hooks are
|
||||
# run. Advanced users may wish to specify all system modules
|
||||
# in this array. For instance:
|
||||
# MODULES=(piix ide_disk reiserfs)
|
||||
MODULES=()
|
||||
|
||||
# BINARIES
|
||||
# This setting includes any additional binaries a given user may
|
||||
# wish into the CPIO image. This is run last, so it may be used to
|
||||
# override the actual binaries included by a given hook
|
||||
# BINARIES are dependency parsed, so you may safely ignore libraries
|
||||
BINARIES=()
|
||||
|
||||
# FILES
|
||||
# This setting is similar to BINARIES above, however, files are added
|
||||
# as-is and are not parsed in any way. This is useful for config files.
|
||||
FILES=()
|
||||
|
||||
# HOOKS
|
||||
# This is the most important setting in this file. The HOOKS control the
|
||||
# modules and scripts added to the image, and what happens at boot time.
|
||||
# Order is important, and it is recommended that you do not change the
|
||||
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
|
||||
# help on a given hook.
|
||||
# 'base' is _required_ unless you know precisely what you are doing.
|
||||
# 'udev' is _required_ in order to automatically load modules
|
||||
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
|
||||
# Examples:
|
||||
## This setup specifies all modules in the MODULES setting above.
|
||||
## No raid, lvm2, or encrypted root is needed.
|
||||
# HOOKS=(base)
|
||||
#
|
||||
## This setup will autodetect all modules for your system and should
|
||||
## work as a sane default
|
||||
# HOOKS=(base udev autodetect block filesystems)
|
||||
#
|
||||
## This setup will generate a 'full' image which supports most systems.
|
||||
## No autodetection is done.
|
||||
# HOOKS=(base udev block filesystems)
|
||||
#
|
||||
## This setup assembles a pata mdadm array with an encrypted root FS.
|
||||
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
|
||||
# HOOKS=(base udev block mdadm encrypt filesystems)
|
||||
#
|
||||
## This setup loads an lvm2 volume group on a usb device.
|
||||
# HOOKS=(base udev block lvm2 filesystems)
|
||||
#
|
||||
## NOTE: If you have /usr on a separate partition, you MUST include the
|
||||
# usr, fsck and shutdown hooks.
|
||||
HOOKS=(base udev autodetect modconf block keyboard resume filesystems fsck)
|
||||
|
||||
# COMPRESSION
|
||||
# Use this to compress the initramfs image. By default, zstd compression
|
||||
# is used. Use 'cat' to create an uncompressed image.
|
||||
COMPRESSION="zstd"
|
||||
#COMPRESSION="gzip"
|
||||
#COMPRESSION="bzip2"
|
||||
#COMPRESSION="lzma"
|
||||
#COMPRESSION="xz"
|
||||
#COMPRESSION="lzop"
|
||||
#COMPRESSION="lz4"
|
||||
|
||||
# COMPRESSION_OPTIONS
|
||||
# Additional options for the compressor
|
||||
#COMPRESSION_OPTIONS=()
|
||||
511
etc/locale.gen
Normal file
|
|
@ -0,0 +1,511 @@
|
|||
# Configuration file for locale-gen
|
||||
#
|
||||
# lists of locales that are to be generated by the locale-gen command.
|
||||
#
|
||||
# Each line is of the form:
|
||||
#
|
||||
# <locale> <charset>
|
||||
#
|
||||
# where <locale> is one of the locales given in /usr/share/i18n/locales
|
||||
# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
|
||||
#
|
||||
# Examples:
|
||||
# en_US ISO-8859-1
|
||||
# en_US.UTF-8 UTF-8
|
||||
# de_DE ISO-8859-1
|
||||
# de_DE@euro ISO-8859-15
|
||||
#
|
||||
# The locale-gen command will generate all the locales,
|
||||
# placing them in /usr/lib/locale.
|
||||
#
|
||||
# A list of supported locales is included in this file.
|
||||
# Uncomment the ones you need.
|
||||
#
|
||||
#aa_DJ.UTF-8 UTF-8
|
||||
#aa_DJ ISO-8859-1
|
||||
#aa_ER UTF-8
|
||||
#aa_ER@saaho UTF-8
|
||||
#aa_ET UTF-8
|
||||
#af_ZA.UTF-8 UTF-8
|
||||
#af_ZA ISO-8859-1
|
||||
#agr_PE UTF-8
|
||||
#ak_GH UTF-8
|
||||
#am_ET UTF-8
|
||||
#an_ES.UTF-8 UTF-8
|
||||
#an_ES ISO-8859-15
|
||||
#anp_IN UTF-8
|
||||
#ar_AE.UTF-8 UTF-8
|
||||
#ar_AE ISO-8859-6
|
||||
#ar_BH.UTF-8 UTF-8
|
||||
#ar_BH ISO-8859-6
|
||||
#ar_DZ.UTF-8 UTF-8
|
||||
#ar_DZ ISO-8859-6
|
||||
#ar_EG.UTF-8 UTF-8
|
||||
#ar_EG ISO-8859-6
|
||||
#ar_IN UTF-8
|
||||
#ar_IQ.UTF-8 UTF-8
|
||||
#ar_IQ ISO-8859-6
|
||||
#ar_JO.UTF-8 UTF-8
|
||||
#ar_JO ISO-8859-6
|
||||
#ar_KW.UTF-8 UTF-8
|
||||
#ar_KW ISO-8859-6
|
||||
#ar_LB.UTF-8 UTF-8
|
||||
#ar_LB ISO-8859-6
|
||||
#ar_LY.UTF-8 UTF-8
|
||||
#ar_LY ISO-8859-6
|
||||
#ar_MA.UTF-8 UTF-8
|
||||
#ar_MA ISO-8859-6
|
||||
#ar_OM.UTF-8 UTF-8
|
||||
#ar_OM ISO-8859-6
|
||||
#ar_QA.UTF-8 UTF-8
|
||||
#ar_QA ISO-8859-6
|
||||
#ar_SA.UTF-8 UTF-8
|
||||
#ar_SA ISO-8859-6
|
||||
#ar_SD.UTF-8 UTF-8
|
||||
#ar_SD ISO-8859-6
|
||||
#ar_SS UTF-8
|
||||
#ar_SY.UTF-8 UTF-8
|
||||
#ar_SY ISO-8859-6
|
||||
#ar_TN.UTF-8 UTF-8
|
||||
#ar_TN ISO-8859-6
|
||||
#ar_YE.UTF-8 UTF-8
|
||||
#ar_YE ISO-8859-6
|
||||
#ayc_PE UTF-8
|
||||
#az_AZ UTF-8
|
||||
#az_IR UTF-8
|
||||
#as_IN UTF-8
|
||||
#ast_ES.UTF-8 UTF-8
|
||||
#ast_ES ISO-8859-15
|
||||
#be_BY.UTF-8 UTF-8
|
||||
#be_BY CP1251
|
||||
#be_BY@latin UTF-8
|
||||
#bem_ZM UTF-8
|
||||
#ber_DZ UTF-8
|
||||
#ber_MA UTF-8
|
||||
#bg_BG.UTF-8 UTF-8
|
||||
#bg_BG CP1251
|
||||
#bhb_IN.UTF-8 UTF-8
|
||||
#bho_IN UTF-8
|
||||
#bho_NP UTF-8
|
||||
#bi_VU UTF-8
|
||||
#bn_BD UTF-8
|
||||
#bn_IN UTF-8
|
||||
#bo_CN UTF-8
|
||||
#bo_IN UTF-8
|
||||
#br_FR.UTF-8 UTF-8
|
||||
#br_FR ISO-8859-1
|
||||
#br_FR@euro ISO-8859-15
|
||||
#brx_IN UTF-8
|
||||
#bs_BA.UTF-8 UTF-8
|
||||
#bs_BA ISO-8859-2
|
||||
#byn_ER UTF-8
|
||||
#ca_AD.UTF-8 UTF-8
|
||||
#ca_AD ISO-8859-15
|
||||
#ca_ES.UTF-8 UTF-8
|
||||
#ca_ES ISO-8859-1
|
||||
#ca_ES@euro ISO-8859-15
|
||||
#ca_ES@valencia UTF-8
|
||||
#ca_FR.UTF-8 UTF-8
|
||||
#ca_FR ISO-8859-15
|
||||
#ca_IT.UTF-8 UTF-8
|
||||
#ca_IT ISO-8859-15
|
||||
#ce_RU UTF-8
|
||||
#chr_US UTF-8
|
||||
#ckb_IQ UTF-8
|
||||
#cmn_TW UTF-8
|
||||
#crh_UA UTF-8
|
||||
#cs_CZ.UTF-8 UTF-8
|
||||
#cs_CZ ISO-8859-2
|
||||
#csb_PL UTF-8
|
||||
#cv_RU UTF-8
|
||||
#cy_GB.UTF-8 UTF-8
|
||||
#cy_GB ISO-8859-14
|
||||
#da_DK.UTF-8 UTF-8
|
||||
#da_DK ISO-8859-1
|
||||
#de_AT.UTF-8 UTF-8
|
||||
#de_AT ISO-8859-1
|
||||
#de_AT@euro ISO-8859-15
|
||||
#de_BE.UTF-8 UTF-8
|
||||
#de_BE ISO-8859-1
|
||||
#de_BE@euro ISO-8859-15
|
||||
#de_CH.UTF-8 UTF-8
|
||||
#de_CH ISO-8859-1
|
||||
#de_DE.UTF-8 UTF-8
|
||||
#de_DE ISO-8859-1
|
||||
#de_DE@euro ISO-8859-15
|
||||
#de_IT.UTF-8 UTF-8
|
||||
#de_IT ISO-8859-1
|
||||
#de_LI.UTF-8 UTF-8
|
||||
#de_LU.UTF-8 UTF-8
|
||||
#de_LU ISO-8859-1
|
||||
#de_LU@euro ISO-8859-15
|
||||
#doi_IN UTF-8
|
||||
#dsb_DE UTF-8
|
||||
#dv_MV UTF-8
|
||||
#dz_BT UTF-8
|
||||
#el_GR.UTF-8 UTF-8
|
||||
#el_GR ISO-8859-7
|
||||
#el_GR@euro ISO-8859-7
|
||||
#el_CY.UTF-8 UTF-8
|
||||
#el_CY ISO-8859-7
|
||||
#en_AG UTF-8
|
||||
#en_AU.UTF-8 UTF-8
|
||||
#en_AU ISO-8859-1
|
||||
#en_BW.UTF-8 UTF-8
|
||||
#en_BW ISO-8859-1
|
||||
#en_CA.UTF-8 UTF-8
|
||||
#en_CA ISO-8859-1
|
||||
#en_DK.UTF-8 UTF-8
|
||||
#en_DK ISO-8859-1
|
||||
#en_GB.UTF-8 UTF-8
|
||||
#en_GB ISO-8859-1
|
||||
#en_HK.UTF-8 UTF-8
|
||||
#en_HK ISO-8859-1
|
||||
#en_IE.UTF-8 UTF-8
|
||||
#en_IE ISO-8859-1
|
||||
#en_IE@euro ISO-8859-15
|
||||
#en_IL UTF-8
|
||||
#en_IN UTF-8
|
||||
#en_NG UTF-8
|
||||
#en_NZ.UTF-8 UTF-8
|
||||
#en_NZ ISO-8859-1
|
||||
#en_PH.UTF-8 UTF-8
|
||||
#en_PH ISO-8859-1
|
||||
#en_SC.UTF-8 UTF-8
|
||||
#en_SG.UTF-8 UTF-8
|
||||
#en_SG ISO-8859-1
|
||||
#en_US.UTF-8 UTF-8
|
||||
#en_US ISO-8859-1
|
||||
#en_ZA.UTF-8 UTF-8
|
||||
#en_ZA ISO-8859-1
|
||||
#en_ZM UTF-8
|
||||
#en_ZW.UTF-8 UTF-8
|
||||
#en_ZW ISO-8859-1
|
||||
#eo UTF-8
|
||||
#es_AR.UTF-8 UTF-8
|
||||
#es_AR ISO-8859-1
|
||||
#es_BO.UTF-8 UTF-8
|
||||
#es_BO ISO-8859-1
|
||||
#es_CL.UTF-8 UTF-8
|
||||
#es_CL ISO-8859-1
|
||||
#es_CO.UTF-8 UTF-8
|
||||
#es_CO ISO-8859-1
|
||||
#es_CR.UTF-8 UTF-8
|
||||
#es_CR ISO-8859-1
|
||||
#es_CU UTF-8
|
||||
#es_DO.UTF-8 UTF-8
|
||||
#es_DO ISO-8859-1
|
||||
#es_EC.UTF-8 UTF-8
|
||||
#es_EC ISO-8859-1
|
||||
#es_ES.UTF-8 UTF-8
|
||||
#es_ES ISO-8859-1
|
||||
#es_ES@euro ISO-8859-15
|
||||
#es_GT.UTF-8 UTF-8
|
||||
#es_GT ISO-8859-1
|
||||
#es_HN.UTF-8 UTF-8
|
||||
#es_HN ISO-8859-1
|
||||
#es_MX.UTF-8 UTF-8
|
||||
#es_MX ISO-8859-1
|
||||
#es_NI.UTF-8 UTF-8
|
||||
#es_NI ISO-8859-1
|
||||
#es_PA.UTF-8 UTF-8
|
||||
#es_PA ISO-8859-1
|
||||
#es_PE.UTF-8 UTF-8
|
||||
#es_PE ISO-8859-1
|
||||
#es_PR.UTF-8 UTF-8
|
||||
#es_PR ISO-8859-1
|
||||
#es_PY.UTF-8 UTF-8
|
||||
#es_PY ISO-8859-1
|
||||
#es_SV.UTF-8 UTF-8
|
||||
#es_SV ISO-8859-1
|
||||
#es_US.UTF-8 UTF-8
|
||||
#es_US ISO-8859-1
|
||||
#es_UY.UTF-8 UTF-8
|
||||
#es_UY ISO-8859-1
|
||||
#es_VE.UTF-8 UTF-8
|
||||
#es_VE ISO-8859-1
|
||||
#et_EE.UTF-8 UTF-8
|
||||
#et_EE ISO-8859-1
|
||||
#et_EE.ISO-8859-15 ISO-8859-15
|
||||
#eu_ES.UTF-8 UTF-8
|
||||
#eu_ES ISO-8859-1
|
||||
#eu_ES@euro ISO-8859-15
|
||||
#fa_IR UTF-8
|
||||
#ff_SN UTF-8
|
||||
#fi_FI.UTF-8 UTF-8
|
||||
#fi_FI ISO-8859-1
|
||||
#fi_FI@euro ISO-8859-15
|
||||
#fil_PH UTF-8
|
||||
#fo_FO.UTF-8 UTF-8
|
||||
#fo_FO ISO-8859-1
|
||||
#fr_BE.UTF-8 UTF-8
|
||||
#fr_BE ISO-8859-1
|
||||
#fr_BE@euro ISO-8859-15
|
||||
#fr_CA.UTF-8 UTF-8
|
||||
#fr_CA ISO-8859-1
|
||||
#fr_CH.UTF-8 UTF-8
|
||||
#fr_CH ISO-8859-1
|
||||
#fr_FR.UTF-8 UTF-8
|
||||
#fr_FR ISO-8859-1
|
||||
#fr_FR@euro ISO-8859-15
|
||||
#fr_LU.UTF-8 UTF-8
|
||||
#fr_LU ISO-8859-1
|
||||
#fr_LU@euro ISO-8859-15
|
||||
#fur_IT UTF-8
|
||||
#fy_NL UTF-8
|
||||
#fy_DE UTF-8
|
||||
#ga_IE.UTF-8 UTF-8
|
||||
#ga_IE ISO-8859-1
|
||||
#ga_IE@euro ISO-8859-15
|
||||
#gd_GB.UTF-8 UTF-8
|
||||
#gd_GB ISO-8859-15
|
||||
#gez_ER UTF-8
|
||||
#gez_ER@abegede UTF-8
|
||||
#gez_ET UTF-8
|
||||
#gez_ET@abegede UTF-8
|
||||
#gl_ES.UTF-8 UTF-8
|
||||
#gl_ES ISO-8859-1
|
||||
#gl_ES@euro ISO-8859-15
|
||||
#gu_IN UTF-8
|
||||
#gv_GB.UTF-8 UTF-8
|
||||
#gv_GB ISO-8859-1
|
||||
#ha_NG UTF-8
|
||||
#hak_TW UTF-8
|
||||
#he_IL.UTF-8 UTF-8
|
||||
#he_IL ISO-8859-8
|
||||
#hi_IN UTF-8
|
||||
#hif_FJ UTF-8
|
||||
#hne_IN UTF-8
|
||||
#hr_HR.UTF-8 UTF-8
|
||||
#hr_HR ISO-8859-2
|
||||
#hsb_DE ISO-8859-2
|
||||
#hsb_DE.UTF-8 UTF-8
|
||||
#ht_HT UTF-8
|
||||
#hu_HU.UTF-8 UTF-8
|
||||
#hu_HU ISO-8859-2
|
||||
#hy_AM UTF-8
|
||||
#hy_AM.ARMSCII-8 ARMSCII-8
|
||||
#ia_FR UTF-8
|
||||
#id_ID.UTF-8 UTF-8
|
||||
#id_ID ISO-8859-1
|
||||
#ig_NG UTF-8
|
||||
#ik_CA UTF-8
|
||||
#is_IS.UTF-8 UTF-8
|
||||
#is_IS ISO-8859-1
|
||||
#it_CH.UTF-8 UTF-8
|
||||
#it_CH ISO-8859-1
|
||||
#it_IT.UTF-8 UTF-8
|
||||
#it_IT ISO-8859-1
|
||||
#it_IT@euro ISO-8859-15
|
||||
#iu_CA UTF-8
|
||||
#ja_JP.EUC-JP EUC-JP
|
||||
#ja_JP.UTF-8 UTF-8
|
||||
#ka_GE.UTF-8 UTF-8
|
||||
#ka_GE GEORGIAN-PS
|
||||
#kab_DZ UTF-8
|
||||
#kk_KZ.UTF-8 UTF-8
|
||||
#kk_KZ PT154
|
||||
#kl_GL.UTF-8 UTF-8
|
||||
#kl_GL ISO-8859-1
|
||||
#km_KH UTF-8
|
||||
#kn_IN UTF-8
|
||||
#ko_KR.EUC-KR EUC-KR
|
||||
#ko_KR.UTF-8 UTF-8
|
||||
#kok_IN UTF-8
|
||||
#ks_IN UTF-8
|
||||
#ks_IN@devanagari UTF-8
|
||||
#ku_TR.UTF-8 UTF-8
|
||||
#ku_TR ISO-8859-9
|
||||
#kw_GB.UTF-8 UTF-8
|
||||
#kw_GB ISO-8859-1
|
||||
#ky_KG UTF-8
|
||||
#lb_LU UTF-8
|
||||
#lg_UG.UTF-8 UTF-8
|
||||
#lg_UG ISO-8859-10
|
||||
#li_BE UTF-8
|
||||
#li_NL UTF-8
|
||||
#lij_IT UTF-8
|
||||
#ln_CD UTF-8
|
||||
#lo_LA UTF-8
|
||||
#lt_LT.UTF-8 UTF-8
|
||||
#lt_LT ISO-8859-13
|
||||
#lv_LV.UTF-8 UTF-8
|
||||
#lv_LV ISO-8859-13
|
||||
#lzh_TW UTF-8
|
||||
#mag_IN UTF-8
|
||||
#mai_IN UTF-8
|
||||
#mai_NP UTF-8
|
||||
#mfe_MU UTF-8
|
||||
#mg_MG.UTF-8 UTF-8
|
||||
#mg_MG ISO-8859-15
|
||||
#mhr_RU UTF-8
|
||||
#mi_NZ.UTF-8 UTF-8
|
||||
#mi_NZ ISO-8859-13
|
||||
#miq_NI UTF-8
|
||||
#mjw_IN UTF-8
|
||||
#mk_MK.UTF-8 UTF-8
|
||||
#mk_MK ISO-8859-5
|
||||
#ml_IN UTF-8
|
||||
#mn_MN UTF-8
|
||||
#mni_IN UTF-8
|
||||
#mnw_MM UTF-8
|
||||
#mr_IN UTF-8
|
||||
#ms_MY.UTF-8 UTF-8
|
||||
#ms_MY ISO-8859-1
|
||||
#mt_MT.UTF-8 UTF-8
|
||||
#mt_MT ISO-8859-3
|
||||
#my_MM UTF-8
|
||||
#nan_TW UTF-8
|
||||
#nan_TW@latin UTF-8
|
||||
#nb_NO.UTF-8 UTF-8
|
||||
#nb_NO ISO-8859-1
|
||||
#nds_DE UTF-8
|
||||
#nds_NL UTF-8
|
||||
#ne_NP UTF-8
|
||||
#nhn_MX UTF-8
|
||||
#niu_NU UTF-8
|
||||
#niu_NZ UTF-8
|
||||
#nl_AW UTF-8
|
||||
#nl_BE.UTF-8 UTF-8
|
||||
#nl_BE ISO-8859-1
|
||||
#nl_BE@euro ISO-8859-15
|
||||
#nl_NL.UTF-8 UTF-8
|
||||
#nl_NL ISO-8859-1
|
||||
#nl_NL@euro ISO-8859-15
|
||||
#nn_NO.UTF-8 UTF-8
|
||||
#nn_NO ISO-8859-1
|
||||
#nr_ZA UTF-8
|
||||
#nso_ZA UTF-8
|
||||
#oc_FR.UTF-8 UTF-8
|
||||
#oc_FR ISO-8859-1
|
||||
#om_ET UTF-8
|
||||
#om_KE.UTF-8 UTF-8
|
||||
#om_KE ISO-8859-1
|
||||
#or_IN UTF-8
|
||||
#os_RU UTF-8
|
||||
#pa_IN UTF-8
|
||||
#pa_PK UTF-8
|
||||
#pap_AW UTF-8
|
||||
#pap_CW UTF-8
|
||||
#pl_PL.UTF-8 UTF-8
|
||||
#pl_PL ISO-8859-2
|
||||
#ps_AF UTF-8
|
||||
#pt_BR.UTF-8 UTF-8
|
||||
#pt_BR ISO-8859-1
|
||||
#pt_PT.UTF-8 UTF-8
|
||||
#pt_PT ISO-8859-1
|
||||
#pt_PT@euro ISO-8859-15
|
||||
#quz_PE UTF-8
|
||||
#raj_IN UTF-8
|
||||
#ro_RO.UTF-8 UTF-8
|
||||
#ro_RO ISO-8859-2
|
||||
#ru_RU.KOI8-R KOI8-R
|
||||
#ru_RU.UTF-8 UTF-8
|
||||
#ru_RU ISO-8859-5
|
||||
#ru_UA.UTF-8 UTF-8
|
||||
#ru_UA KOI8-U
|
||||
#rw_RW UTF-8
|
||||
#sa_IN UTF-8
|
||||
#sah_RU UTF-8
|
||||
#sat_IN UTF-8
|
||||
#sc_IT UTF-8
|
||||
#sd_IN UTF-8
|
||||
#sd_IN@devanagari UTF-8
|
||||
#se_NO UTF-8
|
||||
#sgs_LT UTF-8
|
||||
#shn_MM UTF-8
|
||||
#shs_CA UTF-8
|
||||
#si_LK UTF-8
|
||||
#sid_ET UTF-8
|
||||
#sk_SK.UTF-8 UTF-8
|
||||
#sk_SK ISO-8859-2
|
||||
#sl_SI.UTF-8 UTF-8
|
||||
#sl_SI ISO-8859-2
|
||||
#sm_WS UTF-8
|
||||
#so_DJ.UTF-8 UTF-8
|
||||
#so_DJ ISO-8859-1
|
||||
#so_ET UTF-8
|
||||
#so_KE.UTF-8 UTF-8
|
||||
#so_KE ISO-8859-1
|
||||
#so_SO.UTF-8 UTF-8
|
||||
#so_SO ISO-8859-1
|
||||
#sq_AL.UTF-8 UTF-8
|
||||
#sq_AL ISO-8859-1
|
||||
#sq_MK UTF-8
|
||||
#sr_ME UTF-8
|
||||
#sr_RS UTF-8
|
||||
#sr_RS@latin UTF-8
|
||||
#ss_ZA UTF-8
|
||||
#st_ZA.UTF-8 UTF-8
|
||||
#st_ZA ISO-8859-1
|
||||
#sv_FI.UTF-8 UTF-8
|
||||
#sv_FI ISO-8859-1
|
||||
#sv_FI@euro ISO-8859-15
|
||||
#sv_SE.UTF-8 UTF-8
|
||||
#sv_SE ISO-8859-1
|
||||
#sw_KE UTF-8
|
||||
#sw_TZ UTF-8
|
||||
#szl_PL UTF-8
|
||||
#ta_IN UTF-8
|
||||
#ta_LK UTF-8
|
||||
#tcy_IN.UTF-8 UTF-8
|
||||
#te_IN UTF-8
|
||||
#tg_TJ.UTF-8 UTF-8
|
||||
#tg_TJ KOI8-T
|
||||
#th_TH.UTF-8 UTF-8
|
||||
#th_TH TIS-620
|
||||
#the_NP UTF-8
|
||||
#ti_ER UTF-8
|
||||
#ti_ET UTF-8
|
||||
#tig_ER UTF-8
|
||||
#tk_TM UTF-8
|
||||
#tl_PH.UTF-8 UTF-8
|
||||
#tl_PH ISO-8859-1
|
||||
#tn_ZA UTF-8
|
||||
#to_TO UTF-8
|
||||
#tpi_PG UTF-8
|
||||
#tr_CY.UTF-8 UTF-8
|
||||
#tr_CY ISO-8859-9
|
||||
#tr_TR.UTF-8 UTF-8
|
||||
#tr_TR ISO-8859-9
|
||||
#ts_ZA UTF-8
|
||||
#tt_RU UTF-8
|
||||
#tt_RU@iqtelif UTF-8
|
||||
#ug_CN UTF-8
|
||||
#uk_UA.UTF-8 UTF-8
|
||||
#uk_UA KOI8-U
|
||||
#unm_US UTF-8
|
||||
#ur_IN UTF-8
|
||||
#ur_PK UTF-8
|
||||
#uz_UZ.UTF-8 UTF-8
|
||||
#uz_UZ ISO-8859-1
|
||||
#uz_UZ@cyrillic UTF-8
|
||||
#ve_ZA UTF-8
|
||||
#vi_VN UTF-8
|
||||
#wa_BE ISO-8859-1
|
||||
#wa_BE@euro ISO-8859-15
|
||||
#wa_BE.UTF-8 UTF-8
|
||||
#wae_CH UTF-8
|
||||
#wal_ET UTF-8
|
||||
#wo_SN UTF-8
|
||||
#xh_ZA.UTF-8 UTF-8
|
||||
#xh_ZA ISO-8859-1
|
||||
#yi_US.UTF-8 UTF-8
|
||||
#yi_US CP1255
|
||||
#yo_NG UTF-8
|
||||
#yue_HK UTF-8
|
||||
#yuw_PG UTF-8
|
||||
#zh_CN.GB18030 GB18030
|
||||
#zh_CN.GBK GBK
|
||||
#zh_CN.UTF-8 UTF-8
|
||||
#zh_CN GB2312
|
||||
#zh_HK.UTF-8 UTF-8
|
||||
#zh_HK BIG5-HKSCS
|
||||
#zh_SG.UTF-8 UTF-8
|
||||
#zh_SG.GBK GBK
|
||||
#zh_SG GB2312
|
||||
#zh_TW.EUC-TW EUC-TW
|
||||
#zh_TW.UTF-8 UTF-8
|
||||
#zh_TW BIG5
|
||||
#zu_ZA.UTF-8 UTF-8
|
||||
#zu_ZA ISO-8859-1
|
||||
67
etc/mkinitcpio.conf
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# vim:set ft=sh
|
||||
# MODULES
|
||||
# The following modules are loaded before any boot hooks are
|
||||
# run. Advanced users may wish to specify all system modules
|
||||
# in this array. For instance:
|
||||
# MODULES=(piix ide_disk reiserfs)
|
||||
MODULES=()
|
||||
|
||||
# BINARIES
|
||||
# This setting includes any additional binaries a given user may
|
||||
# wish into the CPIO image. This is run last, so it may be used to
|
||||
# override the actual binaries included by a given hook
|
||||
# BINARIES are dependency parsed, so you may safely ignore libraries
|
||||
BINARIES=()
|
||||
|
||||
# FILES
|
||||
# This setting is similar to BINARIES above, however, files are added
|
||||
# as-is and are not parsed in any way. This is useful for config files.
|
||||
FILES=()
|
||||
|
||||
# HOOKS
|
||||
# This is the most important setting in this file. The HOOKS control the
|
||||
# modules and scripts added to the image, and what happens at boot time.
|
||||
# Order is important, and it is recommended that you do not change the
|
||||
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
|
||||
# help on a given hook.
|
||||
# 'base' is _required_ unless you know precisely what you are doing.
|
||||
# 'udev' is _required_ in order to automatically load modules
|
||||
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
|
||||
# Examples:
|
||||
## This setup specifies all modules in the MODULES setting above.
|
||||
## No raid, lvm2, or encrypted root is needed.
|
||||
# HOOKS=(base)
|
||||
#
|
||||
## This setup will autodetect all modules for your system and should
|
||||
## work as a sane default
|
||||
# HOOKS=(base udev autodetect block filesystems)
|
||||
#
|
||||
## This setup will generate a 'full' image which supports most systems.
|
||||
## No autodetection is done.
|
||||
# HOOKS=(base udev block filesystems)
|
||||
#
|
||||
## This setup assembles a pata mdadm array with an encrypted root FS.
|
||||
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
|
||||
# HOOKS=(base udev block mdadm encrypt filesystems)
|
||||
#
|
||||
## This setup loads an lvm2 volume group on a usb device.
|
||||
# HOOKS=(base udev block lvm2 filesystems)
|
||||
#
|
||||
## NOTE: If you have /usr on a separate partition, you MUST include the
|
||||
# usr, fsck and shutdown hooks.
|
||||
HOOKS=(base udev modconf memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs archiso_kms block filesystems keyboard)
|
||||
|
||||
# COMPRESSION
|
||||
# Use this to compress the initramfs image. By default, gzip compression
|
||||
# is used. Use 'cat' to create an uncompressed image.
|
||||
#COMPRESSION="gzip"
|
||||
#COMPRESSION="bzip2"
|
||||
#COMPRESSION="lzma"
|
||||
#COMPRESSION="xz"
|
||||
#COMPRESSION="lzop"
|
||||
#COMPRESSION="lz4"
|
||||
COMPRESSION="zstd"
|
||||
|
||||
# COMPRESSION_OPTIONS
|
||||
# Additional options for the compressor
|
||||
#COMPRESSION_OPTIONS=()
|
||||
14
etc/mkinitcpio.d/ezmkinit
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# mkinitcpio preset file for the 'linux' package
|
||||
|
||||
ALL_config="/etc/mkinitcpio.conf"
|
||||
ALL_kver="/boot/vmlinuz-linux"
|
||||
|
||||
PRESETS=('default' 'fallback')
|
||||
|
||||
#default_config="/etc/mkinitcpio.conf"
|
||||
default_image="/boot/initramfs-linux.img"
|
||||
#default_options=""
|
||||
|
||||
#fallback_config="/etc/mkinitcpio.conf"
|
||||
fallback_image="/boot/initramfs-linux-fallback.img"
|
||||
fallback_options="-S autodetect"
|
||||
103
etc/pacman.conf
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
#HookDir = /etc/pacman.d/hooks/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
# We cannot check disk space from within a chroot environment
|
||||
#CheckSpace
|
||||
#VerbosePkgLists
|
||||
ParallelDownloads = 3
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[community-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the multilib repositories as required here.
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[multilib]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[ezrepo]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///opt/ezrepo
|
||||
96
etc/sudoers
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
## sudoers file.
|
||||
##
|
||||
## This file MUST be edited with the 'visudo' command as root.
|
||||
## Failure to use 'visudo' may result in syntax or file permission errors
|
||||
## that prevent sudo from running.
|
||||
##
|
||||
## See the sudoers man page for the details on how to write a sudoers file.
|
||||
##
|
||||
|
||||
##
|
||||
## Host alias specification
|
||||
##
|
||||
## Groups of machines. These may include host names (optionally with wildcards),
|
||||
## IP addresses, network numbers or netgroups.
|
||||
# Host_Alias WEBSERVERS = www1, www2, www3
|
||||
|
||||
##
|
||||
## User alias specification
|
||||
##
|
||||
## Groups of users. These may consist of user names, uids, Unix groups,
|
||||
## or netgroups.
|
||||
# User_Alias ADMINS = millert, dowdy, mikef
|
||||
|
||||
##
|
||||
## Cmnd alias specification
|
||||
##
|
||||
## Groups of commands. Often used to group related commands together.
|
||||
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
|
||||
# /usr/bin/pkill, /usr/bin/top
|
||||
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
|
||||
|
||||
##
|
||||
## Defaults specification
|
||||
##
|
||||
## You may wish to keep some of the following environment variables
|
||||
## when running commands via sudo.
|
||||
##
|
||||
## Locale settings
|
||||
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
|
||||
##
|
||||
## Run X applications through sudo; HOME is used to find the
|
||||
## .Xauthority file. Note that other programs use HOME to find
|
||||
## configuration files and this may lead to privilege escalation!
|
||||
# Defaults env_keep += "HOME"
|
||||
##
|
||||
## X11 resource path settings
|
||||
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
|
||||
##
|
||||
## Desktop path settings
|
||||
# Defaults env_keep += "QTDIR KDEDIR"
|
||||
##
|
||||
## Allow sudo-run commands to inherit the callers' ConsoleKit session
|
||||
# Defaults env_keep += "XDG_SESSION_COOKIE"
|
||||
##
|
||||
## Uncomment to enable special input methods. Care should be taken as
|
||||
## this may allow users to subvert the command being run via sudo.
|
||||
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
|
||||
##
|
||||
## Uncomment to use a hard-coded PATH instead of the user's to find commands
|
||||
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
##
|
||||
## Uncomment to send mail if the user does not enter the correct password.
|
||||
# Defaults mail_badpass
|
||||
##
|
||||
## Uncomment to enable logging of a command's output, except for
|
||||
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
|
||||
# Defaults log_output
|
||||
# Defaults!/usr/bin/sudoreplay !log_output
|
||||
# Defaults!/usr/local/bin/sudoreplay !log_output
|
||||
# Defaults!REBOOT !log_output
|
||||
|
||||
##
|
||||
## Runas alias specification
|
||||
##
|
||||
|
||||
##
|
||||
## User privilege specification
|
||||
##
|
||||
root ALL=(ALL) ALL
|
||||
|
||||
## Uncomment to allow members of group wheel to execute any command
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
## Same thing without a password
|
||||
# %wheel ALL=(ALL) NOPASSWD: ALL
|
||||
|
||||
## Uncomment to allow members of group sudo to execute any command
|
||||
# %sudo ALL=(ALL) ALL
|
||||
|
||||
## Uncomment to allow any user to run sudo if they know the password
|
||||
## of the user they are running the command as (root by default).
|
||||
# Defaults targetpw # Ask for the password of the target user
|
||||
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
|
||||
|
||||
## Read drop-in files from /etc/sudoers.d
|
||||
@includedir /etc/sudoers.d
|
||||
11
etc/systemd/system/ez-pacman-init
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
[Unit]
|
||||
Description=Initializes Pacman keyring
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/bin/pacman-key --init
|
||||
ExecStart=/usr/bin/pacman-key --populate
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
6
etc/xdg/reflector/reflector.conf
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Reflector configuration file for the systemd service.
|
||||
|
||||
--save /etc/pacman.d/mirrorlist
|
||||
--protocol https
|
||||
--latest 10
|
||||
--sort rate
|
||||
BIN
opt/ezrepo/calamares-3.2.56-1-x86_64.pkg.tar.zst
Normal file
BIN
opt/ezrepo/ckbcomp-1.207-1-any.pkg.tar.zst
Normal file
BIN
opt/ezrepo/ezrepo.db
Normal file
BIN
opt/ezrepo/ezrepo.db.tar.gz
Normal file
BIN
opt/ezrepo/ezrepo.files
Normal file
BIN
opt/ezrepo/ezrepo.files.tar.gz
Normal file
BIN
opt/ezrepo/mkinitcpio-openswap-0.1.0-3-any.pkg.tar.zst
Normal file
BIN
opt/ezrepo/trizen-1:1.64-1-any.pkg.tar.zst
Normal file
400
packages.x86_64
Normal file
|
|
@ -0,0 +1,400 @@
|
|||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
alsa-utils
|
||||
amd-ucode
|
||||
arch-install-scripts
|
||||
b43-fwcutter
|
||||
base
|
||||
bind-tools
|
||||
brltty
|
||||
broadcom-wl-dkms
|
||||
btrfs-progs
|
||||
cryptsetup
|
||||
darkhttpd
|
||||
ddrescue
|
||||
dhclient
|
||||
dhcpcd
|
||||
diffutils
|
||||
dmraid
|
||||
dnsmasq
|
||||
dosfstools
|
||||
e2fsprogs
|
||||
edk2-shell
|
||||
efibootmgr
|
||||
espeakup
|
||||
ethtool
|
||||
exfatprogs
|
||||
f2fs-tools
|
||||
fatresize
|
||||
fsarchiver
|
||||
gnu-netcat
|
||||
gpart
|
||||
gpm
|
||||
gptfdisk
|
||||
grml-zsh-config
|
||||
grub
|
||||
hdparm
|
||||
intel-ucode
|
||||
ipw2100-fw
|
||||
ipw2200-fw
|
||||
irssi
|
||||
iw
|
||||
iwd
|
||||
jfsutils
|
||||
kitty-terminfo
|
||||
less
|
||||
libfido2
|
||||
libusb-compat
|
||||
linux
|
||||
linux-atm
|
||||
linux-firmware
|
||||
linux-firmware-bnx2x
|
||||
linux-firmware-marvell
|
||||
linux-firmware-qcom
|
||||
linux-firmware-qlogic
|
||||
linux-firmware-whence
|
||||
livecd-sounds
|
||||
lsscsi
|
||||
lvm2
|
||||
lynx
|
||||
man-db
|
||||
man-pages
|
||||
mc
|
||||
mdadm
|
||||
memtest86+
|
||||
mkinitcpio
|
||||
mkinitcpio-archiso
|
||||
mkinitcpio-nfs-utils
|
||||
modemmanager
|
||||
mtools
|
||||
nano
|
||||
nbd
|
||||
ndisc6
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
nmap
|
||||
ntfs-3g
|
||||
nvme-cli
|
||||
openconnect
|
||||
openssh
|
||||
openvpn
|
||||
partclone
|
||||
parted
|
||||
partimage
|
||||
pcsclite
|
||||
ppp
|
||||
pptpclient
|
||||
pv
|
||||
qemu-guest-agent
|
||||
refind
|
||||
reflector
|
||||
reiserfsprogs
|
||||
rp-pppoe
|
||||
rsync
|
||||
rxvt-unicode-terminfo
|
||||
screen
|
||||
sdparm
|
||||
sg3_utils
|
||||
smartmontools
|
||||
sof-firmware
|
||||
squashfs-tools
|
||||
sudo
|
||||
syslinux
|
||||
systemd-resolvconf
|
||||
tcpdump
|
||||
terminus-font
|
||||
testdisk
|
||||
tmux
|
||||
tpm2-tss
|
||||
udftools
|
||||
usb_modeswitch
|
||||
usbmuxd
|
||||
usbutils
|
||||
vim
|
||||
virtualbox-guest-utils
|
||||
vpnc
|
||||
wireless-regdb
|
||||
wireless_tools
|
||||
wpa_supplicant
|
||||
wvdial
|
||||
xfsprogs
|
||||
xl2tpd
|
||||
zsh
|
||||
|
||||
# System
|
||||
archiso
|
||||
archlinux-appstream-data
|
||||
base-devel
|
||||
bash-completion
|
||||
bluez
|
||||
bluez-utils
|
||||
cdrtools
|
||||
cmake
|
||||
cryfs
|
||||
devtools
|
||||
dkms
|
||||
dvd+rw-tools
|
||||
efitools
|
||||
encfs
|
||||
fuse3
|
||||
fwupd
|
||||
git
|
||||
gnome-disk-utility
|
||||
gnome-keyring
|
||||
gocryptfs
|
||||
gparted
|
||||
grsync
|
||||
haveged
|
||||
htop
|
||||
hwdata
|
||||
hwdetect
|
||||
hwinfo
|
||||
libburn
|
||||
libisofs
|
||||
libisoburn
|
||||
linux-headers
|
||||
logrotate
|
||||
lsb-release
|
||||
os-prober
|
||||
p7zip
|
||||
packagekit
|
||||
pacman-contrib
|
||||
pacutils
|
||||
pahole
|
||||
perl
|
||||
perl-data-dump
|
||||
perl-json
|
||||
perl-lwp-protocol-https
|
||||
perl-term-readline-gnu
|
||||
perl-term-ui
|
||||
pkgfile
|
||||
plocate
|
||||
python-setuptools
|
||||
python-sphinx
|
||||
tlp
|
||||
udftools
|
||||
udisks2
|
||||
unace
|
||||
unrar
|
||||
unzip
|
||||
xdg-user-dirs
|
||||
xz
|
||||
zstd
|
||||
|
||||
# Filesystem
|
||||
gvfs
|
||||
gvfs-afc
|
||||
gvfs-goa
|
||||
gvfs-gphoto2
|
||||
gvfs-mtp
|
||||
gvfs-nfs
|
||||
gvfs-smb
|
||||
|
||||
# Multimedia
|
||||
alsa-lib
|
||||
alsa-plugins
|
||||
alsa-firmware
|
||||
alsa-utils
|
||||
audacious
|
||||
audacious-plugins
|
||||
cdrdao
|
||||
dvdauthor
|
||||
faac
|
||||
faad2
|
||||
ffmpeg
|
||||
ffmpegthumbnailer
|
||||
flac
|
||||
frei0r-plugins
|
||||
gstreamer
|
||||
gst-libav
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
gstreamer-vaapi
|
||||
imagemagick
|
||||
lame
|
||||
libdvdcss
|
||||
libopenraw
|
||||
mencoder
|
||||
mjpegtools
|
||||
mpv
|
||||
poppler-glib
|
||||
# Pipewire - comment pulseaudio packages if using pipewire
|
||||
# pipewire
|
||||
# pipewire-alsa
|
||||
# pipewire-docs
|
||||
# pipewire-jack
|
||||
# pipewire-media-session
|
||||
# pipewire-pulse
|
||||
# alsa-card-profiles
|
||||
# gst-plugin-pipewire
|
||||
# Pulseaudio - comment pipewire packages if using pulseaudio
|
||||
pulseaudio
|
||||
pulseaudio-alsa
|
||||
pulseaudio-bluetooth
|
||||
pulseaudio-equalizer
|
||||
pulseaudio-jack
|
||||
simplescreenrecorder
|
||||
sox
|
||||
transcode
|
||||
smplayer
|
||||
x265
|
||||
x264
|
||||
xvidcore
|
||||
|
||||
# XORG
|
||||
mesa
|
||||
xorg
|
||||
xorg-server
|
||||
xorg-apps
|
||||
xorg-drivers
|
||||
xorg-xkill
|
||||
xorg-xinit
|
||||
xterm
|
||||
|
||||
# Networking
|
||||
avahi
|
||||
curl
|
||||
dnsutils
|
||||
ethtool
|
||||
filezilla
|
||||
firefox
|
||||
firewalld
|
||||
gnome-nettool
|
||||
iptables-nft
|
||||
modemmanager
|
||||
net-tools
|
||||
netctl
|
||||
networkmanager
|
||||
networkmanager-openvpn
|
||||
network-manager-applet
|
||||
nftables
|
||||
nm-connection-editor
|
||||
nss-mdns
|
||||
openresolv
|
||||
r8168
|
||||
wget
|
||||
whois
|
||||
|
||||
# Fonts
|
||||
ttf-dejavu
|
||||
ttf-liberation
|
||||
ttf-bitstream-vera
|
||||
ttf-ubuntu-font-family
|
||||
cantarell-fonts
|
||||
ttf-croscore
|
||||
ttf-carlito
|
||||
ttf-caladea
|
||||
noto-fonts
|
||||
opendesktop-fonts
|
||||
ttf-opensans
|
||||
freetype2
|
||||
|
||||
# Printing Support
|
||||
cups
|
||||
cups-pdf
|
||||
cups-filters
|
||||
cups-pk-helper
|
||||
foomatic-db
|
||||
foomatic-db-engine
|
||||
ghostscript
|
||||
gsfonts
|
||||
gutenprint
|
||||
python-pillow
|
||||
python-pip
|
||||
python-pyqt5
|
||||
python-reportlab
|
||||
simple-scan
|
||||
system-config-printer
|
||||
|
||||
# LXQT
|
||||
accountsservice
|
||||
aisleriot
|
||||
appstream-qt
|
||||
bluez-qt
|
||||
brightnessctl
|
||||
breeze-icons
|
||||
discover
|
||||
featherpad
|
||||
geany
|
||||
guvcview
|
||||
k3b
|
||||
kwin
|
||||
liblxqt
|
||||
libstatgrab
|
||||
libsysstat
|
||||
lximage-qt
|
||||
lxqt-about
|
||||
lxqt-admin
|
||||
lxqt-archiver
|
||||
lxqt-build-tools
|
||||
lxqt-config
|
||||
lxqt-globalkeys
|
||||
lxqt-notificationd
|
||||
lxqt-openssh-askpass
|
||||
lxqt-panel
|
||||
lxqt-policykit
|
||||
lxqt-powermanagement
|
||||
lxqt-qtplugin
|
||||
lxqt-runner
|
||||
lxqt-session
|
||||
lxqt-sudo
|
||||
lxqt-themes
|
||||
meld
|
||||
neofetch
|
||||
networkmanager-qt
|
||||
packagekit-qt5
|
||||
pcmanfm-qt
|
||||
papirus-icon-theme
|
||||
pavucontrol-qt
|
||||
print-manager
|
||||
qbittorrent
|
||||
qterminal
|
||||
screengrab
|
||||
xdg-desktop-portal-lxqt
|
||||
xpdf
|
||||
xscreensaver
|
||||
|
||||
# Display Manager
|
||||
sddm
|
||||
sddm-kcm
|
||||
|
||||
# Calamares dependencies (not listed elsewhere)
|
||||
boost
|
||||
boost-libs
|
||||
dmidecode
|
||||
extra-cmake-modules
|
||||
gtk-update-icon-cache
|
||||
icu
|
||||
kconfig
|
||||
kcoreaddons
|
||||
kdbusaddons
|
||||
kiconthemes
|
||||
ki18n
|
||||
kio
|
||||
kparts
|
||||
kpmcore
|
||||
kservice
|
||||
kwidgetsaddons
|
||||
libpwquality
|
||||
plasma-framework
|
||||
polkit-qt5
|
||||
qt5-location
|
||||
qt5-svg
|
||||
qt5-tools
|
||||
qt5-translations
|
||||
qt5-webengine
|
||||
qt5-xmlpatterns
|
||||
qt5ct
|
||||
solid
|
||||
upower
|
||||
yaml-cpp
|
||||
|
||||
# Calamares
|
||||
calamares
|
||||
ckbcomp
|
||||
mkinitcpio-openswap
|
||||
|
||||
# AUR
|
||||
trizen
|
||||
103
pacman.conf
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
#HookDir = /etc/pacman.d/hooks/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
# We cannot check disk space from within a chroot environment
|
||||
#CheckSpace
|
||||
#VerbosePkgLists
|
||||
ParallelDownloads = 3
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[community-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the multilib repositories as required here.
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[multilib]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
[ezrepo]
|
||||
SigLevel = Optional TrustAll
|
||||
Server = file:///opt/ezrepo
|
||||
28
profiledef.sh
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2034
|
||||
|
||||
iso_name="4rch-lxqt"
|
||||
iso_label="4RCH-LXQT_$(date +%Y%m)"
|
||||
iso_publisher="4RCH Linux <https://github.com/M4RT1NDEV/4rch-linux/>"
|
||||
iso_application="4rch DVD"
|
||||
iso_version="Alpha-0_2"
|
||||
install_dir="arch"
|
||||
buildmodes=('iso')
|
||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito')
|
||||
arch="x86_64"
|
||||
pacman_conf="./pacman.conf"
|
||||
airootfs_image_tool_options=('-comp' 'zstd' '-b' '1M')
|
||||
file_permissions=(
|
||||
["/etc/shadow"]="0:0:0400"
|
||||
["/etc/gshadow"]="0:0:0400"
|
||||
["/etc/sudoers"]="0:0:0440"
|
||||
["/root"]="0:0:750"
|
||||
["/root/.automated_script.sh"]="0:0:755"
|
||||
["/usr/local/bin/choose-mirror"]="0:0:755"
|
||||
["/usr/local/bin/Installation_guide"]="0:0:755"
|
||||
["/usr/local/bin/livecd-sound"]="0:0:755"
|
||||
["/usr/local/bin/ezmaint"]="0:0:755"
|
||||
["/usr/local/bin/ezarch.bios"]="0:0:755"
|
||||
["/usr/local/bin/ezarch.uefi"]="0:0:755"
|
||||
["/usr/local/bin/ezmaint"]="0:0:755"
|
||||
)
|
||||
244
steps.sh
Normal file
|
|
@ -0,0 +1,244 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Template Version: 5.0 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# Release Alpha 0.2
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
KEYMOD="pc105"
|
||||
# pc105 and pc104 are modern standards, all others need to be researched
|
||||
|
||||
MYUSERNM="4rch"
|
||||
# use all lowercase letters only
|
||||
|
||||
MYUSRPASSWD="4rch"
|
||||
# Pick a password of your choice
|
||||
|
||||
RTPASSWD="4rch"
|
||||
# Pick a root password
|
||||
|
||||
MYHOSTNM="4RCH_LIVE"
|
||||
# Pick a hostname for the machine
|
||||
|
||||
# ----------------------------------------
|
||||
# Functions
|
||||
# ----------------------------------------
|
||||
|
||||
# Test for root user
|
||||
rootuser () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
# Display line error
|
||||
handlerror () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
# Clean up working directories
|
||||
cleanup () {
|
||||
[[ -d ./ezreleng ]] && rm -r ./ezreleng
|
||||
[[ -d ./work ]] && rm -r ./work
|
||||
[[ -d ./out ]] && mv ./out ../
|
||||
sleep 2
|
||||
}
|
||||
|
||||
# Requirements and preparation
|
||||
prepreqs () {
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
pacman -S --needed --noconfirm archiso mkinitcpio-archiso
|
||||
}
|
||||
|
||||
# Copy ezreleng to working directory
|
||||
cpezreleng () {
|
||||
cp -r /usr/share/archiso/configs/releng/ ./ezreleng
|
||||
rm -r ./ezreleng/efiboot
|
||||
rm -r ./ezreleng/syslinux
|
||||
}
|
||||
|
||||
# Copy ezrepo to opt
|
||||
cpezrepo () {
|
||||
cp -r ./opt/ezrepo /opt/
|
||||
}
|
||||
|
||||
# Remove ezrepo from opt
|
||||
rmezrepo () {
|
||||
rm -r /opt/ezrepo
|
||||
}
|
||||
|
||||
# Delete automatic login
|
||||
nalogin () {
|
||||
[[ -d ./ezreleng/airootfs/etc/systemd/system/getty@tty1.service.d ]] && rm -r ./ezreleng/airootfs/etc/systemd/system/getty@tty1.service.d
|
||||
}
|
||||
|
||||
# Remove cloud-init and other stuff
|
||||
rmunitsd () {
|
||||
[[ -d ./ezreleng/airootfs/etc/systemd/system/cloud-init.target.wants ]] && rm -r ./ezreleng/airootfs/etc/systemd/system/cloud-init.target.wants
|
||||
[[ -f ./ezreleng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service ]] && rm ./ezreleng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service
|
||||
[[ -f ./ezreleng/airootfs/etc/xdg/reflector/reflector.conf ]] && rm ./ezreleng/airootfs/etc/xdg/reflector/reflector.conf
|
||||
}
|
||||
|
||||
# Add Bluetooth, cups, haveged, NetworkManager, & sddm systemd links
|
||||
addnmlinks () {
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/network-online.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/network-online.target.wants
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/multi-user.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/multi-user.target.wants
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/bluetooth.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/bluetooth.target.wants
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/printer.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/printer.target.wants
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/sockets.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/sockets.target.wants
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/timers.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/timers.target.wants
|
||||
[[ ! -d ./ezreleng/airootfs/etc/systemd/system/sysinit.target.wants ]] && mkdir -p ./ezreleng/airootfs/etc/systemd/system/sysinit.target.wants
|
||||
ln -sf /usr/lib/systemd/system/NetworkManager-wait-online.service ./ezreleng/airootfs/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service
|
||||
ln -sf /usr/lib/systemd/system/NetworkManager-dispatcher.service ./ezreleng/airootfs/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service
|
||||
ln -sf /usr/lib/systemd/system/NetworkManager.service ./ezreleng/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service
|
||||
ln -sf /usr/lib/systemd/system/bluetooth.service ./ezreleng/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service
|
||||
ln -sf /usr/lib/systemd/system/haveged.service ./ezreleng/airootfs/etc/systemd/system/sysinit.target.wants/haveged.service
|
||||
ln -sf /usr/lib/systemd/system/cups.service ./ezreleng/airootfs/etc/systemd/system/printer.target.wants/cups.service
|
||||
ln -sf /usr/lib/systemd/system/cups.socket ./ezreleng/airootfs/etc/systemd/system/sockets.target.wants/cups.socket
|
||||
ln -sf /usr/lib/systemd/system/cups.path ./ezreleng/airootfs/etc/systemd/system/multi-user.target.wants/cups.path
|
||||
ln -sf /usr/lib/systemd/system/bluetooth.service ./ezreleng/airootfs/etc/systemd/system/dbus-org.bluez.service
|
||||
ln -sf /usr/lib/systemd/system/sddm.service ./ezreleng/airootfs/etc/systemd/system/display-manager.service
|
||||
}
|
||||
|
||||
# Copy files to customize the ISO
|
||||
cpmyfiles () {
|
||||
cp packages.x86_64 ./ezreleng/
|
||||
cp pacman.conf ./ezreleng/
|
||||
cp profiledef.sh ./ezreleng/
|
||||
cp -r efiboot ./ezreleng/
|
||||
cp -r syslinux ./ezreleng/
|
||||
cp -r usr ./ezreleng/airootfs/
|
||||
cp -r etc ./ezreleng/airootfs/
|
||||
cp -r opt ./ezreleng/airootfs/
|
||||
ln -sf /usr/share/ezarcher ./ezreleng/airootfs/etc/skel/ezarcher
|
||||
}
|
||||
|
||||
# Set hostname
|
||||
sethostname () {
|
||||
echo "${MYHOSTNM}" > ./ezreleng/airootfs/etc/hostname
|
||||
}
|
||||
|
||||
# Create passwd file
|
||||
crtpasswd () {
|
||||
echo "root:x:0:0:root:/root:/usr/bin/bash
|
||||
"${MYUSERNM}":x:1010:1010::/home/"${MYUSERNM}":/bin/bash" > ./ezreleng/airootfs/etc/passwd
|
||||
}
|
||||
|
||||
# Create group file
|
||||
crtgroup () {
|
||||
echo "root:x:0:root
|
||||
sys:x:3:"${MYUSERNM}"
|
||||
adm:x:4:"${MYUSERNM}"
|
||||
wheel:x:10:"${MYUSERNM}"
|
||||
log:x:19:"${MYUSERNM}"
|
||||
network:x:90:"${MYUSERNM}"
|
||||
floppy:x:94:"${MYUSERNM}"
|
||||
scanner:x:96:"${MYUSERNM}"
|
||||
power:x:98:"${MYUSERNM}"
|
||||
rfkill:x:850:"${MYUSERNM}"
|
||||
users:x:985:"${MYUSERNM}"
|
||||
video:x:860:"${MYUSERNM}"
|
||||
storage:x:870:"${MYUSERNM}"
|
||||
optical:x:880:"${MYUSERNM}"
|
||||
lp:x:840:"${MYUSERNM}"
|
||||
audio:x:890:"${MYUSERNM}"
|
||||
"${MYUSERNM}":x:1010:" > ./ezreleng/airootfs/etc/group
|
||||
}
|
||||
|
||||
# Create shadow file
|
||||
crtshadow () {
|
||||
usr_hash=$(openssl passwd -6 "${MYUSRPASSWD}")
|
||||
root_hash=$(openssl passwd -6 "${RTPASSWD}")
|
||||
echo "root:"${root_hash}":14871::::::
|
||||
"${MYUSERNM}":"${usr_hash}":14871::::::" > ./ezreleng/airootfs/etc/shadow
|
||||
}
|
||||
|
||||
# create gshadow file
|
||||
crtgshadow () {
|
||||
echo "root:!*::root
|
||||
"${MYUSERNM}":!*::" > ./ezreleng/airootfs/etc/gshadow
|
||||
}
|
||||
|
||||
# Set the keyboard layout
|
||||
setkeylayout () {
|
||||
echo "KEYMAP="${KEYMP}"" > ./ezreleng/airootfs/etc/vconsole.conf
|
||||
}
|
||||
|
||||
# Create 00-keyboard.conf file
|
||||
crtkeyboard () {
|
||||
mkdir -p ./ezreleng/airootfs/etc/X11/xorg.conf.d
|
||||
echo "Section \"InputClass\"
|
||||
Identifier \"system-keyboard\"
|
||||
MatchIsKeyboard \"on\"
|
||||
Option \"XkbLayout\" \""${KEYMP}"\"
|
||||
Option \"XkbModel\" \""${KEYMOD}"\"
|
||||
EndSection" > ./ezreleng/airootfs/etc/X11/xorg.conf.d/00-keyboard.conf
|
||||
}
|
||||
|
||||
# Fix 40-locale-gen.hook and create locale.conf
|
||||
crtlocalec () {
|
||||
sed -i "s/en_US/"${LCLST}"/g" ./ezreleng/airootfs/etc/pacman.d/hooks/40-locale-gen.hook
|
||||
echo "LANG="${LCLST}".UTF-8" > ./ezreleng/airootfs/etc/locale.conf
|
||||
}
|
||||
|
||||
# Start mkarchiso
|
||||
runmkarchiso () {
|
||||
mkarchiso -v -w ./work -o ./out ./ezreleng
|
||||
}
|
||||
|
||||
# ----------------------------------------
|
||||
# Run Functions
|
||||
# ----------------------------------------
|
||||
|
||||
rootuser
|
||||
handlerror
|
||||
prepreqs
|
||||
cleanup
|
||||
cpezreleng
|
||||
addnmlinks
|
||||
cpezrepo
|
||||
nalogin
|
||||
rmunitsd
|
||||
cpmyfiles
|
||||
sethostname
|
||||
crtpasswd
|
||||
crtgroup
|
||||
crtshadow
|
||||
crtgshadow
|
||||
setkeylayout
|
||||
crtkeyboard
|
||||
crtlocalec
|
||||
runmkarchiso
|
||||
rmezrepo
|
||||
|
||||
|
||||
# Disclaimer:
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# END
|
||||
#
|
||||
28
syslinux/archiso_head.cfg
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
SERIAL 0 115200
|
||||
UI vesamenu.c32
|
||||
MENU TITLE 4RCH Linux
|
||||
MENU BACKGROUND splash.png
|
||||
|
||||
MENU WIDTH 78
|
||||
MENU MARGIN 4
|
||||
MENU ROWS 7
|
||||
MENU VSHIFT 10
|
||||
MENU TABMSGROW 14
|
||||
MENU CMDLINEROW 14
|
||||
MENU HELPMSGROW 16
|
||||
MENU HELPMSGENDROW 29
|
||||
|
||||
# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
|
||||
|
||||
MENU COLOR border 30;44 #40ffffff #a0000000 std
|
||||
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
|
||||
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
|
||||
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
|
||||
MENU COLOR help 37;40 #c0ffffff #a0000000 std
|
||||
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
|
||||
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
|
||||
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
|
||||
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
|
||||
|
||||
MENU CLEAR
|
||||
MENU IMMEDIATE
|
||||
32
syslinux/archiso_pxe-linux.cfg
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
LABEL arch64_nbd
|
||||
TEXT HELP
|
||||
Boot the 4RCH Linux using NBD.
|
||||
It allows you to install 4RCH Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL 4RCH Linux (x86_64, NBD)
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify cow_spacesize=4G
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL arch64_nfs
|
||||
TEXT HELP
|
||||
Boot the 4RCH Linux using NFS.
|
||||
It allows you to install 4RCH Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL 4RCH Linux (x86_64, NFS)
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt checksum verify cow_spacesize=4G
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL arch64_http
|
||||
TEXT HELP
|
||||
Boot the 4RCH Linux using HTTP.
|
||||
It allows you to install 4RCH Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL 4RCH Linux (x86_64, HTTP)
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ checksum verify cow_spacesize=4G
|
||||
SYSAPPEND 3
|
||||
5
syslinux/archiso_pxe.cfg
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
INCLUDE archiso_head.cfg
|
||||
|
||||
INCLUDE archiso_pxe-linux.cfg
|
||||
|
||||
INCLUDE archiso_tail.cfg
|
||||
31
syslinux/archiso_sys-linux.cfg
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
LABEL arch64
|
||||
TEXT HELP
|
||||
Boot the 4RCH Linux install medium on BIOS.
|
||||
It allows you to install 4RCH Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL 4RCH Linux (x86_64, BIOS)
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=4G
|
||||
|
||||
# Accessibility boot option
|
||||
LABEL arch64speech
|
||||
TEXT HELP
|
||||
Boot the 4RCH Linux install medium on BIOS with speakup screen reader.
|
||||
It allows you to install 4RCH Linux or perform system maintenance with speech feedback.
|
||||
ENDTEXT
|
||||
MENU LABEL 4RCH Linux (x86_64, BIOS) with ^speech
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% accessibility=on cow_spacesize=4G
|
||||
|
||||
# Copy to RAM boot option
|
||||
#LABEL arch64ram
|
||||
#TEXT HELP
|
||||
#Boot the 4RCH Linux on BIOS with Copy-to-RAM option
|
||||
#It allows you to install 4RCH Linux or perform system maintenance.
|
||||
#ENDTEXT
|
||||
#MENU LABEL Arch Linux install medium (x86_64, BIOS, Copy to RAM)
|
||||
#LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
#INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
#APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% copytoram cow_spacesize=4G
|
||||
8
syslinux/archiso_sys.cfg
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
INCLUDE archiso_head.cfg
|
||||
|
||||
DEFAULT arch64
|
||||
TIMEOUT 150
|
||||
|
||||
INCLUDE archiso_sys-linux.cfg
|
||||
|
||||
INCLUDE archiso_tail.cfg
|
||||
35
syslinux/archiso_tail.cfg
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
LABEL existing
|
||||
TEXT HELP
|
||||
Boot an existing operating system.
|
||||
Press TAB to edit the disk and partition number to boot.
|
||||
ENDTEXT
|
||||
MENU LABEL Boot existing OS
|
||||
COM32 chain.c32
|
||||
APPEND hd0 0
|
||||
|
||||
# http://www.memtest.org/
|
||||
LABEL memtest
|
||||
MENU LABEL Run Memtest86+ (RAM test)
|
||||
LINUX /%INSTALL_DIR%/boot/memtest
|
||||
|
||||
# http://hdt-project.org/
|
||||
LABEL hdt
|
||||
MENU LABEL Hardware Information (HDT)
|
||||
COM32 hdt.c32
|
||||
APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
|
||||
|
||||
LABEL reboot
|
||||
TEXT HELP
|
||||
Reboot computer.
|
||||
The computer's firmware must support APM.
|
||||
ENDTEXT
|
||||
MENU LABEL Reboot
|
||||
COM32 reboot.c32
|
||||
|
||||
LABEL poweroff
|
||||
TEXT HELP
|
||||
Power off computer.
|
||||
The computer's firmware must support APM.
|
||||
ENDTEXT
|
||||
MENU LABEL Power Off
|
||||
COM32 poweroff.c32
|
||||
BIN
syslinux/splash.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
syslinux/splash.png~
Normal file
|
After Width: | Height: | Size: 251 KiB |
11
syslinux/syslinux.cfg
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
DEFAULT select
|
||||
|
||||
LABEL select
|
||||
COM32 whichsys.c32
|
||||
APPEND -pxe- pxe -sys- sys -iso- sys
|
||||
|
||||
LABEL pxe
|
||||
CONFIG archiso_pxe.cfg
|
||||
|
||||
LABEL sys
|
||||
CONFIG archiso_sys.cfg
|
||||
731
usr/local/bin/ezarch.bios
Normal file
|
|
@ -0,0 +1,731 @@
|
|||
#!/bin/bash
|
||||
|
||||
# EZ Arch Installer - BIOS
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/4RCH/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
# List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerr () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
welcome () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Welcome to the 4RCH Installer Script ="
|
||||
echo "= ="
|
||||
echo "= BIOS Edition ="
|
||||
echo "= Version 6.5 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by M4DEV ="
|
||||
echo "= https://github.com/M4RT1NDEV/4rch-linux ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
hrdclck () {
|
||||
clear
|
||||
timedatectl set-ntp true
|
||||
}
|
||||
|
||||
usrname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user name, be exact, and press Enter: " USRNAME
|
||||
[[ -z "$USRNAME" ]] && usrname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User name set to "${USRNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usrpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user password, be exact, and press Enter: " USRPWD
|
||||
[[ -z "$USRPWD" ]] && usrpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User password set to "${USRPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rtpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your root password, be exact, and press Enter: " RTPWD
|
||||
[[ -z "$RTPWD" ]] && rtpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root password set to "${RTPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
hstname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your hostname, be exact, and press Enter: " HSTNAME
|
||||
[[ -z "$HSTNAME" ]] && hstname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Hostname set to "${HSTNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
swapsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Swap Partition Size (2G, 4G, or 8G): " SWPSIZE
|
||||
case $SWPSIZE in
|
||||
2|2G|2g)
|
||||
SWPSIZE=2GiB
|
||||
;;
|
||||
4|4G|4g)
|
||||
SWPSIZE=4GiB
|
||||
;;
|
||||
8|8G|8g)
|
||||
SWPSIZE=8Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset SWPSIZE
|
||||
swapsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "SWAP Partition Set To "${SWPSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rootsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Root Partition Size (20G, 40G, or 60G): " RTSIZE
|
||||
case $RTSIZE in
|
||||
20|20G|20g)
|
||||
RTSIZE=20GiB
|
||||
;;
|
||||
40|40G|40g)
|
||||
RTSIZE=40GiB
|
||||
;;
|
||||
60|60G|60g)
|
||||
RTSIZE=60Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset RTSIZE
|
||||
rootsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root Partition Set To "${RTSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvsd () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. sda), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvsd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvnv () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. nvme0n1), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvnv
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartsd () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+8MiB -t 0:ef02 -c 0:grub /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartsd () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\2
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartsd () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartnv () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+8MiB -t 0:ef02 -c 0:grub /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartnv () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\p2
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\p3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\p4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartnv () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\p3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\p4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\p2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
psbase () {
|
||||
clear
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Pacstrap base system complete..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkfstab () {
|
||||
clear
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
clear
|
||||
}
|
||||
|
||||
syshstnm () {
|
||||
clear
|
||||
echo ""${HSTNAME}"" > /mnt/etc/hostname
|
||||
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
||||
echo "::1 localhost" >> /mnt/etc/hosts
|
||||
echo "127.0.1.1 "${HSTNAME}".localdomain "${HSTNAME}"" >> /mnt/etc/hosts
|
||||
clear
|
||||
}
|
||||
|
||||
syslocale () {
|
||||
clear
|
||||
echo ""${LCLST}".UTF-8 UTF-8" >> /mnt/etc/locale.gen
|
||||
echo "LANG="${LCLST}".UTF-8" > /mnt/etc/locale.conf
|
||||
echo "KEYMAP="${KEYMP}"" > /mnt/etc/vconsole.conf
|
||||
arch-chroot /mnt locale-gen
|
||||
arch-chroot /mnt localectl set-locale LANG="${LCLST}".UTF-8
|
||||
arch-chroot /mnt localectl set-keymap "${KEYMP}"
|
||||
clear
|
||||
}
|
||||
|
||||
sysusrpwd () {
|
||||
clear
|
||||
arch-chroot /mnt useradd -mU -s /bin/bash -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm "${USRNAME}"
|
||||
arch-chroot /mnt chpasswd <<< ""${USRNAME}":"${USRPWD}""
|
||||
arch-chroot /mnt chpasswd <<< "root:"${RTPWD}""
|
||||
clear
|
||||
}
|
||||
|
||||
systmzone () {
|
||||
clear
|
||||
arch-chroot /mnt hwclock --systohc --utc
|
||||
arch-chroot /mnt timedatectl set-ntp true
|
||||
arch-chroot /mnt rm -rf /etc/localtime
|
||||
arch-chroot /mnt ln -sf /usr/share/zoneinfo/"${MYTMZ}" /etc/localtime
|
||||
clear
|
||||
}
|
||||
|
||||
sysconfig () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Basic system config completed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgrub () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
arch-chroot /mnt grub-install --target=i386-pc /dev/"${TRGTDRV}"
|
||||
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
||||
arch-chroot /mnt mkinitcpio -p linux-lts
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Grub installed & mkinicpio run..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxorg () {
|
||||
clear
|
||||
pacstrap /mnt xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Xorg installed installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgen () {
|
||||
clear
|
||||
pacstrap /mnt amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable bluetooth.service
|
||||
arch-chroot /mnt systemctl enable fstrim.timer
|
||||
arch-chroot /mnt systemctl enable haveged.service
|
||||
arch-chroot /mnt systemctl enable plocate-updatedb.timer
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "General packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcalamdep () {
|
||||
clear
|
||||
pacstrap /mnt boost boost-libs dmidecode extra-cmake-modules gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality plasma-framework polkit-qt5 qt5-location qt5-svg qt5-tools qt5-translations qt5-webengine qt5-xmlpatterns qt5ct solid upower yaml-cpp
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Calamares dependencies installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmedia () {
|
||||
clear
|
||||
pacstrap /mnt alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Multimedia packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instnet () {
|
||||
clear
|
||||
pacstrap /mnt avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nftables nm-connection-editor nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable NetworkManager.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Networking packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instfonts () {
|
||||
clear
|
||||
pacstrap /mnt ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Fonts packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instprint () {
|
||||
clear
|
||||
pacstrap /mnt cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable cups.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Printing packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instlxqt () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "LXQt desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instkde () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "KDE Plasma desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxfce () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "XFCE desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmate () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mate desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcinn () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Cinnamon desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgnome () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable gdm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Gnome desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
invalid () {
|
||||
echo -e "\n"
|
||||
echo "Invalid answer, Please try again"
|
||||
sleep 2
|
||||
}
|
||||
|
||||
make_upht () { while true
|
||||
do
|
||||
clear
|
||||
echo "----------------------------------"
|
||||
echo " User, Passwords, & Hostname"
|
||||
echo "----------------------------------"
|
||||
echo ""
|
||||
echo " 1) Create user name"
|
||||
echo " 2) Make user password"
|
||||
echo " 3) Make root password"
|
||||
echo " 4) Make hostname"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice2
|
||||
case $choice2 in
|
||||
1 ) usrname ;;
|
||||
2 ) usrpwd ;;
|
||||
3 ) rtpwd ;;
|
||||
4 ) hstname ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
sata_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.sda)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice3
|
||||
case $choice3 in
|
||||
1 ) trgtdrvsd ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartsd ;;
|
||||
5 ) frmtpartsd ;;
|
||||
6 ) mntpartsd ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
nvme_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.nvme0n1)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice4
|
||||
case $choice4 in
|
||||
1 ) trgtdrvnv ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartnv ;;
|
||||
5 ) frmtpartnv ;;
|
||||
6 ) mntpartnv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
chdrvtype () { while true
|
||||
do
|
||||
clear
|
||||
echo "-----------------------------------"
|
||||
echo " Choose SATA or NVME Disk"
|
||||
echo "-----------------------------------"
|
||||
echo ""
|
||||
echo " 1) SATA Disk"
|
||||
echo " 2) NVME Disk"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice5
|
||||
case $choice5 in
|
||||
1 ) sata_drv ;;
|
||||
2 ) nvme_drv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_soft () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Install Software Categories"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Xorg"
|
||||
echo " 2) General"
|
||||
echo " 3) Multimedia"
|
||||
echo " 4) Networking"
|
||||
echo " 5) Fonts"
|
||||
echo " 6) Printing support"
|
||||
echo " 7) Calamares dependencies"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice6
|
||||
case $choice6 in
|
||||
1 ) instxorg ;;
|
||||
2 ) instgen ;;
|
||||
3 ) instmedia ;;
|
||||
4 ) instnet ;;
|
||||
5 ) instfonts ;;
|
||||
6 ) instprint ;;
|
||||
7 ) instcalamdep ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_desk () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Choose A Desktop"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) LXQt"
|
||||
echo " 2) Plasma"
|
||||
echo " 3) XFCE"
|
||||
echo " 4) Mate"
|
||||
echo " 5) Cinnamon"
|
||||
echo " 6) Gnome"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice7
|
||||
case $choice7 in
|
||||
1 ) instlxqt ;;
|
||||
2 ) instkde ;;
|
||||
3 ) instxfce ;;
|
||||
4 ) instmate ;;
|
||||
5 ) instcinn ;;
|
||||
6 ) instgnome ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZ Arch Installer - BIOS Systems"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Username, Passwords, & Hostname"
|
||||
echo " 2) Choose Device Type & Partition Drive"
|
||||
echo " 3) Install Base System (pacstrap)"
|
||||
echo " 4) Configure System Settings"
|
||||
echo " 5) Install Broad Categories of Software"
|
||||
echo " 6) Choose Desktop"
|
||||
echo " 7) Install GRUB"
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " choice1
|
||||
case $choice1 in
|
||||
1 ) make_upht ;;
|
||||
2 ) chdrvtype ;;
|
||||
3 ) psbase ;;
|
||||
4 ) mkfstab; syshstnm; syslocale; sysusrpwd; systmzone; sysconfig ;;
|
||||
5 ) inst_soft ;;
|
||||
6 ) inst_desk ;;
|
||||
7 ) instgrub ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerr
|
||||
welcome
|
||||
hrdclck
|
||||
main_menu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
738
usr/local/bin/ezarch.uefi
Normal file
|
|
@ -0,0 +1,738 @@
|
|||
#!/bin/bash
|
||||
|
||||
# EZ Arch Installer - UEFI
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ----------------------------------------
|
||||
# Define Variables
|
||||
# ----------------------------------------
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
# List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
# Format is language_COUNTRY where language is lower case two letter code
|
||||
# and country is upper case two letter code, separated with an underscore
|
||||
|
||||
KEYMP="us"
|
||||
# Use lower case two letter country code
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerr () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
clear
|
||||
}
|
||||
|
||||
welcome () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= Welcome to the 4RCH Installer Script ="
|
||||
echo "= ="
|
||||
echo "= UEFI Edition ="
|
||||
echo "= Version 6.5 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by M4DEV ="
|
||||
echo "= https://github.com/M4RT1NDEV/4rch-linux ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
hrdclck () {
|
||||
clear
|
||||
timedatectl set-ntp true
|
||||
}
|
||||
|
||||
usrname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user name, be exact, and press Enter: " USRNAME
|
||||
[[ -z "$USRNAME" ]] && usrname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User name set to "${USRNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usrpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your user password, be exact, and press Enter: " USRPWD
|
||||
[[ -z "$USRPWD" ]] && usrpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User password set to "${USRPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rtpwd () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your root password, be exact, and press Enter: " RTPWD
|
||||
[[ -z "$RTPWD" ]] && rtpwd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root password set to "${RTPWD}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
hstname () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Type your hostname, be exact, and press Enter: " HSTNAME
|
||||
[[ -z "$HSTNAME" ]] && hstname
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Hostname set to "${HSTNAME}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
swapsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Swap Partition Size (2G, 4G, or 8G): " SWPSIZE
|
||||
case $SWPSIZE in
|
||||
2|2G|2g)
|
||||
SWPSIZE=2GiB
|
||||
;;
|
||||
4|4G|4g)
|
||||
SWPSIZE=4GiB
|
||||
;;
|
||||
8|8G|8g)
|
||||
SWPSIZE=8Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset SWPSIZE
|
||||
swapsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "SWAP Partition Set To "${SWPSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
rootsize () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
read -p "Pick Root Partition Size (20G, 40G, or 60G): " RTSIZE
|
||||
case $RTSIZE in
|
||||
20|20G|20g)
|
||||
RTSIZE=20GiB
|
||||
;;
|
||||
40|40G|40g)
|
||||
RTSIZE=40GiB
|
||||
;;
|
||||
60|60G|60g)
|
||||
RTSIZE=60Gib
|
||||
;;
|
||||
*)
|
||||
echo "Invalid input..."
|
||||
sleep 2
|
||||
unset RTSIZE
|
||||
rootsize
|
||||
;;
|
||||
esac
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Root Partition Set To "${RTSIZE}""
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvsd () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. sda), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvsd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
trgtdrvnv () {
|
||||
clear
|
||||
echo -e "Check to see the available drives: \n"
|
||||
/bin/lsblk
|
||||
echo -e "\n"
|
||||
read -p "Type your target device (e.g. nvme0n1), be exact, and press Enter: " TRGTDRV
|
||||
[[ -z "$TRGTDRV" ]] && trgtdrvnv
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Target device set to "${TRGTDRV}"..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartsd () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartsd () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\2
|
||||
mkfs.fat -F32 /dev/"${TRGTDRV}"\1
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartsd () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\3 /mnt
|
||||
mkdir /mnt/efi
|
||||
mount /dev/"${TRGTDRV}"\1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkpartnv () {
|
||||
clear
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192
|
||||
dd bs=512 if=/dev/zero of=/dev/"${TRGTDRV}" count=8192 seek=$((`blockdev --getsz /dev/"${TRGTDRV}"` - 8192))
|
||||
sgdisk -og /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+650MiB -t 0:ef00 -c 0:efi /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${SWPSIZE}" -t 0:8200 -c 0:swap /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:+"${RTSIZE}" -t 0:8303 -c 0:root /dev/"${TRGTDRV}"
|
||||
sgdisk -n 0:0:0 -t 0:8302 -c 0:home /dev/"${TRGTDRV}"
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions created..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
frmtpartnv () {
|
||||
clear
|
||||
mkswap -L swap /dev/"${TRGTDRV}"\p2
|
||||
mkfs.fat -F32 /dev/"${TRGTDRV}"\p1
|
||||
mkfs.ext4 -L root /dev/"${TRGTDRV}"\p3
|
||||
mkfs.ext4 -L home /dev/"${TRGTDRV}"\p4
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Partitions formatted..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mntpartnv () {
|
||||
clear
|
||||
mount /dev/"${TRGTDRV}"\p3 /mnt
|
||||
mkdir /mnt/efi
|
||||
mount /dev/"${TRGTDRV}"\p1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/"${TRGTDRV}"\p4 /mnt/home
|
||||
swapon /dev/"${TRGTDRV}"\p2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mounted partitions..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
psbase () {
|
||||
clear
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Pacstrap base system complete..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mkfstab () {
|
||||
clear
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
clear
|
||||
}
|
||||
|
||||
syshstnm () {
|
||||
clear
|
||||
echo ""${HSTNAME}"" > /mnt/etc/hostname
|
||||
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
||||
echo "::1 localhost" >> /mnt/etc/hosts
|
||||
echo "127.0.1.1 "${HSTNAME}".localdomain "${HSTNAME}"" >> /mnt/etc/hosts
|
||||
clear
|
||||
}
|
||||
|
||||
syslocale () {
|
||||
clear
|
||||
echo ""${LCLST}".UTF-8 UTF-8" >> /mnt/etc/locale.gen
|
||||
echo "LANG="${LCLST}".UTF-8" > /mnt/etc/locale.conf
|
||||
echo "KEYMAP="${KEYMP}"" > /mnt/etc/vconsole.conf
|
||||
arch-chroot /mnt locale-gen
|
||||
arch-chroot /mnt localectl set-locale LANG="${LCLST}".UTF-8
|
||||
arch-chroot /mnt localectl set-keymap "${KEYMP}"
|
||||
clear
|
||||
}
|
||||
|
||||
sysusrpwd () {
|
||||
clear
|
||||
arch-chroot /mnt useradd -mU -s /bin/bash -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm "${USRNAME}"
|
||||
arch-chroot /mnt chpasswd <<< ""${USRNAME}":"${USRPWD}""
|
||||
arch-chroot /mnt chpasswd <<< "root:"${RTPWD}""
|
||||
clear
|
||||
}
|
||||
|
||||
systmzone () {
|
||||
clear
|
||||
arch-chroot /mnt hwclock --systohc --utc
|
||||
arch-chroot /mnt timedatectl set-ntp true
|
||||
arch-chroot /mnt rm -rf /etc/localtime
|
||||
arch-chroot /mnt ln -sf /usr/share/zoneinfo/"${MYTMZ}" /etc/localtime
|
||||
clear
|
||||
}
|
||||
|
||||
sysconfig () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Basic system config completed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgrub () {
|
||||
clear
|
||||
echo -e "\n"
|
||||
arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --recheck
|
||||
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
||||
arch-chroot /mnt mkinitcpio -p linux-lts
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Grub installed & mkinicpio run..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxorg () {
|
||||
clear
|
||||
pacstrap /mnt xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Xorg installed installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgen () {
|
||||
clear
|
||||
pacstrap /mnt amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable bluetooth.service
|
||||
arch-chroot /mnt systemctl enable fstrim.timer
|
||||
arch-chroot /mnt systemctl enable haveged.service
|
||||
arch-chroot /mnt systemctl enable plocate-updatedb.timer
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "General packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcalamdep () {
|
||||
clear
|
||||
pacstrap /mnt boost boost-libs dmidecode extra-cmake-modules gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality plasma-framework polkit-qt5 qt5-location qt5-svg qt5-tools qt5-translations qt5-webengine qt5-xmlpatterns qt5ct solid upower yaml-cpp
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Calamares dependencies installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmedia () {
|
||||
clear
|
||||
pacstrap /mnt alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Multimedia packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instnet () {
|
||||
clear
|
||||
pacstrap /mnt avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nftables nm-connection-editor nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable NetworkManager.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Networking packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instfonts () {
|
||||
clear
|
||||
pacstrap /mnt ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Fonts packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instprint () {
|
||||
clear
|
||||
pacstrap /mnt cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable cups.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Printing packages installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instlxqt () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "LXQt desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instkde () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "KDE Plasma desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instxfce () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "XFCE desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instmate () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mate desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instcinn () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable sddm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Cinnamon desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
instgnome () {
|
||||
clear
|
||||
pacstrap /mnt accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
sleep 2
|
||||
arch-chroot /mnt systemctl enable gdm.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Gnome desktop installed..."
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
invalid () {
|
||||
echo -e "\n"
|
||||
echo "Invalid answer, Please try again"
|
||||
sleep 2
|
||||
}
|
||||
|
||||
make_upht () { while true
|
||||
do
|
||||
clear
|
||||
echo "----------------------------------"
|
||||
echo " User, Passwords, & Hostname"
|
||||
echo "----------------------------------"
|
||||
echo ""
|
||||
echo " 1) Create user name"
|
||||
echo " 2) Make user password"
|
||||
echo " 3) Make root password"
|
||||
echo " 4) Make hostname"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice2
|
||||
case $choice2 in
|
||||
1 ) usrname ;;
|
||||
2 ) usrpwd ;;
|
||||
3 ) rtpwd ;;
|
||||
4 ) hstname ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
sata_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.sda)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice3
|
||||
case $choice3 in
|
||||
1 ) trgtdrvsd ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartsd ;;
|
||||
5 ) frmtpartsd ;;
|
||||
6 ) mntpartsd ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
nvme_drv () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Partition Drive"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Enter device name (e.g.nvme0n1)"
|
||||
echo " 2) Choose Swap partition size"
|
||||
echo " 3) Choose Root partition size"
|
||||
echo " ** Remaining space will be /home **"
|
||||
echo " 4) Create partitions"
|
||||
echo " 5) Format partitions (ext4)"
|
||||
echo " 6) Mount partitions"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice4
|
||||
case $choice4 in
|
||||
1 ) trgtdrvnv ;;
|
||||
2 ) swapsize ;;
|
||||
3 ) rootsize ;;
|
||||
4 ) mkpartnv ;;
|
||||
5 ) frmtpartnv ;;
|
||||
6 ) mntpartnv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
chdrvtype () { while true
|
||||
do
|
||||
clear
|
||||
echo "-----------------------------------"
|
||||
echo " Choose SATA or NVME Disk"
|
||||
echo "-----------------------------------"
|
||||
echo ""
|
||||
echo " 1) SATA Disk"
|
||||
echo " 2) NVME Disk"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice5
|
||||
case $choice5 in
|
||||
1 ) sata_drv ;;
|
||||
2 ) nvme_drv ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_soft () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Install Software Categories"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) Xorg"
|
||||
echo " 2) General"
|
||||
echo " 3) Multimedia"
|
||||
echo " 4) Networking"
|
||||
echo " 5) Fonts"
|
||||
echo " 6) Printing support"
|
||||
echo " 7) Calamares dependencies"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice6
|
||||
case $choice6 in
|
||||
1 ) instxorg ;;
|
||||
2 ) instgen ;;
|
||||
3 ) instmedia ;;
|
||||
4 ) instnet ;;
|
||||
5 ) instfonts ;;
|
||||
6 ) instprint ;;
|
||||
7 ) instcalamdep ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
inst_desk () { while true
|
||||
do
|
||||
clear
|
||||
echo "--------------------------------"
|
||||
echo " Choose A Desktop"
|
||||
echo "--------------------------------"
|
||||
echo ""
|
||||
echo " 1) LXQt"
|
||||
echo " 2) Plasma"
|
||||
echo " 3) XFCE"
|
||||
echo " 4) Mate"
|
||||
echo " 5) Cinnamon"
|
||||
echo " 6) Gnome"
|
||||
echo ""
|
||||
echo " R) Return to menu"
|
||||
echo -e "\n"
|
||||
read -p "Please enter your choice: " choice7
|
||||
case $choice7 in
|
||||
1 ) instlxqt ;;
|
||||
2 ) instkde ;;
|
||||
3 ) instxfce ;;
|
||||
4 ) instmate ;;
|
||||
5 ) instcinn ;;
|
||||
6 ) instgnome ;;
|
||||
r|R ) main_menu ;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main_menu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " EZ Arch Installer - UEFI Systems"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Username, Passwords, & Hostname"
|
||||
echo " 2) Choose Device Type & Partition Drive"
|
||||
echo " 3) Install Base System (pacstrap)"
|
||||
echo " 4) Configure System Settings"
|
||||
echo " 5) Install Broad Categories of Software"
|
||||
echo " 6) Choose Desktop"
|
||||
echo " 7) Install GRUB"
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " choice1
|
||||
case $choice1 in
|
||||
1 ) make_upht ;;
|
||||
2 ) chdrvtype ;;
|
||||
3 ) psbase ;;
|
||||
4 ) mkfstab; syshstnm; syslocale; sysusrpwd; systmzone; sysconfig ;;
|
||||
5 ) inst_soft ;;
|
||||
6 ) inst_desk ;;
|
||||
7 ) instgrub ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerr
|
||||
welcome
|
||||
hrdclck
|
||||
main_menu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
206
usr/local/bin/ezmaint
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 4RCH maintenance
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
||||
# ---------------------------------------
|
||||
# Define Functions:
|
||||
# ---------------------------------------
|
||||
|
||||
handlerror () {
|
||||
clear
|
||||
set -uo pipefail
|
||||
trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
|
||||
}
|
||||
|
||||
welcomer () {
|
||||
clear
|
||||
echo "==================================================="
|
||||
echo "= ="
|
||||
echo "= 4RCH Maintenance Script ="
|
||||
echo "= ="
|
||||
echo "= ="
|
||||
echo "= Version 2.3 (Release) ="
|
||||
echo "= ="
|
||||
echo "= Brought to you by M3DEV ="
|
||||
echo "= https://github.com/M4RT1NDEV/4rch-linux ="
|
||||
echo "= ="
|
||||
echo -e "=================================================== \n"
|
||||
sleep 4
|
||||
}
|
||||
|
||||
failedsrvs () {
|
||||
clear
|
||||
systemctl --failed > /tmp/failedsrvs
|
||||
nano /tmp/failedsrvs
|
||||
clear
|
||||
echo -e "\n"
|
||||
rm /tmp/failedsrvs
|
||||
clear
|
||||
}
|
||||
|
||||
journalchk () {
|
||||
clear
|
||||
journalctl -p 3 -xb > /tmp/journalchk
|
||||
nano /tmp/journalchk
|
||||
clear
|
||||
echo -e "\n"
|
||||
rm /tmp/journalchk
|
||||
clear
|
||||
}
|
||||
|
||||
journalcln () {
|
||||
clear
|
||||
journalctl --vacuum-time=2weeks
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Journal directory cleaned"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
sysupdate () {
|
||||
clear
|
||||
pacman -Syu
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Full system upgrade finished"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
pkgsccache () {
|
||||
clear
|
||||
pacman -Scc
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Package cache cleaned"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
keysreset () {
|
||||
clear
|
||||
rm /var/lib/pacman/sync/*
|
||||
rm -rf /etc/pacman.d/gnupg/*
|
||||
pacman-key --init
|
||||
pacman-key --populate
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "All pacman keys are reset"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
usercachecln () {
|
||||
clear
|
||||
echo "[Unit]
|
||||
Description=Clean primary user cache on boot.
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/bash /usr/local/bin/clnusercache.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" > /usr/lib/systemd/system/clnusercache.service
|
||||
echo "#!/bin/bash
|
||||
rm -r /home/*/.cache/*
|
||||
rm /etc/systemd/system/multi-user.target.wants/clnusercache.service" > /usr/local/bin/clnusercache.sh
|
||||
chmod +x /usr/local/bin/clnusercache.sh
|
||||
ln -sf /usr/lib/systemd/system/clnusercache.service /etc/systemd/system/multi-user.target.wants/clnusercache.service
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "User's cache directory cleaned on next boot"
|
||||
sleep 3
|
||||
clear
|
||||
}
|
||||
|
||||
runreflector () {
|
||||
clear
|
||||
reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
|
||||
clear
|
||||
echo -e "\n"
|
||||
echo "Mirrorlist regenerated"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
enfirewall () {
|
||||
clear
|
||||
systemctl enable firewalld.service
|
||||
systemctl start firewalld.service
|
||||
clear
|
||||
echo "Firewalld Service is enabled"
|
||||
sleep 2
|
||||
clear
|
||||
}
|
||||
|
||||
mainmenu () { while true
|
||||
do
|
||||
clear
|
||||
echo "-------------------------------------"
|
||||
echo " 4RCH Maintenance Script"
|
||||
echo "-------------------------------------"
|
||||
echo ""
|
||||
echo " 1) Failed systemd services"
|
||||
echo " 2) Check journal logs"
|
||||
echo " 3) Cleanup journal space"
|
||||
echo " 4) Run system update"
|
||||
echo " 5) Clean package cache"
|
||||
echo " 6) Reset all pacman keys"
|
||||
echo " 7) Clean user cache on next boot"
|
||||
echo " 8) Regenerate mirrorlist"
|
||||
echo " 9) Enable Firewalld Service"
|
||||
|
||||
echo ""
|
||||
echo " X) Exit"
|
||||
echo -e "\n"
|
||||
read -p "Enter your choice: " optionA
|
||||
case $optionA in
|
||||
1 ) failedsrvs ;;
|
||||
2 ) journalchk ;;
|
||||
3 ) journalcln ;;
|
||||
4 ) sysupdate ;;
|
||||
5 ) pkgsccache ;;
|
||||
6 ) keysreset ;;
|
||||
7 ) usercachecln ;;
|
||||
8 ) runreflector ;;
|
||||
9 ) enfirewall ;;
|
||||
x|X ) exit;;
|
||||
* ) invalid ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
ROOTUSER () {
|
||||
if [[ "$EUID" = 0 ]]; then
|
||||
continue
|
||||
else
|
||||
echo "Please Run As Root"
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
ROOTUSER
|
||||
handlerror
|
||||
welcomer
|
||||
mainmenu
|
||||
|
||||
done
|
||||
|
||||
# Disclaimer:
|
||||
# THIS SOFTWARE IS PROVIDED BY EZNIX “AS IS” AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL EZNIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# END
|
||||
13
usr/share/applications/ezmaint.desktop
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=4RCH Maint Tool
|
||||
Comment=4rch tool
|
||||
Categories=System;
|
||||
Keywords=System;
|
||||
Exec=pkexec /usr/local/bin/ezmaint
|
||||
Icon=/usr/share/icons/default/lava-lamp.png
|
||||
Path=/usr/local/bin
|
||||
Terminal=true
|
||||
StartupNotify=false
|
||||
Name=4rch
|
||||
37
usr/share/ezarcher/Docs/auto-cache-clean.txt
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
Managing the package cache
|
||||
|
||||
check how many cached packages are available in my cache folder.
|
||||
$ sudo ls /var/cache/pacman/pkg/ | wc -l
|
||||
|
||||
|
||||
check the total disk space used by the cache folder.
|
||||
$ du -sh /var/cache/pacman/pkg/
|
||||
|
||||
|
||||
Automatically clean the package cache using pacman hooks.
|
||||
|
||||
To do so, create a file /etc/pacman.d/hooks/clean_package_cache.hook:
|
||||
|
||||
$ sudo mkdir /etc/pacman.d/hooks
|
||||
$ sudo nano /etc/pacman.d/hooks/clean_package_cache.hook
|
||||
|
||||
Add the following lines:
|
||||
|
||||
[Trigger]
|
||||
Operation = Upgrade
|
||||
Operation = Install
|
||||
Operation = Remove
|
||||
Type = Package
|
||||
Target = *
|
||||
[Action]
|
||||
Description = Cleaning pacman cache...
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/paccache -rk 1
|
||||
|
||||
Save and close the file.
|
||||
|
||||
From now on, the package cache will be cleaned automatically after every pacman transactions (like upgrade, install, remove).
|
||||
You don’t have to run paccache command manually every time.
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
188
usr/share/ezarcher/Docs/ezarch-install-howto.txt
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
ezarch Installation HowTo
|
||||
|
||||
The ezarch installation scripts are simple, menu driven, Arch installation scripts written in BASH. It does require root privilege to run. Both ezarch.bios and ezarch.uefi operate in nearly identical fashion, the only difference being the type of system you wish to install to, namely legacy BIOS or UEFI. For the purposes of this HowTo, the ezarch.uefi script will be used in the examples. All the interactive steps in both scripts are the same.
|
||||
|
||||
Before starting the installation script, there are some variables to set to determine the time zone, locale, and keyboard layout. The defaults are:
|
||||
|
||||
MYTMZ="America/Phoenix"
|
||||
List possible timezones from: /usr/share/zoneinfo/...
|
||||
|
||||
LCLST="en_US"
|
||||
Format is language_COUNTRY where language is lower case two letter code and country is upper case two letter code, separated with an underscore.
|
||||
|
||||
KEYMP="us"
|
||||
Use lower case two letter country code.
|
||||
|
||||
If you want to specify other, copy the script to the home folder so it is writable and edit the script in your favorite editor. You can change the time zone, locale, and keyboard layout to whatever you require. Save the script and run the copy you have saved. Otherwise, if you are fine with the defaults, run the unedited copy of the script.
|
||||
|
||||
Open a terminal in the /home/live/ezarcher/Scripts folder and type the following:
|
||||
|
||||
Use su to get a root login ( password is: toor ) and then type:
|
||||
a. bash ezarch.uefi
|
||||
b. ./ezarch.uefi
|
||||
|
||||
Once the script launches, you will see the splash screen for 3 seconds and then this menu:
|
||||
|
||||
-------------------------------------
|
||||
EZ Arch Installer - UEFI Systems
|
||||
-------------------------------------
|
||||
|
||||
1) Username, Passwords, & Hostname
|
||||
2) Choose Device Type & Partition Drive
|
||||
3) Install Base System (pacstrap)
|
||||
4) Configure System Settings
|
||||
5) Install Broad Categories of Software
|
||||
6) Choose Desktop
|
||||
7) Install GRUB
|
||||
|
||||
X) Exit
|
||||
|
||||
|
||||
Enter your choice:
|
||||
|
||||
Step 1) Username, Passwords, & Hostname allows you to set those options. All items MUST be set for the script to function correctly. The script will ask you to type your answers and press [Enter]. The script will echo what you type to the screen so you can verify it is what you intend. Be precise when typing your responses. Username must be all in lowercase with no spaces or special characters.
|
||||
|
||||
Step 2) Choose Device Type & Partition Drive will walk you through selecting the desired drive (SATA or NVMe is your first choice). This is a destructive step as the drive you select will be wiped and formatted during this process. Please proceed with caution and know what you are doing. Please make backups of all important data BEFORE you begin your installation. If you need to do so, exit the script at this point and do your backups. You can always start the script from the beginning again. Do not attempt to resume the installation script from the place you left off as none of the selections you made during the first run of the installation script will be retained. You have been warned!
|
||||
|
||||
The drive partitioning steps perform a predetermined partition layout. The drive you select will be converted to the GPT partitioning scheme. The drive will be partitioned to contain an ESP partition, a root partition, a home partition, and, a swap partition. You will be presented a choice in size options for your root and swap partitions. The remaining space will be assigned to the home partition. All data partitions are formatted EXT4.
|
||||
|
||||
If you do not like this partitioning layout, you have a couple options. First, is to edit the ezach.uefi script beforehand and change the relevant sections of code. This is very much discouraged, but entirely possible (and your choice). Second, you can create, format, and, mount the partition yourself BEFORE you start the installation.
|
||||
|
||||
There are several partitioning tools available on the system: gdisk, cgdisk, cfdisk, parted, gparted. You can use whichever tool you prefer to partition your dive and partition your drive exactly how you wish. Once the partitioning is complete, you will need to format the partitions you created. After formatting the partitions, you will need to mount them beginning with the partition to contain the root of the filesystem.
|
||||
|
||||
As an example, I will show the steps to format and mount a simple partition layout. Assuming you have created an ESP partition on /dev/sda1 and a root partition on /dev/sda2 and a swap partition on /dev/sda3 - the formatting will go like this:
|
||||
|
||||
# mkfs.fat -F32 /dev/sda1
|
||||
# mkfs.ext4 /dev/sda2
|
||||
# mkswap /dev/sda3
|
||||
|
||||
Then you will need to mount the partitions:
|
||||
|
||||
# mount /dev/sda2 /mnt
|
||||
# mkdir /mnt/efi
|
||||
# mount /dev/sda1 /mnt/efi
|
||||
# swapon /dev/sda3
|
||||
|
||||
Always mount your the device which is intended to be your root filesystem FIRST! Then create your mount points for any additional partitions. In this case we have our ESP partition on /dev/sda1 and that gets mounted after the mount point is created. The GRUB will assume the mount point for the ESP is /efi - so make sure to use that mount point when mounting your ESP partition. Last, we can turn the swap device on. If you wish to use a swap file, then please look up how to do that. The live system has Firefox, so any information is at your disposal during installation.
|
||||
|
||||
After your partitions are created, formatted, and mounted, you can start the ezarch.uefi installation script. It is important to remember to use the Option 3) to tell the installation script which device to use during the installation. When you select Option 3) choose the type of disk you are working with and get to this menu:
|
||||
|
||||
--------------------------------
|
||||
Partition Drive
|
||||
--------------------------------
|
||||
|
||||
1) Enter device name (e.g.sda)
|
||||
2) Choose Swap partition size
|
||||
3) Choose Root partition size
|
||||
** Remaining space will be /home **
|
||||
4) Create partitions
|
||||
5) Format partitions (ext4)
|
||||
6) Mount partitions
|
||||
|
||||
R) Return to menu
|
||||
|
||||
|
||||
Please enter your choice:
|
||||
|
||||
At this menu, select Option 1) Enter device name (e.g. sda) and type the device's name without any partition numbers. Valid choices for SATA disks would be sda, sdb, sdc, etc. Valid choices for NVMe disks would be nvme0n1, nvme0n2, nvme1n1, nvme1n2, etc. As soon as you have typed the device name and pressed [Enter], you should be back at this menu, press Option R) to return to the Main Menu and continue with Option 3) Install Base System (pacstrap).
|
||||
|
||||
-------------------------------------
|
||||
EZ Arch Installer - UEFI Systems
|
||||
-------------------------------------
|
||||
|
||||
1) Username, Passwords, & Hostname
|
||||
2) Choose Device Type & Partition Drive
|
||||
3) Install Base System (pacstrap)
|
||||
4) Configure System Settings
|
||||
5) Install Broad Categories of Software
|
||||
6) Choose Desktop
|
||||
7) Install GRUB
|
||||
|
||||
X) Exit
|
||||
|
||||
Steps 3) and 4) are not interactive, you simply select them to run and perform the required installation steps. Whether you have used the ezarch.uefi script to perform the partitioning, or did those steps yourself before starting the ezarch.uefi script, the remainder of the script will function as intended.
|
||||
|
||||
Step 5) Install Broad Categories of Software will present several categories of pre-selected software. If you open the ezarch.uefi install script in a text editor, you can examine the software listed in each category and desktop section in the install script. You can edit the software package lists in the categories and desktop sections to suit your needs. Here is the menu:
|
||||
|
||||
--------------------------------
|
||||
Install Software Categories
|
||||
--------------------------------
|
||||
|
||||
1) Xorg
|
||||
2) General
|
||||
3) Multimedia
|
||||
4) Networking
|
||||
5) Fonts
|
||||
6) Printing support
|
||||
7) Calamares dependencies
|
||||
|
||||
R) Return to menu
|
||||
|
||||
|
||||
Please enter your choice:
|
||||
|
||||
Option 1) Xorg: needed for a graphical interface and any of the desktop environments.
|
||||
|
||||
Option 2) General: necessary packages commonly used and applicable to any desktop environment.
|
||||
|
||||
Option 3) Multimedia: codecs, audio, video, sound system, etc.
|
||||
|
||||
Option 4) Networking: web browser, networkmanager, wifi drivers, samba, etc.
|
||||
|
||||
Option 5) Fonts: commonly used font packages.
|
||||
|
||||
Option 6) Printing support: cups, system configure printer, hplip, simple-scan, etc
|
||||
|
||||
Option 7) Calamares dependencies: needed to build Calamares
|
||||
|
||||
I have selected all the packages to work together as a whole. Please consider installing categories 1-5 as mandatory. Printing support is truly optional and its absence will not affect the system. All other categories work together. It is possible to skip categories, but the resulting desktop will be incomplete.
|
||||
|
||||
If you want a very basic system to configure just the way you wish, you can elect to choose none of these options and continue on directly to Step 8) Install GRUB - leaving you with a bare command line system to build up yourself.
|
||||
|
||||
Otherwise, if you have installed some or all of the categories, you can proceed to Step 6) Choose Desktop:
|
||||
|
||||
--------------------------------
|
||||
Choose A Desktop
|
||||
--------------------------------
|
||||
|
||||
1) LXQt
|
||||
2) Plasma
|
||||
3) XFCE
|
||||
4) Mate
|
||||
5) Cinnamon
|
||||
6) Gnome
|
||||
|
||||
R) Return to menu
|
||||
|
||||
|
||||
Please enter your choice:
|
||||
|
||||
The above six desktop environment options will install vanilla configurations. No theme or style choices have been applied beyond those set by the respective developers. It is up to you to style your desktop to your liking. Some of the packages included with the various desktop environment options will include packages like: arc-gtk-theme, adapta-gtk-theme, paprius-icon-theme, breeze-icon-theme, etc. So you will have a few basic options out of the box. Most desktops come with a few standard wallpapers as well. Anything beyond the default theme and icon choices will require you to install and configure what you wish.
|
||||
|
||||
The final, and mandatory last Step 7) Install GRUB:
|
||||
|
||||
-------------------------------------
|
||||
EZ Arch Installer - UEFI Systems
|
||||
-------------------------------------
|
||||
|
||||
1) Username, Passwords, & Hostname
|
||||
2) Choose Device Type & Partition Drive
|
||||
3) Install Base System (pacstrap)
|
||||
4) Configure System Settings
|
||||
5) Install Broad Categories of Software
|
||||
6) Choose Desktop
|
||||
7) Install GRUB
|
||||
|
||||
X) Exit
|
||||
|
||||
|
||||
Enter your choice:
|
||||
|
||||
This step is needed to install a boot loader on your system and make the system bootable. After GRUB is installed, you should select X) and reboot your system. Enjoy. :-)
|
||||
|
||||
|
||||
----------------------------
|
||||
|
||||
ezarch-install-howto.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
104
usr/share/ezarcher/Docs/ezmaint-howto.txt
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
The ezmaint script attempts to collect various common maintenance tasks that help keep an Arch based system healthy and lean. Below is the menu of the script and the individual functions that perform the actions.
|
||||
|
||||
-------------------------------------
|
||||
EZArcher Maintenance Script
|
||||
-------------------------------------
|
||||
|
||||
1) Failed systemd services
|
||||
2) Check journal logs
|
||||
3) Cleanup journal space
|
||||
4) Run system update
|
||||
5) Clean package cache
|
||||
6) Reset all pacman keys
|
||||
7) Cleanup user cache folder
|
||||
8) Regenerate mirrorlist
|
||||
9) Enable Firewalld Service
|
||||
|
||||
X) Exit
|
||||
|
||||
Enter your choice:
|
||||
|
||||
|
||||
1. Failed systemd services:
|
||||
|
||||
systemctl --failed > /tmp/failedsrvs
|
||||
nano /tmp/failedsrvs
|
||||
|
||||
These commands list any failed systemd services and pipe the output into a temporary file that is opened in the nano editor for your viewing. If all output looks OK, closing the nano editor with Ctl+X will return to the main menu. If there are issues, you can copy and paste the suspect lines into a search engine for further review and take appropriate action.
|
||||
|
||||
2. Check journal logs:
|
||||
|
||||
journalctl -p 3 -xb > /tmp/journalchk
|
||||
nano /tmp/journalchk
|
||||
|
||||
These commands list any journal entries and pipe the output into a temporary file that is opened in the nano editor for your viewing. If all output looks OK, closing the nano editor with Ctl+X will return to the main menu. If there are issues, you can copy and paste the suspect lines into a search engine for further review and take appropriate action.
|
||||
|
||||
3. Cleanup journal space:
|
||||
|
||||
journalctl --vacuum-time=2weeks
|
||||
|
||||
This command will removed any journal logs older than two weeks and free up space.
|
||||
|
||||
4. Run system update:
|
||||
|
||||
pacman -Syu
|
||||
|
||||
This command will perform a full system upgrade.
|
||||
|
||||
5. Clean package cache:
|
||||
|
||||
pacman -Scc
|
||||
|
||||
This command will perform an aggressive cleaning of the package cache and ask to remove all package cache contents for poth installed and uninstalled packages. If you wish to roll-back packages, this option should not be used.
|
||||
|
||||
6. Reset all pacman keys:
|
||||
|
||||
rm /var/lib/pacman/sync/*
|
||||
rm -rf /etc/pacman.d/gnupg/*
|
||||
pacman-key --init
|
||||
pacman-key --populate
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
|
||||
Thes commands will clear the old GNUPG keyring files and will initialize, populate, and reinstall the archlinux keyring
|
||||
|
||||
7. Cleanup user cache folder:
|
||||
|
||||
echo "[Unit]
|
||||
Description=Clean primary user cache on boot.
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/bash /usr/local/bin/clnusercache.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" > /usr/lib/systemd/system/clnusercache.service
|
||||
|
||||
echo "#!/bin/bash
|
||||
rm -r /home/*/.cache/*
|
||||
rm /etc/systemd/system/multi-user.target.wants/clnusercache.service" > /usr/local/bin/clnusercache.sh
|
||||
|
||||
chmod +x /usr/local/bin/clnusercache.sh
|
||||
|
||||
ln -sf /usr/lib/systemd/system/clnusercache.service /etc/systemd/system/multi-user.target.wants/clnusercache.service
|
||||
|
||||
This option will create a systemd unit to delete all contents of the user's .cache folder upon the next reboot and then remove the systemd. The .cache folder typically contains temporary working files of the desktop and user programs. The contents of the .cache folder can be examined by opening the file manager and viewing hidden files inside the user's home folder in the .cache folder. Please review the files to be deleted before using this option if you are concerned or just curious.
|
||||
|
||||
8. Regenerate mirrorlist:
|
||||
|
||||
reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
This command runs reflector and generates a new mirrorlist file based on the options specified in the command. My defaults are to select the recently updated within the last six hours that are hosted on https servers in the United States. Please look at the man page for reflector if you want to change the options.
|
||||
|
||||
9. Enable Firewalld Service:
|
||||
|
||||
systemctl enable firewalld.service
|
||||
systemctl start firewalld.service
|
||||
|
||||
These commands enable and start the Firewalld service.
|
||||
|
||||
I hope these various functions come in handy. I must give credit to EF Tech Made Simple for his inspiration in the choice and implementation of these functions. Please view his video describing these maintenance tips here: https://youtu.be/wwSkFi3h2nI
|
||||
|
||||
|
||||
ezmaint-howto.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
18
usr/share/ezarcher/Docs/getting-started-archiso.txt
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
Getting started building with ARCHISO:
|
||||
|
||||
Archiso dependencies:
|
||||
archiso libburn libisofs libisoburn mkinitcpio-archiso squashfs-tools
|
||||
|
||||
|
||||
Getting started building Calamares:
|
||||
|
||||
Runtime dependencies for Calamares:
|
||||
boost-libs cmake dmidecode gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality parted plasma-framework polkit-qt5 qt5-location qt5-svg qt5-webengine qt5-xmlpatterns qt5ct solid squashfs-tools udisks2 upower yaml-cpp
|
||||
|
||||
Build time dependencies for Calamares:
|
||||
extra-cmake-modules git boost qt5-tools qt5-translations
|
||||
|
||||
|
||||
getting-started-archiso.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
56
usr/share/ezarcher/Docs/readme.txt
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
--------------------------------------------------
|
||||
Ezarcher Linux - Live Desktop
|
||||
ezarch CLI Install Scripts & Calamares Installer
|
||||
--------------------------------------------------
|
||||
|
||||
Welcome to Ezarcher
|
||||
|
||||
The Ezarcher Linux ISO is a full featured Arch Linux desktop. The live system comes with many common desktop software packages and tools to install Arch Linux on your system. There are two installer methods, the Calamares Installer Framework and my own ezarch scripts. The Calamares installer is located in the System menu and titled Install System. Finally, there is also the choice to use the install guides to copy and paste commands that will install Arch, the Arch Way.
|
||||
|
||||
The live user's /home folder has an ezarcher folder with several folders containing all the project files for the Ezarcher system. The ~/ezarcher/Docs folder contains some introductory readme files and suggested steps to enhance the system. The ~/ezarcher/Guides folder has the original ezarch install guides with each step to install an Arch system from scratch. The ~/ezarcher/PkgBuilds folder contains the the PKGBUILD files for the Calamares and its two helper applications. The ~/ezarcher/Scripts folder contains the ezarch.bios and ezarch.uefi install scripts to perform an menu driven Arch installation. The ~/ezarcher/Templates folder contains tar files for each of the live ISOs with a desktop environment.
|
||||
|
||||
User password: live
|
||||
Root password: toor
|
||||
|
||||
Have fun, stay safe. :-)
|
||||
|
||||
|
||||
--------------------------------------
|
||||
Templates to Build Your Own ISOs
|
||||
--------------------------------------
|
||||
|
||||
Ezarcher Desktop Templates
|
||||
https://sourceforge.net/projects/ezarch/files/Ezarcher/Templates/
|
||||
|
||||
The Ezarcher Desktop Templates project is a simple set of files and a steps.sh script to automate the building of a live desktop Arch Linux ISO that contains one of several desktops, and includes the ezarch install scripts in the ~/ezarcher/Scripts folder. The Calamares Installer is also available in each desktop template. I must express my sincere gratitude and give full credit to Matias Calabrese for his exemplary contribution of transforming the ezarcher templates to work with the new archiso program and process. This project would not be where it is today without his assistance and contributions. Thank you, Matias! :-)
|
||||
|
||||
The steps.sh file copies the necessary files into the build folder, in this case, "ezreleng" and runs the mkarchiso script to produce the Ezarcher GUI ISO image. In addition to the standard Arch Linux install media packages, I have added one of six desktop environments, a plethora of multimedia software, system maintenance and recovery tools, filesystem drivers, wifi drivers, and other assorted software in order to provide a full-featured desktop experience. The script creates a live user and assigns the password "live." The root user is given the password "toor" (root spelled backwards). Sddm is enabled, networkmanager and systemd-resolved are enabled, haveged is enabled, bluetooth is enabled, Cups is enabled, and the graphical runlevel target is set.
|
||||
|
||||
I have included the ezarch.bios and ezarch.uefi install scripts for you to install a fresh Arch Linux system using my preferred install method. The install scripts are located in the ~/ezarcher/Scripts folder and can be launched by using su to get a root terminal, open a terminal in the ~/ezarcher/Scripts and type: ./ezarch.bios or ./ezarch.uefi depending on the type of installation required. The ezmaint script has nine various maintenance functions that should be performed occasionally on any Arch based system. The menu gives easy access to these functions:
|
||||
|
||||
-------------------------------------
|
||||
Ezarcher Maintenance Script
|
||||
-------------------------------------
|
||||
|
||||
1) Failed systemd services
|
||||
2) Check journal logs
|
||||
3) Cleanup journal space
|
||||
4) Run system update
|
||||
5) Clean package cache
|
||||
6) Reset all pacman keys
|
||||
7) Cleanup user cache folder
|
||||
8) Regenerate mirrorlist
|
||||
9) Enable Firewalld Service
|
||||
|
||||
X) Exit
|
||||
|
||||
Enter your choice:
|
||||
|
||||
Being based on Arch Linux, Ezarcher Desktop Templates inherits the same rolling release nature and caveats. There may be times when the Arch repositories change and the installer scripts do not function as intended.
|
||||
|
||||
All of my scripts and documents are free for public use and adaptation, as per the terms as licensed under the GNU Public License 3.0. Please use and enjoy. Thank you. :-)
|
||||
|
||||
|
||||
readme.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
25
usr/share/ezarcher/Docs/reflector-pacman-hook.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
Automate mirrorlist generation with Pacman hook:
|
||||
|
||||
Create a file /etc/pacman.d/hooks/mirrorupgrade.hook
|
||||
|
||||
$ sudo mkdir /etc/pacman.d/hooks
|
||||
$ sudo nano /etc/pacman.d/hooks/mirrorupgrade.hook
|
||||
|
||||
Add the following lines:
|
||||
|
||||
[Trigger]
|
||||
Operation = Upgrade
|
||||
Type = Package
|
||||
Target = pacman-mirrorlist
|
||||
|
||||
[Action]
|
||||
Description = Updating pacman-mirrorlist with reflector and removing pacnew...
|
||||
When = PostTransaction
|
||||
Depends = reflector
|
||||
Exec = /bin/sh -c "reflector --latest 10 --sort rate --protocol https --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"
|
||||
|
||||
Save and close the file.
|
||||
|
||||
reflector-pacman-hook.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
165
usr/share/ezarcher/Guides/arch_install_bios_gpt-20220422.txt
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
|
||||
---------------------------------------------------
|
||||
|
||||
Arch Install - Legacy BIOS System & GPT Partition Layout
|
||||
|
||||
Multiple Choice Desktop Example
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
1. Set keyboard layout - default is US
|
||||
** Available layouts can be listed with:
|
||||
ls /usr/share/kbd/keymaps/i386/**/*.map.gz | less
|
||||
** To modify the layout, append a corresponding file name to loadkeys, UK for example:
|
||||
loadkeys uk.map.gz
|
||||
|
||||
2. Verify boot mode (UEFI or Legacy):
|
||||
ls /sys/firmware/efi/efivars
|
||||
** If the directory does not exist, the system may be booted in Legacy BIOS Mode
|
||||
|
||||
3. Check internet connection:
|
||||
ping google.com
|
||||
|
||||
4. Update system clock
|
||||
timedatectl set-ntp true
|
||||
|
||||
5. Sync repositories, Install Reflector and Create mirrorlist, & install latest keyring
|
||||
pacman -Sy
|
||||
pacman -S archlinux-keyring
|
||||
pacman -S --needed reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
6. Run cfdisk - BIOS GPT
|
||||
cfdisk /dev/sda
|
||||
sda1: bios-boot, sda2: swap, sda3: root, sda4: home
|
||||
bios-boot: type: bios-boot size: 8Mb
|
||||
|
||||
7. Format partitions
|
||||
mkfs.ext4 /dev/sda3
|
||||
mkfs.ext4 /dev/sda4
|
||||
mkswap /dev/sda2
|
||||
swapon /dev/sda2
|
||||
|
||||
8. Mount partitions
|
||||
mount /dev/sda3 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/sda4 /mnt/home
|
||||
|
||||
9. Install base packages
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
|
||||
10. Create fstab
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
11. Chroot into system
|
||||
arch-chroot /mnt
|
||||
|
||||
12. Configure timezone -- Example, choose your correct timezone
|
||||
rm -rf /etc/localtime
|
||||
to list geographic areas:
|
||||
ls /usr/share/zoneinfo/
|
||||
pick timezome and:
|
||||
ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime
|
||||
hwclock --systohc --utc
|
||||
|
||||
13. Configure locale -- Example, choose your correct locale
|
||||
nano /etc/locale.gen
|
||||
uncomment lines:
|
||||
en_US.UTF-8 UTF-8
|
||||
locale-gen
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
14. Configure networking
|
||||
|
||||
A. Create hostname -- Example, choose your own hostname (computer name)
|
||||
echo myhostname > /etc/hostname
|
||||
|
||||
B. Edit hosts file
|
||||
nano /etc/hosts
|
||||
Add lines:
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.1.1 myhostname.localdomain myhostname
|
||||
|
||||
15. Create root password and user -- Example, choose your own username
|
||||
passwd root
|
||||
useradd -m -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm -s /bin/bash username
|
||||
passwd username
|
||||
export VISUAL=nano
|
||||
export EDITOR=nano
|
||||
visudo /etc/sudoers
|
||||
uncomment line:
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
16. Sync repositories, Install Reflector and Create mirrorlist
|
||||
pacman -S reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
17. Install GRUB
|
||||
pacman -S grub
|
||||
grub-install --target=i386-pc /dev/sda
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
18. Run mkinitcpio -- linux-lts for long term support kernel, linux for standard kernel
|
||||
mkinitcpio -p linux-lts
|
||||
|
||||
19. Install software - still inside chroot!
|
||||
|
||||
Xorg
|
||||
pacman -S xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
|
||||
General
|
||||
pacman -S --needed amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
|
||||
Multimedia
|
||||
pacman -S --needed alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
|
||||
Networking
|
||||
pacman -S --needed avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nm-connection-editor nftables nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
|
||||
Fonts
|
||||
pacman -S --needed ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
|
||||
Printing
|
||||
pacman -S --needed cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
|
||||
LXQt Desktop
|
||||
pacman -S --needed accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
|
||||
Plasma Desktop
|
||||
pacman -S --needed accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
|
||||
Xfce Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
|
||||
Mate Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
|
||||
Cinnamon Desktop
|
||||
pacman -S --needed accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
|
||||
Gnome Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
|
||||
20. Systemd services
|
||||
systemctl disable dhcpcd.service
|
||||
systemctl enable haveged.service
|
||||
systemctl enable bluetooth.service
|
||||
systemctl enable cups.service
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable firewalld.service
|
||||
systemctl enable fstrim.timer
|
||||
systemctl enable plocate-updatedb.timer
|
||||
|
||||
21. Display Manager
|
||||
systemctl enable sddm.service (for all except Gnome)
|
||||
systemctl enable gdm.service (only for Gnome)
|
||||
|
||||
22. Exit chroot
|
||||
exit (arch-chroot)
|
||||
umount -a
|
||||
reboot
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
164
usr/share/ezarcher/Guides/arch_install_bios_mbr-20220422.txt
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
|
||||
-----------------------------------------------------
|
||||
|
||||
Arch Install - Legacy BIOS System & MBR Partition Layout
|
||||
|
||||
Multiple Choice Desktop Example
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
1. Set keyboard layout - default is US
|
||||
** Available layouts can be listed with:
|
||||
ls /usr/share/kbd/keymaps/i386/**/*.map.gz | less
|
||||
** To modify the layout, append a corresponding file name to loadkeys, UK for example:
|
||||
loadkeys uk.map.gz
|
||||
|
||||
2. Verify boot mode (UEFI or Legacy):
|
||||
ls /sys/firmware/efi/efivars
|
||||
** If the directory does not exist, the system may be booted in Legacy BIOS Mode
|
||||
|
||||
3. Check internet connection:
|
||||
ping google.com
|
||||
|
||||
4. Update system clock
|
||||
timedatectl set-ntp true
|
||||
|
||||
5. Sync repositories, Install Reflector and Create mirrorlist, & install latest keyring
|
||||
pacman -Sy
|
||||
pacman -S archlinux-keyring
|
||||
pacman -S --needed reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
6. Run cfdisk - BIOS MBR
|
||||
cfdisk /dev/sda
|
||||
sda1: swap, sda2: root, sda3: home
|
||||
|
||||
7. Format partitions
|
||||
mkfs.ext4 /dev/sda2
|
||||
mkfs.ext4 /dev/sda3
|
||||
mkswap /dev/sda1
|
||||
swapon /dev/sda1
|
||||
|
||||
8. Mount partitions
|
||||
mount /dev/sda2 /mnt
|
||||
mkdir /mnt/home
|
||||
mount /dev/sda3 /mnt/home
|
||||
|
||||
9. Install base packages
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
|
||||
10. Create fstab
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
11. Chroot into system
|
||||
arch-chroot /mnt
|
||||
|
||||
12. Configure timezone -- Example, choose your correct timezone
|
||||
rm -rf /etc/localtime
|
||||
to list geographic areas:
|
||||
ls /usr/share/zoneinfo/
|
||||
pick timezome and:
|
||||
ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime
|
||||
hwclock --systohc --utc
|
||||
|
||||
13. Configure locale -- Example, choose your correct locale
|
||||
nano /etc/locale.gen
|
||||
uncomment lines:
|
||||
en_US.UTF-8 UTF-8
|
||||
locale-gen
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
14. Configure networking
|
||||
|
||||
A. Create hostname -- Example, choose your own hostname (computer name)
|
||||
echo myhostname > /etc/hostname
|
||||
|
||||
B. Edit hosts file
|
||||
nano /etc/hosts
|
||||
Add lines:
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.1.1 myhostname.localdomain myhostname
|
||||
|
||||
15. Create root password and user -- Example, choose your own username
|
||||
passwd root
|
||||
useradd -m -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm -s /bin/bash username
|
||||
passwd username
|
||||
export VISUAL=nano
|
||||
export EDITOR=nano
|
||||
visudo /etc/sudoers
|
||||
uncomment line:
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
16. Sync repositories, Install Reflector and Create mirrorlist
|
||||
pacman -S reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
17. Install GRUB
|
||||
pacman -S grub
|
||||
grub-install --target=i386-pc /dev/sda
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
18. Run mkinitcpio -- linux-lts for long term support kernel, linux for standard kernel
|
||||
mkinitcpio -p linux-lts
|
||||
|
||||
19. Install software - still inside chroot!
|
||||
|
||||
Xorg
|
||||
pacman -S xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
|
||||
General
|
||||
pacman -S --needed amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
|
||||
Multimedia
|
||||
pacman -S --needed alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
|
||||
Networking
|
||||
pacman -S --needed avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nm-connection-editor nftables nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
|
||||
Fonts
|
||||
pacman -S --needed ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
|
||||
Printing
|
||||
pacman -S --needed cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
|
||||
LXQt Desktop
|
||||
pacman -S --needed accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
|
||||
Plasma Desktop
|
||||
pacman -S --needed accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
|
||||
Xfce Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
|
||||
Mate Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
|
||||
Cinnamon Desktop
|
||||
pacman -S --needed accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
|
||||
Gnome Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
|
||||
20. Systemd services
|
||||
systemctl disable dhcpcd.service
|
||||
systemctl enable haveged.service
|
||||
systemctl enable bluetooth.service
|
||||
systemctl enable cups.service
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable firewalld.service
|
||||
systemctl enable fstrim.timer
|
||||
systemctl enable plocate-updatedb.timer
|
||||
|
||||
21. Display Manager
|
||||
systemctl enable sddm.service (for all except Gnome)
|
||||
systemctl enable gdm.service (only for Gnome)
|
||||
|
||||
22. Exit chroot
|
||||
exit (arch-chroot)
|
||||
umount -a
|
||||
reboot
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
168
usr/share/ezarcher/Guides/arch_install_uefi_gpt-20220422.txt
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
|
||||
---------------------------------------------------
|
||||
|
||||
Arch Install - UEFI System & GPT Partition Layout
|
||||
|
||||
Multiple Choice Desktop Example
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
1. Set keyboard layout - default is US
|
||||
** Available layouts can be listed with:
|
||||
ls /usr/share/kbd/keymaps/i386/**/*.map.gz | less
|
||||
** To modify the layout, append a corresponding file name to loadkeys, UK for example:
|
||||
loadkeys uk.map.gz
|
||||
|
||||
2. Verify boot mode (UEFI or Legacy):
|
||||
ls /sys/firmware/efi/efivars
|
||||
** If the directory does not exist, the system may be booted in Legacy BIOS Mode
|
||||
|
||||
3. Check internet connection:
|
||||
ping google.com
|
||||
|
||||
4. Update system clock
|
||||
timedatectl set-ntp true
|
||||
|
||||
5. Sync repositories, Install Reflector and Create mirrorlist, & install latest keyring
|
||||
pacman -Sy
|
||||
pacman -S archlinux-keyring
|
||||
pacman -S --needed reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
6. Run cfdisk - UEFI GPT
|
||||
cfdisk /dev/sda
|
||||
sda1: efi system, sda2: swap, sda3: root, sda4: home
|
||||
efi system partition: type: EFI System, size: 512Mb, format: fat32
|
||||
|
||||
7. Format partitions
|
||||
mkfs.fat -F32 /dev/sda1
|
||||
mkfs.ext4 /dev/sda3
|
||||
mkfs.ext4 /dev/sda4
|
||||
mkswap /dev/sda2
|
||||
swapon /dev/sda2
|
||||
|
||||
8. Mount partitions
|
||||
mount /dev/sda3 /mnt
|
||||
mkdir -p /mnt/efi
|
||||
mount /dev/sda1 /mnt/efi
|
||||
mkdir /mnt/home
|
||||
mount /dev/sda4 /mnt/home
|
||||
|
||||
9. Install base packages
|
||||
pacstrap /mnt base base-devel cryptsetup dialog e2fsprogs device-mapper dhcpcd dosfstools efibootmgr gptfdisk grub inetutils less linux-lts linux-firmware lvm2 mkinitcpio mtools nano netctl nvme-cli os-prober reflector rsync sysfsutils xz zstd
|
||||
|
||||
10. Create fstab
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
11. Chroot into system
|
||||
arch-chroot /mnt
|
||||
|
||||
12. Configure timezone -- Example, choose your correct timezone
|
||||
rm -rf /etc/localtime
|
||||
to list geographic areas:
|
||||
ls /usr/share/zoneinfo/
|
||||
pick timezome and:
|
||||
ln -sf /usr/share/zoneinfo/America/Phoenix /etc/localtime
|
||||
hwclock --systohc --utc
|
||||
|
||||
13. Configure locale -- Example, choose your correct locale
|
||||
nano /etc/locale.gen
|
||||
uncomment lines:
|
||||
en_US.UTF-8 UTF-8
|
||||
locale-gen
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
14. Configure networking
|
||||
|
||||
A. Create hostname -- Example, choose your own hostname (computer name)
|
||||
echo myhostname > /etc/hostname
|
||||
|
||||
B. Edit hosts file
|
||||
nano /etc/hosts
|
||||
Add lines:
|
||||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.1.1 myhostname.localdomain myhostname
|
||||
|
||||
15. Create root password and user -- Example, choose your own username
|
||||
passwd root
|
||||
useradd -m -G sys,log,network,floppy,scanner,power,rfkill,users,video,storage,optical,lp,audio,wheel,adm -s /bin/bash username
|
||||
passwd username
|
||||
export VISUAL=nano
|
||||
export EDITOR=nano
|
||||
visudo /etc/sudoers
|
||||
uncomment line:
|
||||
%wheel ALL=(ALL) ALL
|
||||
|
||||
16. Sync repositories, Install Reflector and Create mirrorlist
|
||||
pacman -S reflector
|
||||
reflector --latest 10 --protocol https --save /etc/pacman.d/mirrorlist
|
||||
|
||||
17. Install GRUB
|
||||
pacman -S grub efibootmgr os-prober
|
||||
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --recheck
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
18. Run mkinitcpio -- linux-lts for long term support kernel, linux for standard kernel
|
||||
mkinitcpio -p linux-lts
|
||||
|
||||
19. Install software - still inside chroot!
|
||||
|
||||
Xorg
|
||||
pacman -S xorg xorg-apps xorg-server xorg-drivers xorg-xkill xorg-xinit xterm mesa
|
||||
|
||||
General
|
||||
pacman -S --needed amd-ucode arch-install-scripts archiso bash-completion bind-tools bluez bluez-utils btrfs-progs cdrtools cmake cryfs dd_rescue ddrescue devtools diffutils dkms dvd+rw-tools efitools encfs exfatprogs f2fs-tools fatresize fsarchiver fuse3 fwupd git gnome-disk-utility gnome-keyring gocryptfs gpart gparted grsync gvfs gvfs-afc gvfs-goa gvfs-gphoto2 grsync gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm htop hwdata hwdetect hwinfo intel-ucode jfsutils mkinitcpio-archiso mkinitcpio-nfs-utils libburn libisofs libisoburn linux-lts-headers logrotate lsb-release lsscsi man-db man-pages mdadm ntfs-3g p7zip pacutils packagekit pacman-contrib pahole papirus-icon-theme parted perl perl-data-dump perl-json perl-lwp-protocol-https perl-term-readline-gnu perl-term-ui pkgfile plocate polkit pv qt5ct reiserfsprogs rsync s-nail sdparm sg3_utils smartmontools squashfs-tools sudo testdisk texinfo tlp udftools udisks2 unace unrar unzip usbmuxd usbutils vim which xdg-user-dirs xfsprogs
|
||||
|
||||
Multimedia
|
||||
pacman -S --needed alsa-lib alsa-plugins alsa-firmware alsa-utils audacious audacious-plugins cdrdao dvdauthor faac faad2 ffmpeg ffmpegthumbnailer flac frei0r-plugins gstreamer gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer-vaapi imagemagick lame libdvdcss libopenraw mencoder mjpegtools mpv poppler-glib pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-equalizer pulseaudio-jack simplescreenrecorder sox transcode smplayer x265 x264 xvidcore
|
||||
|
||||
Networking
|
||||
pacman -S --needed avahi b43-fwcutter broadcom-wl-dkms curl dhclient dmraid dnsmasq dnsutils ethtool filezilla firefox firewalld iptables-nft ipw2100-fw ipw2200-fw iwd gnu-netcat net-tools netctl net-tools networkmanager networkmanager-openvpn network-manager-applet nm-connection-editor nftables nfs-utils nilfs-utils nss-mdns openconnect openresolv openssh openssl openvpn r8168 samba vsftpd wget wireless-regdb wireless_tools whois wpa_supplicant
|
||||
|
||||
Fonts
|
||||
pacman -S --needed ttf-ubuntu-font-family ttf-dejavu ttf-bitstream-vera ttf-liberation noto-fonts ttf-roboto ttf-opensans opendesktop-fonts cantarell-fonts freetype2
|
||||
|
||||
Printing
|
||||
pacman -S --needed cups cups-pdf cups-filters cups-pk-helper foomatic-db foomatic-db-engine ghostscript gsfonts gutenprint python-pillow python-pip python-pyqt5 python-reportlab simple-scan system-config-printer
|
||||
|
||||
LXQt Desktop
|
||||
pacman -S --needed accountsservice aisleriot appstream-qt bluez-qt brightnessctl breeze-icons discover featherpad geany guvcview k3b kwin liblxqt libstatgrab libsysstat lximage-qt lxqt-about lxqt-admin lxqt-archiver lxqt-build-tools lxqt-config lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session lxqt-sudo lxqt-themes meld neofetch networkmanager-qt packagekit-qt5 pcmanfm-qt papirus-icon-theme pavucontrol-qt print-manager qbittorrent qterminal screengrab xpdf xscreensaver
|
||||
|
||||
Plasma Desktop
|
||||
pacman -S --needed accountsservice aisleriot ark bluedevil breeze-icons bluez-qt discover dolphin geany guvcview gwenview k3b kcalc kinit konsole kwrite meld neofetch networkmanager-qt okular packagekit-qt5 papirus-icon-theme pavucontrol-qt plasma print-manager qbittorrent sddm sddm-kcm sweeper
|
||||
|
||||
Xfce Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman catfish dconf-editor epdfview galculator geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome sddm transmission-gtk xarchiver xfburn xfce4 xfce4-goodies
|
||||
|
||||
Mate Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero dconf-editor geany gnome-firmware gnome-packagekit gtk-engine-murrine guvcview mate mate-applet-dock mate-extra mate-polkit meld neofetch papirus-icon-theme sddm transmission-gtk
|
||||
|
||||
Cinnamon Desktop
|
||||
pacman -S --needed accountsservice adwaita-icon-theme adapta-gtk-theme aisleriot arc-gtk-theme arc-icon-theme asunder blueman brasero cinnamon cinnamon-translations dconf-editor epdfview file-roller geany gnome-firmware gnome-packagekit gnome-terminal gtk-engine-murrine guvcview meld nemo nemo-fileroller nemo-share neofetch papirus-icon-theme pavucontrol polkit-gnome sddm tldr tmux transmission-gtk viewnior xed
|
||||
|
||||
Gnome Desktop
|
||||
pacman -S --needed accountsservice adapta-gtk-theme adwaita-icon-theme aisleriot asunder brasero breeze-icons dconf-editor gdm geany gnome gnome-bluetooth gnome-firmware gnome-nettool gnome-packagekit gnome-shell gnome-shell-extensions gnome-software-packagekit-plugin gnome-sound-recorder gnome-todo gnome-tweaks gnome-usage guvcview meld neofetch papirus-icon-theme pavucontrol polkit-gnome tmux transmission-gtk
|
||||
|
||||
20. Enable services
|
||||
systemctl disable dhcpcd.service
|
||||
systemctl enable haveged.service
|
||||
systemctl enable bluetooth.service
|
||||
systemctl enable cups.service
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable firewalld.service
|
||||
systemctl enable fstrim.timer
|
||||
systemctl enable plocate-updatedb.timer
|
||||
|
||||
21. Display Manager
|
||||
systemctl enable sddm.service (for all except Gnome)
|
||||
systemctl enable gdm.service (only for Gnome)
|
||||
|
||||
22. Exit chroot
|
||||
exit (arch-chroot)
|
||||
umount -a
|
||||
reboot
|
||||
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
56
usr/share/ezarcher/PkgBuilds/Calamares/PKGBUILD
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# Ezarcher Calamares Installer pkgbuild
|
||||
|
||||
pkgname=calamares
|
||||
pkgver=3.2.56
|
||||
_pkgver=3.2.56
|
||||
pkgrel=1
|
||||
pkgdesc='Distribution-independent installer framework'
|
||||
arch=('x86_64')
|
||||
license=(GPL)
|
||||
url="https://github.com/calamares/calamares"
|
||||
license=('LGPL')
|
||||
depends=('cmake' 'kconfig' 'kcoreaddons' 'kiconthemes' 'ki18n' 'kio' 'solid' 'yaml-cpp' 'kpmcore' 'qt5-webengine' 'kwidgetsaddons'
|
||||
'icu' 'qt5-location' 'boost-libs' 'qt5-svg' 'qt5ct' 'polkit-qt5' 'gtk-update-icon-cache' 'plasma-framework' 'parted'
|
||||
'qt5-xmlpatterns' 'squashfs-tools' 'libpwquality' 'dmidecode' 'kparts' 'kdbusaddons' 'kservice' 'udisks2' 'upower')
|
||||
makedepends=('extra-cmake-modules' 'qt5-tools' 'qt5-translations' 'git' 'boost')
|
||||
|
||||
source=("$pkgname-$pkgver.tar.gz::https://github.com/calamares/calamares/releases/download/v$pkgver/calamares-$pkgver.tar.gz")
|
||||
sha256sums=('e1402d7693659b85c5e553481a7252d91350c3f33ffea413488d7712d3281e03')
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/calamares-${pkgver}
|
||||
sed -i -e 's/"Install configuration files" OFF/"Install configuration files" ON/' CMakeLists.txt
|
||||
|
||||
# change version
|
||||
sed -i -e "s|$pkgver|$_pkgver|g" CMakeLists.txt
|
||||
_ver="$pkgver"
|
||||
printf 'Version: %s-%s' "${_ver}" "${pkgrel}"
|
||||
sed -i -e "s|\${CALAMARES_VERSION_MAJOR}.\${CALAMARES_VERSION_MINOR}.\${CALAMARES_VERSION_PATCH}|${_ver}-${pkgrel}|g" CMakeLists.txt
|
||||
sed -i -e "s|CALAMARES_VERSION_RC 1|CALAMARES_VERSION_RC 0|g" CMakeLists.txt
|
||||
}
|
||||
|
||||
build() {
|
||||
cd ${srcdir}/calamares-${pkgver}
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake .. \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
|
||||
-DWITH_PYTHONQT:BOOL=ON \
|
||||
-DWITH_KF5DBus=OFF \
|
||||
-DBoost_NO_BOOST_CMAKE=ON \
|
||||
-DSKIP_MODULES="tracking webview interactiveterminal initramfs \
|
||||
initramfscfg dracut dracutlukscfg finishedq summaryq \
|
||||
dummyprocess dummypython dummycpp usersq oemid \
|
||||
dummypythonqt services-openrc keyboardq zfs \
|
||||
localeq plasmalnf welcomeq notesqml packagechooserq"
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${srcdir}/calamares-${pkgver}/build
|
||||
make DESTDIR="$pkgdir" install
|
||||
install -Dm644 "../calamares.desktop" "$pkgdir/usr/share/applications/calamares.desktop"
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Getting started building Calamares:
|
||||
|
||||
Runtime dependencies for Calamares:
|
||||
boost-libs cmake dmidecode gtk-update-icon-cache icu kconfig kcoreaddons kdbusaddons kiconthemes ki18n kio kparts kpmcore kservice kwidgetsaddons libpwquality parted plasma-framework polkit-qt5 qt5-location qt5-svg qt5-webengine qt5-xmlpatterns qt5ct solid squashfs-tools udisks2 upower yaml-cpp
|
||||
|
||||
Build time dependencies for Calamares:
|
||||
extra-cmake-modules git boost qt5-tools qt5-translations
|
||||
|
||||
|
||||
calamares-dependencies.txt
|
||||
# Revision: 2022.04.22 -- by eznix (https://sourceforge.net/projects/ezarch/)
|
||||
# (GNU/General Public License version 3.0)
|
||||
|
|
@ -0,0 +1,222 @@
|
|||
# Ezarcher custom settings
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Product branding information. This influences some global
|
||||
# user-visible aspects of Calamares, such as the product
|
||||
# name, window behavior, and the slideshow during installation.
|
||||
#
|
||||
# Additional styling can be done using the stylesheet.qss
|
||||
# file, also in the branding directory.
|
||||
---
|
||||
componentName: ezarcher
|
||||
|
||||
|
||||
### WELCOME / OVERALL WORDING
|
||||
#
|
||||
# These settings affect some overall phrasing and looks,
|
||||
# which are most visible in the welcome page.
|
||||
|
||||
# This selects between different welcome texts. When false, uses
|
||||
# the traditional "Welcome to the %1 installer.", and when true,
|
||||
# uses "Welcome to the Calamares installer for %1." This allows
|
||||
# to distinguish this installer from other installers for the
|
||||
# same distribution.
|
||||
welcomeStyleCalamares: false
|
||||
|
||||
# Should the welcome image (productWelcome, below) be scaled
|
||||
# up beyond its natural size? If false, the image does not grow
|
||||
# with the window but remains the same size throughout (this
|
||||
# may have surprising effects on HiDPI monitors).
|
||||
welcomeExpandingLogo: true
|
||||
|
||||
### WINDOW CONFIGURATION
|
||||
#
|
||||
# The settings here affect the placement of the Calamares
|
||||
# window through hints to the window manager and initial
|
||||
# sizing of the Calamares window.
|
||||
|
||||
# Size and expansion policy for Calamares.
|
||||
# - "normal" or unset, expand as needed, use *windowSize*
|
||||
# - "fullscreen", start as large as possible, ignore *windowSize*
|
||||
# - "noexpand", don't expand automatically, use *windowSize*
|
||||
windowExpanding: normal
|
||||
|
||||
# Size of Calamares window, expressed as w,h. Both w and h
|
||||
# may be either pixels (suffix px) or font-units (suffix em).
|
||||
# e.g. "800px,600px"
|
||||
# "60em,480px"
|
||||
# This setting is ignored if "fullscreen" is selected for
|
||||
# *windowExpanding*, above. If not set, use constants defined
|
||||
# in CalamaresUtilsGui, 800x520.
|
||||
windowSize: 800px,520px
|
||||
|
||||
# Placement of Calamares window. Either "center" or "free".
|
||||
# Whether "center" actually works does depend on the window
|
||||
# manager in use (and only makes sense if you're not using
|
||||
# *windowExpanding* set to "fullscreen").
|
||||
windowPlacement: center
|
||||
|
||||
### PANELS CONFIGURATION
|
||||
#
|
||||
# Calamares has a main content area, and two panels (navigation
|
||||
# and progress / sidebar). The panels can be controlled individually,
|
||||
# or switched off. If both panels are switched off, the layout of
|
||||
# the main content area loses its margins, on the assumption that
|
||||
# you're doing something special.
|
||||
|
||||
# Kind of sidebar (panel on the left, showing progress).
|
||||
# - "widget" or unset, use traditional sidebar (logo, items)
|
||||
# - "none", hide it entirely
|
||||
# - "qml", use calamares-sidebar.qml from branding folder
|
||||
# In addition, you **may** specify a side, separated by a comma,
|
||||
# from the kind. Valid sides are:
|
||||
# - "left" (if not specified, uses this)
|
||||
# - "right"
|
||||
# - "top"
|
||||
# - "bottom"
|
||||
# For instance, "widget,right" is valid; so is "qml", which defaults
|
||||
# to putting the sidebar on the left. Also valid is "qml,top".
|
||||
# While "widget,top" is valid, the widgets code is **not** flexible
|
||||
# and results will be terrible.
|
||||
sidebar: widget
|
||||
|
||||
# Kind of navigation (button panel on the bottom).
|
||||
# - "widget" or unset, use traditional navigation
|
||||
# - "none", hide it entirely
|
||||
# - "qml", use calamares-navigation.qml from branding folder
|
||||
# In addition, you **may** specify a side, separated by a comma,
|
||||
# from the kind. The same sides are valid as for *sidebar*,
|
||||
# except the default is *bottom*.
|
||||
navigation: widget
|
||||
|
||||
|
||||
### STRINGS, IMAGES AND COLORS
|
||||
#
|
||||
# This section contains the "branding proper" of names
|
||||
# and images, rather than global-look settings.
|
||||
|
||||
# These are strings shown to the user in the user interface.
|
||||
# There is no provision for translating them -- since they
|
||||
# are names, the string is included as-is.
|
||||
#
|
||||
# The four Url strings are the Urls used by the buttons in
|
||||
# the welcome screen, and are not shown to the user. Clicking
|
||||
# on the "Support" button, for instance, opens the link supportUrl.
|
||||
# If a Url is empty, the corresponding button is not shown.
|
||||
#
|
||||
# bootloaderEntryName is how this installation / distro is named
|
||||
# in the boot loader (e.g. in the GRUB menu).
|
||||
#
|
||||
# These strings support substitution from /etc/os-release
|
||||
# if KDE Frameworks 5.58 are available at build-time. When
|
||||
# enabled, @{var-name} is replaced by the equivalent value
|
||||
# from os-release. All the supported var-names are in all-caps,
|
||||
# and are listed on the FreeDesktop.org site,
|
||||
# https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
# Note that ANSI_COLOR and CPE_NAME don't make sense here, and
|
||||
# are not supported (the rest are). Remember to quote the string
|
||||
# if it contains substitutions, or you'll get YAML exceptions.
|
||||
#
|
||||
# The *Url* entries are used on the welcome page, and they
|
||||
# are visible as buttons there if the corresponding *show* keys
|
||||
# are set to "true" (they can also be overridden).
|
||||
strings:
|
||||
productName: "@{NAME}"
|
||||
shortProductName: Ezarcher
|
||||
version: 2021
|
||||
shortVersion: 2021
|
||||
versionedName: Ezarcher Linux
|
||||
shortVersionedName: Ezarcher Linux
|
||||
bootloaderEntryName: Ezarcher
|
||||
productUrl: https://sourceforge.net/projects/ezarch/
|
||||
# supportUrl: https://sourceforge.net/projects/ezarch/
|
||||
# knownIssuesUrl: https://sourceforge.net/projects/ezarch/
|
||||
# releaseNotesUrl: https://sourceforge.net/projects/ezarch/
|
||||
# donateUrl: https://sourceforge.net/projects/ezarch/
|
||||
|
||||
# These images are loaded from the branding module directory.
|
||||
#
|
||||
# productBanner is an optional image, which if present, will be shown
|
||||
# on the welcome page of the application, above the welcome text.
|
||||
# It is intended to have a width much greater than height.
|
||||
# It is displayed at 64px height (also on HiDPI).
|
||||
# Recommended size is 64px tall, and up to 460px wide.
|
||||
# productIcon is used as the window icon, and will (usually) be used
|
||||
# by the window manager to represent the application. This image
|
||||
# should be square, and may be displayed by the window manager
|
||||
# as small as 16x16 (but possibly larger).
|
||||
# productLogo is used as the logo at the top of the left-hand column
|
||||
# which shows the steps to be taken. The image should be square,
|
||||
# and is displayed at 80x80 pixels (also on HiDPI).
|
||||
# productWallpaper is an optional image, which if present, will replace
|
||||
# the normal solid background on every page of the application.
|
||||
# It can be any size and proportion,
|
||||
# and will be tiled to fit the entire window.
|
||||
# For a non-tiled wallpaper, the size should be the same as
|
||||
# the overall window, see *windowSize* above (800x520).
|
||||
# productWelcome is shown on the welcome page of the application in
|
||||
# the middle of the window, below the welcome text. It can be
|
||||
# any size and proportion, and will be scaled to fit inside
|
||||
# the window. Use `welcomeExpandingLogo` to make it non-scaled.
|
||||
# Recommended size is 320x150.
|
||||
#
|
||||
# These filenames can also use substitutions from os-release (see above).
|
||||
images:
|
||||
# productBanner: "banner.png"
|
||||
productIcon: "squid.png"
|
||||
productLogo: "logo.png"
|
||||
productWallpaper: "wallpaper.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
# Colors for text and background components.
|
||||
#
|
||||
# - sidebarBackground is the background of the sidebar
|
||||
# - sidebarText is the (foreground) text color
|
||||
# - sidebarTextHighlight sets the background of the selected (current) step.
|
||||
# Optional, and defaults to the application palette.
|
||||
# - sidebarSelect is the text color of the selected step.
|
||||
#
|
||||
# These colors can **also** be set through the stylesheet, if the
|
||||
# branding component also ships a stylesheet.qss. Then they are
|
||||
# the corresponding CSS attributes of #sidebarApp.
|
||||
style:
|
||||
sidebarBackground: "#292F34"
|
||||
sidebarText: "#FFFFFF"
|
||||
sidebarTextSelect: "#292F34"
|
||||
sidebarTextHighlight: "#D35400"
|
||||
|
||||
### SLIDESHOW
|
||||
#
|
||||
# The slideshow is displayed during execution steps (e.g. when the
|
||||
# installer is actually writing to disk and doing other slow things).
|
||||
|
||||
# The slideshow can be a QML file (recommended) which can display
|
||||
# arbitrary things -- text, images, animations, or even play a game --
|
||||
# during the execution step. The QML **is** abruptly stopped when the
|
||||
# execution step is done, though, so maybe a game isn't a great idea.
|
||||
#
|
||||
# The slideshow can also be a sequence of images (not recommended unless
|
||||
# you don't want QML at all in your Calamares). The images are displayed
|
||||
# at a rate of 1 every 2 seconds during the execution step.
|
||||
#
|
||||
# To configure a QML file, list a single filename:
|
||||
# slideshow: "show.qml"
|
||||
# To configure images, like the filenames (here, as an inline list):
|
||||
# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ]
|
||||
slideshow: "show.qml"
|
||||
|
||||
# There are two available APIs for a QML slideshow:
|
||||
# - 1 (the default) loads the entire slideshow when the installation-
|
||||
# slideshow page is shown and starts the QML then. The QML
|
||||
# is never stopped (after installation is done, times etc.
|
||||
# continue to fire).
|
||||
# - 2 loads the slideshow on startup and calls onActivate() and
|
||||
# onLeave() in the root object. After the installation is done,
|
||||
# the show is stopped (first by calling onLeave(), then destroying
|
||||
# the QML components).
|
||||
#
|
||||
# An image slideshow does not need to have the API defined.
|
||||
slideshowAPI: 2
|
||||
|
||||
|
||||