commit
23de20e827
@ -0,0 +1,98 @@ |
||||
## install |
||||
|
||||
**desktop** |
||||
|
||||
```shell |
||||
$ git clone https://code.eutychia.org/kay/nixos-config.git |
||||
|
||||
$ cd nixos-config |
||||
|
||||
$ sudo ln -sf $PWD/nixos/configuration.nix /etc/nixos/configuration.nix |
||||
|
||||
$ sudo nixos-rebuild switch |
||||
|
||||
# Install home-manager at this point |
||||
|
||||
$ ln -sf $PWD/home-manager/home.nix $HOME/.config/nixpgs/home.nix |
||||
|
||||
$ home-manager switch |
||||
``` |
||||
|
||||
**desktop vfio** |
||||
|
||||
```shell |
||||
$ git clone https://code.eutychia.org/kay/nixos-config.git |
||||
|
||||
$ cd nixos-config |
||||
|
||||
$ sudo ln -sf $PWD/nixos/configuration-vfio.nix /etc/nixos/configuration.nix |
||||
|
||||
$ sudo nixos-rebuild switch # and probably reboot at this point |
||||
|
||||
# Install home-manager at this point |
||||
|
||||
$ ln -sf $PWD/home-manager/home.nix $HOME/nixpgs/home.nix |
||||
|
||||
$ home-manager switch |
||||
``` |
||||
|
||||
**surface** |
||||
|
||||
You will also need `nixos-surface` |
||||
|
||||
Builds are distributed to the `builder` host. |
||||
|
||||
```shell |
||||
$ git clone https://code.eutychia.org/kay/nixos-config.git |
||||
|
||||
$ cd nixos-config |
||||
|
||||
$ sudo ln -sf $PWD/nixos/configuration-surface.nix /etc/nixos/configuration.nix |
||||
|
||||
$ sudo nixos-rebuild switch |
||||
|
||||
# Install home-manager at this point |
||||
|
||||
$ ln -sf $PWD/home-manager/home.nix $HOME/.config/nixpgs/home.nix |
||||
|
||||
$ env CURRENT_HOST=surface home-manager switch |
||||
``` |
||||
|
||||
## features |
||||
|
||||
- desktop |
||||
- ms surface |
||||
- vfio vm |
||||
- Use the Desktop machine as a Parsec host to stream games to the Surface machine via a KVM Windows VM with VFIO GPU passthrough. |
||||
- Sample virt-manager XML included in `virt-manager/vfio-windows.xml`. Works perfect with latest nvidia drivers and Parsec host. |
||||
|
||||
## screenshots |
||||
|
||||
**desktop** |
||||
|
||||
<a href="#"></a> |
||||
|
||||
**surface** |
||||
|
||||
<a href="#"></a> |
||||
|
||||
**vfio** |
||||
|
||||
<a href="#"></a> |
||||
<a href="#"></a> |
||||
|
||||
## todos |
||||
|
||||
- [ ] update nixos-surface |
||||
- [ ] kernel |
||||
- [ ] libwacom |
||||
- [ ] ipts firmware |
||||
- [ ] DRY up |
||||
- [ ] X/noX module |
||||
- [ ] better way than env var deal with different hosts |
||||
- [ ] create a module for 2x scaled wallpapers and only include x1 assets in repo and compile 2x assets at build on HiDPI screens |
||||
- [ ] create a module to bootstrap win10 vfio qemu vm with virsh |
||||
- [ ] win 10 iso dl |
||||
- [ ] proxmox latest virtio drivers iso download |
||||
- [ ] auto dump/patch gpu rom |
||||
|
@ -0,0 +1,8 @@ |
||||
--- |
||||
include: |
||||
- project: "kay/ci-templates" |
||||
file: |
||||
- "/Semantic-Release.gitlab-ci.yml" |
||||
|
||||
stages: |
||||
- review |
@ -0,0 +1,20 @@ |
||||
# [1.2.0](https://code.eutychia.org/kay/nixos-config/compare/v1.1.0...v1.2.0) (2022-06-26) |
||||
|
||||
|
||||
### Features |
||||
|
||||
* Update readme ([3d22ceb](https://code.eutychia.org/kay/nixos-config/commit/3d22ceb7e6c7a1f8a459d89cb900d0fd95f376bf)) |
||||
|
||||
# [1.1.0](https://code.eutychia.org/kay/nixos-config/compare/v1.0.0...v1.1.0) (2022-06-26) |
||||
|
||||
|
||||
### Features |
||||
|
||||
* Update readme ([9d74e72](https://code.eutychia.org/kay/nixos-config/commit/9d74e72e2fe548edeeeed7ccedada832eb2454e0)) |
||||
|
||||
# 1.0.0 (2022-06-26) |
||||
|
||||
|
||||
### Features |
||||
|
||||
* Add semantic release ([2255da5](https://code.eutychia.org/kay/nixos-config/commit/2255da595eb87aebb342cca733a9e22d8c181453)) |
@ -0,0 +1,459 @@ |
||||
Attribution-NonCommercial-ShareAlike 4.0 International AntiFascistEdit |
||||
|
||||
======================================================================= |
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and |
||||
does not provide legal services or legal advice. Distribution of |
||||
Creative Commons public licenses does not create a lawyer-client or |
||||
other relationship. Creative Commons makes its licenses and related |
||||
information available on an "as-is" basis. Creative Commons gives no |
||||
warranties regarding its licenses, any material licensed under their |
||||
terms and conditions, or any related information. Creative Commons |
||||
disclaims all liability for damages resulting from their use to the |
||||
fullest extent possible. |
||||
|
||||
Using Creative Commons Public Licenses |
||||
|
||||
Creative Commons public licenses provide a standard set of terms and |
||||
conditions that creators and other rights holders may use to share |
||||
original works of authorship and other material subject to copyright |
||||
and certain other rights specified in the public license below. The |
||||
following considerations are for informational purposes only, are not |
||||
exhaustive, and do not form part of our licenses. |
||||
|
||||
Considerations for licensors: Our public licenses are |
||||
intended for use by those authorized to give the public |
||||
permission to use material in ways otherwise restricted by |
||||
copyright and certain other rights. Our licenses are |
||||
irrevocable. Licensors should read and understand the terms |
||||
and conditions of the license they choose before applying it. |
||||
Licensors should also secure all rights necessary before |
||||
applying our licenses so that the public can reuse the |
||||
material as expected. Licensors should clearly mark any |
||||
material not subject to the license. This includes other CC- |
||||
licensed material, or material used under an exception or |
||||
limitation to copyright. More considerations for licensors: |
||||
wiki.creativecommons.org/Considerations_for_licensors |
||||
|
||||
Considerations for the public: By using one of our public |
||||
licenses, a licensor grants the public permission to use the |
||||
licensed material under specified terms and conditions. If |
||||
the licensor's permission is not necessary for any reason--for |
||||
example, because of any applicable exception or limitation to |
||||
copyright--then that use is not regulated by the license. Our |
||||
licenses grant only permissions under copyright and certain |
||||
other rights that a licensor has authority to grant. Use of |
||||
the licensed material may still be restricted for other |
||||
reasons, including because others have copyright or other |
||||
rights in the material. A licensor may make special requests, |
||||
such as asking that all changes be marked or described. |
||||
Although not required by our licenses, you are encouraged to |
||||
respect those requests where reasonable. More considerations |
||||
for the public: |
||||
wiki.creativecommons.org/Considerations_for_licensees |
||||
|
||||
======================================================================= |
||||
|
||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International |
||||
Public License |
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree |
||||
to be bound by the terms and conditions of this Creative Commons |
||||
Attribution-NonCommercial-ShareAlike 4.0 International Public License |
||||
("Public License"). To the extent this Public License may be |
||||
interpreted as a contract, You are granted the Licensed Rights in |
||||
consideration of Your acceptance of these terms and conditions, and the |
||||
Licensor grants You such rights in consideration of benefits the |
||||
Licensor receives from making the Licensed Material available under |
||||
these terms and conditions. |
||||
|
||||
|
||||
Section 1 -- Definitions. |
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar |
||||
Rights that is derived from or based upon the Licensed Material |
||||
and in which the Licensed Material is translated, altered, |
||||
arranged, transformed, or otherwise modified in a manner requiring |
||||
permission under the Copyright and Similar Rights held by the |
||||
Licensor. For purposes of this Public License, where the Licensed |
||||
Material is a musical work, performance, or sound recording, |
||||
Adapted Material is always produced where the Licensed Material is |
||||
synched in timed relation with a moving image. |
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright |
||||
and Similar Rights in Your contributions to Adapted Material in |
||||
accordance with the terms and conditions of this Public License. |
||||
|
||||
c. BY-NC-SA Compatible License means a license listed at |
||||
creativecommons.org/compatiblelicenses, approved by Creative |
||||
Commons as essentially the equivalent of this Public License. |
||||
|
||||
d. Copyright and Similar Rights means copyright and/or similar rights |
||||
closely related to copyright including, without limitation, |
||||
performance, broadcast, sound recording, and Sui Generis Database |
||||
Rights, without regard to how the rights are labeled or |
||||
categorized. For purposes of this Public License, the rights |
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar |
||||
Rights. |
||||
|
||||
e. Effective Technological Measures means those measures that, in the |
||||
absence of proper authority, may not be circumvented under laws |
||||
fulfilling obligations under Article 11 of the WIPO Copyright |
||||
Treaty adopted on December 20, 1996, and/or similar international |
||||
agreements. |
||||
|
||||
f. Exceptions and Limitations means fair use, fair dealing, and/or |
||||
any other exception or limitation to Copyright and Similar Rights |
||||
that applies to Your use of the Licensed Material. |
||||
|
||||
g. License Elements means the license attributes listed in the name |
||||
of a Creative Commons Public License. The License Elements of this |
||||
Public License are Attribution, NonCommercial, and ShareAlike. |
||||
|
||||
h. Licensed Material means the artistic or literary work, database, |
||||
or other material to which the Licensor applied this Public |
||||
License. |
||||
|
||||
i. Licensed Rights means the rights granted to You subject to the |
||||
terms and conditions of this Public License, which are limited to |
||||
all Copyright and Similar Rights that apply to Your use of the |
||||
Licensed Material and that the Licensor has authority to license. |
||||
|
||||
j. Licensor means the individual(s) or entity(ies) granting rights |
||||
under this Public License. |
||||
|
||||
k. NonCommercial means not primarily intended for or directed towards |
||||
commercial advantage or monetary compensation. For purposes of |
||||
this Public License, the exchange of the Licensed Material for |
||||
other material subject to Copyright and Similar Rights by digital |
||||
file-sharing or similar means is NonCommercial provided there is |
||||
no payment of monetary compensation in connection with the |
||||
exchange. |
||||
|
||||
l. Share means to provide material to the public by any means or |
||||
process that requires permission under the Licensed Rights, such |
||||
as reproduction, public display, public performance, distribution, |
||||
dissemination, communication, or importation, and to make material |
||||
available to the public including in ways that members of the |
||||
public may access the material from a place and at a time |
||||
individually chosen by them. |
||||
|
||||
m. Sui Generis Database Rights means rights other than copyright |
||||
resulting from Directive 96/9/EC of the European Parliament and of |
||||
the Council of 11 March 1996 on the legal protection of databases, |
||||
as amended and/or succeeded, as well as other essentially |
||||
equivalent rights anywhere in the world. |
||||
|
||||
n. You means the individual or entity exercising the Licensed Rights |
||||
under this Public License. Your has a corresponding meaning. |
||||
|
||||
|
||||
Section 2 -- Scope. |
||||
|
||||
a. License grant. |
||||
|
||||
1. Subject to the terms and conditions of this Public License, |
||||
the Licensor hereby grants You a worldwide, royalty-free, |
||||
non-sublicensable, non-exclusive, irrevocable license to |
||||
exercise the Licensed Rights in the Licensed Material to: |
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or |
||||
in part, for NonCommercial purposes only; and |
||||
|
||||
b. produce, reproduce, and Share Adapted Material for |
||||
NonCommercial purposes only. |
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where |
||||
Exceptions and Limitations apply to Your use, this Public |
||||
License does not apply, and You do not need to comply with |
||||
its terms and conditions. |
||||
|
||||
3. Term. The term of this Public License is specified in Section |
||||
6(a). |
||||
|
||||
4. Media and formats; technical modifications allowed. The |
||||
Licensor authorizes You to exercise the Licensed Rights in |
||||
all media and formats whether now known or hereafter created, |
||||
and to make technical modifications necessary to do so. The |
||||
Licensor waives and/or agrees not to assert any right or |
||||
authority to forbid You from making technical modifications |
||||
necessary to exercise the Licensed Rights, including |
||||
technical modifications necessary to circumvent Effective |
||||
Technological Measures. For purposes of this Public License, |
||||
simply making modifications authorized by this Section 2(a) |
||||
(4) never produces Adapted Material. |
||||
|
||||
5. Downstream recipients. |
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every |
||||
recipient of the Licensed Material automatically |
||||
receives an offer from the Licensor to exercise the |
||||
Licensed Rights under the terms and conditions of this |
||||
Public License. |
||||
|
||||
b. Additional offer from the Licensor -- Adapted Material. |
||||
Every recipient of Adapted Material from You |
||||
automatically receives an offer from the Licensor to |
||||
exercise the Licensed Rights in the Adapted Material |
||||
under the conditions of the Adapter's License You apply. |
||||
|
||||
c. No downstream restrictions. You may not offer or impose |
||||
any additional or different terms or conditions on, or |
||||
apply any Effective Technological Measures to, the |
||||
Licensed Material if doing so restricts exercise of the |
||||
Licensed Rights by any recipient of the Licensed |
||||
Material. |
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or |
||||
may be construed as permission to assert or imply that You |
||||
are, or that Your use of the Licensed Material is, connected |
||||
with, or sponsored, endorsed, or granted official status by, |
||||
the Licensor or others designated to receive attribution as |
||||
provided in Section 3(a)(1)(A)(i). |
||||
|
||||
b. Other rights. |
||||
|
||||
1. Moral rights, such as the right of integrity, are not |
||||
licensed under this Public License, nor are publicity, |
||||
privacy, and/or other similar personality rights; however, to |
||||
the extent possible, the Licensor waives and/or agrees not to |
||||
assert any such rights held by the Licensor to the limited |
||||
extent necessary to allow You to exercise the Licensed |
||||
Rights, but not otherwise. |
||||
|
||||
2. Patent and trademark rights are not licensed under this |
||||
Public License. |
||||
|
||||
3. To the extent possible, the Licensor waives any right to |
||||
collect royalties from You for the exercise of the Licensed |
||||
Rights, whether directly or through a collecting society |
||||
under any voluntary or waivable statutory or compulsory |
||||
licensing scheme. In all other cases the Licensor expressly |
||||
reserves any right to collect such royalties, including when |
||||
the Licensed Material is used other than for NonCommercial |
||||
purposes. |
||||
|
||||
|
||||
Section 3 -- License Conditions. |
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the |
||||
following conditions. |
||||
|
||||
a. Attribution. |
||||
|
||||
1. If You Share the Licensed Material (including in modified |
||||
form), You must: |
||||
|
||||
a. retain the following if it is supplied by the Licensor |
||||
with the Licensed Material: |
||||
|
||||
i. identification of the creator(s) of the Licensed |
||||
Material and any others designated to receive |
||||
attribution, in any reasonable manner requested by |
||||
the Licensor (including by pseudonym if |
||||
designated); |
||||
|
||||
ii. a copyright notice; |
||||
|
||||
iii. a notice that refers to this Public License; |
||||
|
||||
iv. a notice that refers to the disclaimer of |
||||
warranties; |
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the |
||||
extent reasonably practicable; |
||||
|
||||
b. indicate if You modified the Licensed Material and |
||||
retain an indication of any previous modifications; and |
||||
|
||||
c. indicate the Licensed Material is licensed under this |
||||
Public License, and include the text of, or the URI or |
||||
hyperlink to, this Public License. |
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any |
||||
reasonable manner based on the medium, means, and context in |
||||
which You Share the Licensed Material. For example, it may be |
||||
reasonable to satisfy the conditions by providing a URI or |
||||
hyperlink to a resource that includes the required |
||||
information. |
||||
3. If requested by the Licensor, You must remove any of the |
||||
information required by Section 3(a)(1)(A) to the extent |
||||
reasonably practicable. |
||||
|
||||
b. ShareAlike. |
||||
|
||||
In addition to the conditions in Section 3(a), if You Share |
||||
Adapted Material You produce, the following conditions also apply. |
||||
|
||||
1. The Adapter's License You apply must be a Creative Commons |
||||
license with the same License Elements, this version or |
||||
later, or a BY-NC-SA Compatible License. |
||||
|
||||
2. You must include the text of, or the URI or hyperlink to, the |
||||
Adapter's License You apply. You may satisfy this condition |
||||
in any reasonable manner based on the medium, means, and |
||||
context in which You Share Adapted Material. |
||||
|
||||
3. You may not offer or impose any additional or different terms |
||||
or conditions on, or apply any Effective Technological |
||||
Measures to, Adapted Material that restrict exercise of the |
||||
rights granted under the Adapter's License You apply. |
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights. |
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that |
||||
apply to Your use of the Licensed Material: |
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right |
||||
to extract, reuse, reproduce, and Share all or a substantial |
||||
portion of the contents of the database for NonCommercial purposes |
||||
only; |
||||
|
||||
b. if You include all or a substantial portion of the database |
||||
contents in a database in which You have Sui Generis Database |
||||
Rights, then the database in which You have Sui Generis Database |
||||
Rights (but not its individual contents) is Adapted Material, |
||||
including for purposes of Section 3(b); and |
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share |
||||
all or a substantial portion of the contents of the database. |
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not |
||||
replace Your obligations under this Public License where the Licensed |
||||
Rights include other Copyright and Similar Rights. |
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability. |
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE |
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS |
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF |
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, |
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, |
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR |
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, |
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT |
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT |
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. |
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE |
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, |
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, |
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, |
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR |
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN |
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR |
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR |
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. |
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided |
||||
above shall be interpreted in a manner that, to the extent |
||||
possible, most closely approximates an absolute disclaimer and |
||||
waiver of all liability. |
||||
|
||||
|
||||
Section 6 -- Term and Termination. |
||||
|
||||
a. This Public License applies for the term of the Copyright and |
||||
Similar Rights licensed here. However, if You fail to comply with |
||||
this Public License, then Your rights under this Public License |
||||
terminate automatically. |
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under |
||||
Section 6(a), it reinstates: |
||||
|
||||
1. automatically as of the date the violation is cured, provided |
||||
it is cured within 30 days of Your discovery of the |
||||
violation; or |
||||
|
||||
2. upon express reinstatement by the Licensor. |
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any |
||||
right the Licensor may have to seek remedies for Your violations |
||||
of this Public License. |
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the |
||||
Licensed Material under separate terms or conditions or stop |
||||
distributing the Licensed Material at any time; however, doing so |
||||
will not terminate this Public License. |
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public |
||||
License. |
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions. |
||||
|
||||
a. The Licensor shall not be bound by any additional or different |
||||
terms or conditions communicated by You unless expressly agreed. |
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the |
||||
Licensed Material not stated herein are separate from and |
||||
independent of the terms and conditions of this Public License. |
||||
|
||||
c. The License does not apply and no license is granted for |
||||
taking action on behalf of a Nation or State or Government, |
||||
be it military, law enforcement, agent, spy, hacker, developer, |
||||
this list is not exhaustive. |
||||
|
||||
d. The License does not apply and no license is granted to actors |
||||
taking action to oppress, harm, injure, kill, whether |
||||
physically or psycholocially. |
||||
|
||||
e. The License does not apply and no license is granted to actors |
||||
acting on behalf of any party previously found guilty of committing |
||||
war crimes at any point in time. |
||||
|
||||
f. The License does not apply and no license is granted to actors |
||||
acting on behalf of any party previously found not respecting the |
||||
Universal Declaration of Human Rights at any point in time. |
||||
|
||||
g. The License does not apply and no license is granted to actors |
||||
acting with the intent of surveilling a population or the intent of |
||||
gathering information on spefific or non-specific populations and/or |
||||
target demographics. |
||||
|
||||
|
||||
Section 8 -- Interpretation. |
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and |
||||
shall not be interpreted to, reduce, limit, restrict, or impose |
||||
conditions on any use of the Licensed Material that could lawfully |
||||
be made without permission under this Public License. |
||||
|
||||
b. To the extent possible, if any provision of this Public License is |
||||
deemed unenforceable, it shall be automatically reformed to the |
||||
minimum extent necessary to make it enforceable. If the provision |
||||
cannot be reformed, it shall be severed from this Public License |
||||
without affecting the enforceability of the remaining terms and |
||||
conditions. |
||||
|
||||
c. No term or condition of this Public License will be waived and no |
||||
failure to comply consented to unless expressly agreed to by the |
||||
Licensor. |
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted |
||||
as a limitation upon, or waiver of, any privileges and immunities |
||||
that apply to the Licensor or You, including from the legal |
||||
processes of any jurisdiction or authority. |
||||
|
||||
======================================================================= |
||||
|
||||
Creative Commons is not a party to its public |
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of |
||||
its public licenses to material it publishes and in those instances |
||||
will be considered the โLicensor.โ The text of the Creative Commons |
||||
public licenses is dedicated to the public domain under the CC0 Public |
||||
Domain Dedication. Except for the limited purpose of indicating that |
||||
material is shared under a Creative Commons public license or as |
||||
otherwise permitted by the Creative Commons policies published at |
||||
creativecommons.org/policies, Creative Commons does not authorize the |
||||
use of the trademark "Creative Commons" or any other trademark or logo |
||||
of Creative Commons without its prior written consent including, |
||||
without limitation, in connection with any unauthorized modifications |
||||
to any of its public licenses or any other arrangements, |
||||
understandings, or agreements concerning use of licensed material. For |
||||
the avoidance of doubt, this paragraph does not form part of the |
||||
public licenses. |
||||
|
||||
Creative Commons may be contacted at creativecommons.org. |
@ -0,0 +1,156 @@ |
||||
# [nixos-config](https://code.juke.fr/kay/nixos-config) |
||||
my nixos and home-manager config files |
||||
|
||||
## install |
||||
|
||||
**desktop** |
||||
|
||||
```shell |
||||
$ git clone https://code.eutychia.org/kay/nixos-config.git |
||||
|
||||
$ cd nixos-config |
||||
|
||||
$ sudo ln -sf $PWD/nixos/configuration.nix /etc/nixos/configuration.nix |
||||
|
||||
$ sudo nixos-rebuild switch |
||||
|
||||
# Install home-manager at this point |
||||
|
||||
$ ln -sf $PWD/home-manager/home.nix $HOME/.config/nixpgs/home.nix |
||||
|
||||
$ home-manager switch |
||||
``` |
||||
|
||||
**desktop vfio** |
||||
|
||||
```shell |
||||
$ git clone https://code.eutychia.org/kay/nixos-config.git |
||||
|
||||
$ cd nixos-config |
||||
|
||||
$ sudo ln -sf $PWD/nixos/configuration-vfio.nix /etc/nixos/configuration.nix |
||||
|
||||
$ sudo nixos-rebuild switch # and probably reboot at this point |
||||
|
||||
# Install home-manager at this point |
||||
|
||||
$ ln -sf $PWD/home-manager/home.nix $HOME/nixpgs/home.nix |
||||
|
||||
$ home-manager switch |
||||
``` |
||||
|
||||
**surface** |
||||
|
||||
You will also need `nixos-surface` |
||||
|
||||
Builds are distributed to the `builder` host. |
||||
|
||||
```shell |
||||
$ git clone https://code.eutychia.org/kay/nixos-config.git |
||||
|
||||
$ cd nixos-config |
||||
|
||||
$ sudo ln -sf $PWD/nixos/configuration-surface.nix /etc/nixos/configuration.nix |
||||
|
||||
$ sudo nixos-rebuild switch |
||||
|
||||
# Install home-manager at this point |
||||
|
||||
$ ln -sf $PWD/home-manager/home.nix $HOME/.config/nixpgs/home.nix |
||||
|
||||
$ env CURRENT_HOST=surface home-manager switch |
||||
``` |
||||
|
||||
## features |
||||
|
||||
- desktop |
||||
- ms surface |
||||
- vfio vm |
||||
- Use the Desktop machine as a Parsec host to stream games to the Surface machine via a KVM Windows VM with VFIO GPU passthrough. |
||||
- Sample virt-manager XML included in `virt-manager/vfio-windows.xml`. Works perfect with latest nvidia drivers and Parsec host. |
||||
|
||||
## screenshots |
||||
|
||||
**desktop** |
||||
|
||||
<a href="#"></a> |
||||
|
||||
**surface** |
||||
|
||||
<a href="#"></a> |
||||
|
||||
**vfio** |
||||
|
||||
<a href="#"></a> |
||||
<a href="#"></a> |
||||
|
||||
## todos |
||||
|
||||
- [ ] update nixos-surface |
||||
- [ ] kernel |
||||
- [ ] libwacom |
||||
- [ ] ipts firmware |
||||
- [ ] DRY up |
||||
- [ ] X/noX module |
||||
- [ ] better way than env var deal with different hosts |
||||
- [ ] create a module for 2x scaled wallpapers and only include x1 assets in repo and compile 2x assets at build on HiDPI screens |
||||
- [ ] create a module to bootstrap win10 vfio qemu vm with virsh |
||||
- [ ] win 10 iso dl |
||||
- [ ] proxmox latest virtio drivers iso download |
||||
- [ ] auto dump/patch gpu rom |
||||
|
||||
|
||||
|
||||
## License |
||||
|
||||
Most all of my work is now licensed under **a modified** [CC-BY-NC-SA 4.0 AFEdit](https://code.juke.fr/kay/license/raw/branch/main/LICENSE) plus accounting for states existing in our world on top of capitalism. |
||||
|
||||
This is a weird choice for code right? |
||||
|
||||
Here are a few key reasons: |
||||
- my definition of "open" involves being able to share and modify, you are able to do such things, just not make money off of it, or oppress people |
||||
- my definition of "free" involves being able to share and modify, you are able to do such things, not just make money off of it, or oppressing people |
||||
|
||||
So no, amongst other things, this list is not exhaustive, |
||||
- you cannot have somebody work on my tool and redistribute it to your employees |
||||
- you cannot resell copies of this because in this age distribution is not done with floppy disks and the internet is a thing |
||||
- you cannot use it to generate revenue yourself |
||||
- you cannot use it to "generate value" in a capitalistic sense |
||||
- you cannot use it in any military capacity |
||||
- you cannot use it in any law enforcement capacity |
||||
- you cannot use it in any state backed capacity |
||||
- you cannot use it in any surveillance capacity |
||||
- you cannot use it if you represent the interests of a state |
||||
- you cannot use it to oppress, spy, control in any capacity |
||||
- you cannot use it to injure, harm, kill, whether physically or psychologically |
||||
|
||||
You can, however, |
||||
- change it to do whatever you please |
||||
- share it to anyone you please with attribution and under the same license |
||||
- use it as much as you please |
||||
- and probably a bunch of other cool things that are possible outside of a capitalistic, imperialistic frame of reference that permeates the tech scene |
||||
|
||||
Most of the "arguments" for how "free" and "open" source licenses are done still to this day stem from archaic concepts that might not even be relevant these days and I fail to see the issue with this license not being "interoperable" with a bunch of what I deem to be "bad" licenses, as they all allow for commercial usage. |
||||
|
||||
I also will not make any attempts to monetize these works and will at most ever offer the possibility to donate to me directly if you enjoy what I do. |
||||
|
||||
Thank you that is all. |
||||
|
||||
## Development |
||||
|
||||
To clone the repository locally: |
||||
|
||||
```bash |
||||
$ git clone https://code.juke.fr/kay/nixos-config.git |
||||
``` |
||||
|
||||
## Contributing |
||||
|
||||
More to come later. |
||||
|
||||
### Issues |
||||
Open new issues by mailing [eutychia.gitlab+nixos-config-issue@gmail.com](mailto:eutychia.gitlab+nixos-config-issue@gmail.com) |
||||
|
||||
--- |
||||
beep boop |
||||
|
@ -0,0 +1,119 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.home-manager.enable = true; |
||||
home.username = "user"; |
||||
home.homeDirectory = "/home/user"; |
||||
nixpkgs.config.allowUnfree = true; |
||||
|
||||
home.sessionVariables = { |
||||
MOZ_USE_XINPUT2 = 1; |
||||
EDITOR = "nvim"; |
||||
VISUAL = "nvim"; |
||||
BROWSER = "firefox"; |
||||
}; |
||||
|
||||
manual.html.enable = true; |
||||
|
||||
home.packages = with pkgs; [ |
||||
tree |
||||
efibootmgr |
||||
dotnet-sdk |
||||
ngrok |
||||
gnome3.gnome-disk-utility |
||||
maven |
||||
ark |
||||
chromium |
||||
dconf |
||||
cargo |
||||
parted |
||||
wimlib |
||||
parted |
||||
zip |
||||
nixpkgs-fmt |
||||
monero-gui |
||||
rmapi |
||||
unp |
||||
openssl |
||||
peek |
||||
dbeaver |
||||
etcher |
||||
ffmpeg |
||||
filezilla |
||||
gnome3.gedit |
||||
gnome3.gnome-screenshot |
||||
gradle |
||||
jetbrains.idea-community |
||||
insomnia |
||||
ledger-live-desktop |
||||
ncdu |
||||
nmap |
||||
jdk11 |
||||
unrar |
||||
multimc |
||||
minecraft |
||||
youtube-dl |
||||
awscli |
||||
gifsicle |
||||
piper |
||||
gnome3.nautilus |
||||
tigervnc |
||||
xss-lock |
||||
bless |
||||
i3lock |
||||
binutils |
||||
bluez |
||||
bluez-alsa |
||||
bluez-tools |
||||
tmux |
||||
docker-compose |
||||
ctags |
||||
etcd |
||||
fd |
||||
hugo |
||||
gimp-with-plugins |
||||
google-chrome # only for ms teams... |
||||
gnumake |
||||
grpc |
||||
gcc |
||||
gparted |
||||
openvpn |
||||
hexyl |
||||
noip |
||||
imagemagick |
||||
jetbrains.webstorm |
||||
lutris |
||||
lxappearance |
||||
pavucontrol |
||||
python |
||||
rclone |
||||
ripgrep |
||||
scrot |
||||
spotify |
||||
steam |
||||
stow |
||||
thefuck |
||||
tldr |
||||
transmission |
||||
unzip |
||||
virt-manager |
||||
vlc |
||||
wget |
||||
xclip |
||||
]; |
||||
|
||||
imports = |
||||
[ |
||||
./wallpaper.nix |
||||
./xresources.nix |
||||
./xsession.nix |
||||
./programs |
||||
./services |
||||
#../../nixos-config-private/aws.nix |
||||
#../../nixos-config-private/ssh.nix |
||||
#../../nixos-config-private/npm.nix |
||||
|
||||
]; |
||||
|
||||
home.stateVersion = "21.03"; |
||||
} |
@ -0,0 +1,8 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.bat = { |
||||
enable = true; |
||||
config = { theme = "Dracula"; }; |
||||
}; |
||||
} |
@ -0,0 +1,64 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
home = { |
||||
packages = with pkgs; [ cava ]; |
||||
# file = { |
||||
# ".config/cava/config".text = |
||||
# '' |
||||
# [general] |
||||
# mode = normal |
||||
# framerate = 75 |
||||
# sensitivity = 100 |
||||
# bars = 0 |
||||
# bar_width = 2 |
||||
# bar_spacing = 1 |
||||
|
||||
# [input] |
||||
# method = pulse |
||||
# source = auto |
||||
|
||||
# [output] |
||||
# method = ncurses |
||||
# channels = stereo |
||||
# raw_target = /dev/stdout |
||||
# data_format = binary |
||||
# bit_format = 16bit |
||||
# ascii_max_range = 1000 |
||||
# bar_delimiter = 59 |
||||
# frame_delimiter = 10 |
||||
|
||||
# [color] |
||||
# gradient = 1 |
||||
# gradient_color_1 = '#7575a3' |
||||
# gradient_color_2 = '#66d9ff' |
||||
# gradient_color_3 = '#99ffeb' |
||||
# gradient_color_4 = '#b3ecff' |
||||
# gradient_color_5 = '#ccfff5' |
||||
# gradient_color_6 = '#ffb3b3' |
||||
|
||||
# [smoothing] |
||||
# integral = 70 |
||||
|
||||
# # Monstercat smoothing |
||||
# monstercat = 1 |
||||
# waves = 0; |
||||
|
||||
# # Smoothing gravity |
||||
# gravity = 50 |
||||
|
||||
# # ======================== |
||||
# # Equalizer Configurations |
||||
# # ======================== |
||||
# [eq] |
||||
# # Keys |
||||
# 1 = 1 |
||||
# 2 = 1 |
||||
# 3 = 1 |
||||
# 4 = 1 |
||||
# 5 = 1 |
||||
|
||||
# ''; |
||||
# }; |
||||
}; |
||||
} |
@ -0,0 +1,22 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
imports = [ |
||||
./bat.nix |
||||
./cava.nix |
||||
./feh.nix |
||||
./firefox.nix |
||||
./fish.nix |
||||
./git.nix |
||||
./htop.nix |
||||
./jq.nix |
||||
./neofetch.nix |
||||
./node.nix |
||||
./obs-studio.nix |
||||
./ranger.nix |
||||
./rofi.nix |
||||
./urxvt.nix |
||||
./kitty.nix |
||||
./neovim.nix |
||||
]; |
||||
} |
@ -0,0 +1,5 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.feh = { enable = true; }; |
||||
} |
@ -0,0 +1,403 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.firefox = { |
||||
enable = true; |
||||
#extensions = with pkgs; |
||||
#let |
||||
#nur-no-pkgs = import (builtins.fetchTarball |
||||
#"https://github.com/nix-community/NUR/archive/master.tar.gz") { |
||||
#inherit pkgs; |
||||
#}; |
||||
#in [ |
||||
#nur-no-pkgs.repos.rycee.firefox-addons.ublock-origin |
||||
#nur-no-pkgs.repos.rycee.firefox-addons.lastpass-password-manager |
||||
#]; |
||||
profiles = { |
||||
default = { |
||||
settings = { |
||||
"browser.startup.homepage" = "https://news.ycombinator.com"; |
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; |
||||
}; |
||||
userChrome = '' |
||||
:root { |
||||
|
||||
/* Minimal Functional Fox variables*/ |
||||
--mff-bg: #292f36; |
||||
--mff-icon-color: #e0fbfc; |
||||
--mff-nav-toolbar-padding: 8px; |
||||
--mff-sidebar-bg: var(--mff-bg); |
||||
--mff-sidebar-color: #e0fbfc; |
||||
--mff-tab-border-radius: 0px; |
||||
--mff-tab-color: #fefefa; |
||||
--mff-tab-font-family: "Cantarell", sans; |
||||
--mff-tab-font-size: 11pt; |
||||
--mff-tab-font-weight: 400; |
||||
--mff-tab-height: 32px; |
||||
--mff-tab-pinned-bg: #70c1b3; |
||||
--mff-tab-selected-bg: #ee6c4d; |
||||
--mff-tab-soundplaying-bg: #9c89b8; |
||||
--mff-urlbar-color: #98c1d9; |
||||
--mff-urlbar-focused-color: #e0fbfc; |
||||
--mff-urlbar-font-family: "Cantarell", serif; |
||||
--mff-urlbar-font-size: 12pt; |
||||
--mff-urlbar-font-weight: 700; |
||||
--mff-urlbar-results-color: #e0fbfc; |
||||
--mff-urlbar-results-font-family: "mononoki Nerd Font", serif; |
||||
--mff-urlbar-results-font-size: 12pt; |
||||
--mff-urlbar-results-font-weight: 700; |
||||
--mff-urlbar-results-url-color: #98c1d9; |
||||
/* --mff-tab-selected-bg: linear-gradient(90deg, rgba(232,74,95,1) 0%, rgba(255,132,124,1) 50%, rgba(254,206,168,1) 100%); */ |
||||
/* --mff-urlbar-font-weight: 600; */ |
||||
|
||||
/* Overriden Firefox variables*/ |
||||
--autocomplete-popup-background: var(--mff-bg) !important; |
||||
--default-arrowpanel-background: var(--mff-bg) !important; |
||||
--default-arrowpanel-color: #fefefa !important; |
||||
--lwt-toolbarbutton-icon-fill: var(--mff-icon-color) !important; |
||||
--panel-disabled-color: #f9f9fa80; |
||||
--toolbar-bgcolor: var(--mff-bg) !important; |
||||
--urlbar-separator-color: transparent !important; |
||||
} |
||||
|
||||
/* |
||||
_____ _ ___ ___ |
||||
|_ _/_\ | _ ) __| |
||||
| |/ _ \| _ \__ \ |
||||
|_/_/ \_\___/___/ |
||||
|
||||
*/ |
||||
|
||||
.tab-background[selected="true"] { |
||||
background: var(--mff-tab-selected-bg) !important; |
||||
} |
||||
|
||||
.tab-background:not[visuallyselected] { |
||||
background: var(--mff-tab-selected-bg) !important; |
||||
opacity: 0.5 !important; |
||||
} |
||||
|
||||
/* This positions the tabs under the navaigator container */ |
||||
#titlebar { |
||||
-moz-box-ordinal-group: 3 !important; |
||||
} |
||||
|
||||
.tabbrowser-tab::after, |
||||
.tabbrowser-tab::before { |
||||
border-left: none !important; |
||||
} |
||||
|
||||
.tab-background { |
||||
border: none !important; |
||||
} |
||||
|
||||
.tabbrowser-arrowscrollbox { |
||||
margin-inline-start: 4px !important; |
||||
margin-inline-end: 0px !important; |
||||
} |
||||
|
||||
.tab-close-button { |
||||
display: none !important; |
||||
} |
||||
|
||||
.tab-text { |
||||
font-family: var(--mff-tab-font-family); |
||||
font-weight: var(--mff-tab-font-weight); |
||||
font-size: var(--mff-tab-font-size) !important; |
||||
color: var(--mff-tab-color); |
||||
} |
||||
|
||||
/* Hide the favicon for tabs */ |
||||
hbox.tab-content .tab-icon-image { |
||||
display: none !important; |
||||
} |
||||
|
||||
/* Show the favicon for tabs that are pinned */ |
||||
hbox.tab-content[pinned=true] .tab-icon-image { |
||||
display: initial !important; |
||||
} |
||||
|
||||
hbox.tab-content[pinned=true] .tab-text { |
||||
display: none !important; |
||||
} |
||||
|
||||
#tabbrowser-tabs { |
||||
--tab-loading-fill: #033433 !important; |
||||
|
||||
} |
||||
|
||||
.tab-label-container:not([textoverflow]) { |
||||
display: flex; |
||||
overflow: hidden; |
||||
justify-content: center; |
||||
width: 50% !important; |
||||
max-width: 50% !important; |
||||
min-width: 50% !important; |
||||
} |
||||
|
||||
/* .tab-label-container::after { |
||||
content: "?" !important; |
||||
|
||||
} */ |
||||
|
||||
.tab-line { |
||||
display: none !important; |
||||
} |
||||
|
||||
.tabbrowser-tab { |
||||
border-radius: var(--mff-tab-border-radius) !important; |
||||
border-width: 0; |
||||
height: var(--mff-tab-height) !important; |
||||
margin-bottom: 4px !important; |
||||
margin-inline-end: 4px !important; |
||||
margin-top: 4px !important; |
||||
max-height: var(--mff-tab-height) !important; |
||||
min-height: var(--mff-tab-height) !important; |
||||
} |
||||
|
||||
.tabbrowser-tab[soundplaying="true"] { |
||||
background-color: var(--mff-tab-soundplaying-bg) !important; |
||||
} |
||||
|
||||
#tabs-newtab-button { |
||||
list-style-image: url("data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 16 16" width="16pt" height="16pt"><defs><clipPath id="_clipPath_99lNy5iVNzBT4GJ61eRvLV4FbIJfEq2X"><rect width="16" height="16"/></clipPath></defs><g clip-path="url(#_clipPath_99lNy5iVNzBT4GJ61eRvLV4FbIJfEq2X)"><clipPath id="_clipPath_PSmJUw238rlrF3iVjoZbuIy7ApS18eFZ"><rect x="0" y="0" width="16" height="16" transform="matrix(1,0,0,1,0,0)" fill="rgb(255,255,255)"/></clipPath><g clip-path="url(#_clipPath_PSmJUw238rlrF3iVjoZbuIy7ApS18eFZ)"><g><defs><filter id="hr6gh2N39iEKGHUEUXPQ1VpI5CnFB6KP" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="1.42936090628390283"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="0" dy="0" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="0.65"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs><g filter="url(#hr6gh2N39iEKGHUEUXPQ1VpI5CnFB6KP)"><mask id="_mask_kcpkNUVqAh3jvumwkzpWdE5WZ1TZaYfV" x="-200%" y="-200%" width="400%" height="400%"><rect x="-200%" y="-200%" width="400%" height="400%" style="fill:white;"/><path d=" M 12.487 8 L 3.513 8 M 8 3.513 L 8 12.487" fill-rule="evenodd" fill="black" stroke="none"/></mask><path d=" M 12.487 8 L 3.513 8 M 8 3.513 L 8 12.487" fill-rule="evenodd" fill="rgb(0,0,0)" mask="url(#_mask_kcpkNUVqAh3jvumwkzpWdE5WZ1TZaYfV)" vector-effect="non-scaling-stroke" stroke-width="3" stroke="rgb(255,255,255)" stroke-opacity="100" stroke-linejoin="miter" stroke-linecap="round" stroke-miterlimit="3"/><path d=" M 12.487 8 L 3.513 8 M 8 3.513 L 8 12.487" fill-rule="evenodd" fill="rgb(0,0,0)"/></g></g></g></g></svg>") !important; |
||||
opacity: 0.7; |
||||
} |
||||
|
||||
.tab-icon-sound { |
||||
display: none !important; |
||||
} |
||||
|
||||
/* |
||||
_____ ___ ___ _ ___ _ ___ |
||||
|_ _/ _ \ / _ \| | | _ ) /_\ | _ \ |
||||
| || (_) | (_) | |__| _ \/ _ \| / |
||||
|_| \___/ \___/|____|___/_/ \_\_|_\ |
||||
*/ |
||||
|
||||
.urlbar-icon > image { |
||||
fill: var(--mff-icon-color) !important; |
||||
color: var(--mff-icon-color) !important; |
||||
} |
||||
|
||||
.toolbarbutton-text { |
||||
color: var(--mff-icon-color) !important; |
||||
} |
||||
.urlbar-icon { |
||||
color: var(--mff-icon-color) !important; |
||||
|
||||
} |
||||
|
||||
.toolbarbutton-icon { |
||||
/* filter: drop-shadow(0 0 0.75rem crimson); */ |
||||
} |
||||
|
||||
#urlbar-results { |
||||
font-family: var(--mff-urlbar-results-font-family); |
||||
font-weight: var(--mff-urlbar-results-font-weight); |
||||
font-size: var(--mff-urlbar-results-font-size) !important; |
||||
color: var(--mff-urlbar-results-color) !important; |
||||
} |
||||
|
||||
.urlbarView-row[type="bookmark"] > span{ |
||||
color: green !important; |
||||
} |
||||
|
||||
.urlbarView-row[type="switchtab"] > span{ |
||||
color: orange !important; |
||||
} |
||||
|
||||
.urlbarView-url, .search-panel-one-offs-container { |
||||
color: var(--mff-urlbar-results-url-color) !important; |
||||
font-family: var(--mff-urlbar-font-family); |
||||
font-weight: var(--mff-urlbar-results-font-weight); |
||||
font-size: var(--mff-urlbar-font-size) !important; |
||||
} |
||||
|
||||
.urlbarView-favicon, .urlbarView-type-icon { |
||||
display: none !important; |
||||
} |
||||
|
||||
#urlbar-input { |
||||
font-size: var(--mff-urlbar-font-size) !important; |
||||
color: var(--mff-urlbar-color) !important; |
||||
font-family: var(--mff-urlbar-font-family) !important; |
||||
font-weight: var(--mff-urlbar-font-weight)!important; |
||||
text-align: center !important; |
||||
} |
||||
|
||||
#tracking-protection-icon-container, #identity-box { |
||||
display: none; |
||||
} |
||||
|
||||
#back-button > .toolbarbutton-icon{ |
||||
--backbutton-background: transparent !important; |
||||
border: none !important; |
||||
} |
||||
|
||||
#back-button { |
||||
list-style-image: url("data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 16 16" width="16pt" height="16pt"><defs><clipPath id="_clipPath_z1ZWMbJsyhiOU2QHbFJoUMhQtGZ43GMW"><rect width="16" height="16"/></clipPath></defs><g clip-path="url(#_clipPath_z1ZWMbJsyhiOU2QHbFJoUMhQtGZ43GMW)"><defs><filter id="VFDVuOTf5K98KT4GTZIfo6t2oUeOZ3OQ" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="1.42936090628390283"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="0" dy="0" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="1"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs><g filter="url(#VFDVuOTf5K98KT4GTZIfo6t2oUeOZ3OQ)"><path d=" M 6.459 8.003 L 12.444 2.018 C 12.609 1.853 12.7 1.633 12.7 1.399 C 12.7 1.164 12.609 0.945 12.444 0.78 L 11.92 0.256 C 11.755 0.091 11.535 0 11.301 0 C 11.067 0 10.847 0.091 10.682 0.256 L 3.555 7.382 C 3.39 7.548 3.3 7.768 3.3 8.003 C 3.3 8.239 3.39 8.459 3.555 8.625 L 10.676 15.744 C 10.84 15.909 11.06 16 11.294 16 C 11.529 16 11.749 15.909 11.913 15.744 L 12.438 15.22 C 12.779 14.879 12.779 14.323 12.438 13.982 L 6.459 8.003 L 6.459 8.003 Z " fill="rgb(255,255,255)"/></g></g></svg>") !important; |
||||
} |
||||
|
||||
#forward-button { |
||||
list-style-image: url("data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 16 16" width="16pt" height="16pt"><defs><clipPath id="_clipPath_eVFSl4zvN5oTHPzyWFXDKL3KvwnaLKzR"><rect width="16" height="16"/></clipPath></defs><g clip-path="url(#_clipPath_eVFSl4zvN5oTHPzyWFXDKL3KvwnaLKzR)"><clipPath id="_clipPath_whDLWxO2Es9F8hEuhZ0p3GS4myfSGk47"><rect x="0" y="0" width="16" height="16" transform="matrix(1,0,0,1,0,0)" fill="rgb(255,255,255)"/></clipPath><g clip-path="url(#_clipPath_whDLWxO2Es9F8hEuhZ0p3GS4myfSGk47)"><g><g filter="url(#ypa27OiaF8P4AvdUhn4W059B0fCNWPt7)"><path d=" M 9.541 8.003 L 3.556 2.018 C 3.391 1.853 3.3 1.633 3.3 1.399 C 3.3 1.164 3.391 0.945 3.556 0.78 L 4.08 0.256 C 4.245 0.091 4.465 0 4.699 0 C 4.933 0 5.153 0.091 5.318 0.256 L 12.445 7.382 C 12.61 7.548 12.7 7.768 12.7 8.003 C 12.7 8.239 12.61 8.459 12.445 8.625 L 5.324 15.744 C 5.16 15.909 4.94 16 4.706 16 C 4.471 16 4.251 15.909 4.087 15.744 L 3.562 15.22 C 3.221 14.879 3.221 14.323 3.562 13.982 L 9.541 8.003 L 9.541 8.003 Z " fill="rgb(255,255,255)"/></g><defs><filter id="ypa27OiaF8P4AvdUhn4W059B0fCNWPt7" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="1.42936090628390283"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="0" dy="0" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="1"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs></g></g></g></svg>") !important; |
||||
} |
||||
|
||||
toolbar { |
||||
background-image: none !important; |
||||
} |
||||
|
||||
#urlbar-background { |
||||
opacity: .98 !important; |
||||
} |
||||
|
||||
#navigator-toolbox, toolbaritem { |
||||
border: none !important; |
||||
} |
||||
|
||||
#urlbar-background { |
||||
background-color: var(--mff-bg) !important; |
||||
border: none !important; |
||||
} |
||||
|
||||
.toolbar-items { |
||||
background-color: var(--mff-bg) !important; |
||||
} |
||||
|
||||
#sidebar-search-container { |
||||
background-color: var(--mff-sidebar-bg) !important; |
||||
} |
||||
|
||||
box.panel-arrowbox { |
||||
display: none; |
||||
} |
||||
|
||||
box.panel-arrowcontent { |
||||
border-radius: 8px !important; |
||||
border: none !important; |
||||
} |
||||
|
||||
tab.tabbrowser-tab { |
||||
overflow: hidden; |
||||
} |
||||
|
||||
tab.tabbrowser-tab:hover { |
||||
box-shadow: 0 1px 4px rgba(0,0,0,.05); |
||||
} |
||||
|
||||
image#star-button { |
||||
display: none; |
||||
} |
||||
|
||||
toolbar#nav-bar { |
||||
padding: var(--mff-nav-toolbar-padding) !important; |
||||
} |
||||
|
||||
toolbar#nav-bar { |
||||
padding: 4px !important; |
||||
} |
||||
|
||||
#urlbar { |
||||
max-width: 70% !important; |
||||
margin: 0 15% !important; |
||||
/* position: unset!important; */; |
||||
} |
||||
|
||||
#urlbar-input:focus { |
||||
color: var(--mff-urlbar-focused-color) !important; |
||||
} |
||||
|
||||
|
||||
.megabar[breakout-extend="true"]:not([open="true"]) > #urlbar-background { |
||||
box-shadow: none !important; |
||||
background-color: transparent !important; |
||||
} |
||||
|
||||
toolbarbutton { |
||||
box-shadow: none !important; |
||||
} |
||||
|
||||
|
||||
/* |
||||
___ ___ ___ ___ ___ _ ___ |
||||
/ __|_ _| \| __| _ ) /_\ | _ \ |
||||
\__ \| || |) | _|| _ \/ _ \| / |
||||
|___/___|___/|___|___/_/ \_\_|_\ |
||||
*/ |
||||
|
||||
.close-icon, .urlbar-icon { |
||||
fill: var(--mff-icon-color) !important; |
||||
} |
||||
|
||||
.sidebar-placesTree { |
||||
color: var(--mff-sidebar-color) !important; |
||||
} |
||||
|
||||
#sidebar-switcher-target { |
||||
/* color: white !important; */ |
||||
} |
||||
|
||||
#sidebar-box { |
||||
--sidebar-background-color: var(--mff-sidebar-bg) !important; |
||||
} |
||||
|
||||
splitter#sidebar-splitter { |
||||
opacity: 0 !important; |
||||
} |
||||
|
||||
splitter#sidebar-splitter { |
||||
border: none !important; |
||||
background-color: transparent !important; |
||||
} |
||||
|
||||
image#sidebar-icon { |
||||
display: none; |
||||
} |
||||
|
||||
|
||||
/* |
||||
_ ___ ___ _____ _____ _ _ _ ___ _ |
||||
/_\ | _ \ _ \/ _ \ \ / / _ \/_\ | \| | __| | |
||||
/ _ \| / / (_) \ \/\/ /| _/ _ \| .` | _|| |__ |
||||
/_/ \_\_|_\_|_\\___/ \_/\_/ |_|/_/ \_\_|\_|___|____| |
||||
*/ |
||||
|
||||
.panel-arrowcontent { |
||||
padding: 0px !important; |
||||
margin: 0px !important; |
||||
} |
||||
|
||||
toolbarseparator { |
||||
display: none; |
||||
} |
||||
''; |
||||
userContent = '' |
||||
@import url("userChrome.css"); |
||||
|
||||
/* Removes white loading page */ |
||||
@-moz-document url(about:blank), url(about:newtab), url(about:home) { |
||||
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay { |
||||
background: var(--mff-bg) !important; |
||||
} |
||||
} |
||||
|
||||
|
||||
/* Hide scrollbar */ |
||||
|
||||
:root{ |
||||
scrollbar-width: none !important; |
||||
} |
||||
|
||||
|
||||
@-moz-document url(about:privatebrowsing) { |
||||
|
||||
:root{ |
||||
scrollbar-width: none !important; |
||||
} |
||||
} |
||||
''; |
||||
}; |
||||
}; |
||||
|
||||
}; |
||||
} |
@ -0,0 +1,76 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.fish = { |
||||
enable = true; |
||||
plugins = [ |
||||
{ |
||||
name = "sushi-dracula"; |
||||
src = pkgs.fetchFromGitHub { |
||||
owner = "jukefr"; |
||||
repo = "sushi-dracula"; |
||||
rev = "2ac88947f919cd4e17dbee3a506cb088b9c383f4"; |
||||
sha256 = "129q9v7qnd0p9xm8a9h40fiyanwmn3ihxp1jdldss39xpsxh3l4m"; |
||||
}; |
||||
} |
||||
{ |
||||
name = "thefuck"; |
||||
src = pkgs.fetchFromGitHub { |
||||
owner = "oh-my-fish"; |
||||
repo = "plugin-thefuck"; |
||||
rev = "3570c4464bdfd0f312e22a0b407a8c0ba98b7e0d"; |
||||
sha256 = "0ih35vxvc05wc708i1ifr94s1p20k27bydqjlyk2gpv1cr8jf6j2"; |
||||
}; |
||||
} |
||||
]; |
||||
functions = { |
||||
fish_user_key_bindings = '' |
||||
bind \cf 'thefuck-command-line' |
||||
''; |
||||
docker-aws-login = '' |
||||
eval (${pkgs.awscli}/bin/aws ecr get-login --no-include-email --region eu-west-3 --profile $argv) |
||||
''; |
||||
fish_greeting = '' |
||||
echo NixOS (nixos-version) |
||||
''; |
||||
|
||||
# work stuff |
||||
|
||||
# create a work branch from master |
||||
gb = '' |
||||
set stashed (git stash) |
||||
|
||||
if test "$stashed" = "No local changes to save" |
||||
set stashed 0 |
||||
else |
||||
set stashed 1 |
||||
end |
||||
|
||||
git checkout develop |
||||
git pull |
||||
git checkout -b (string sub --length 8 (uuidgen)) |
||||
|
||||
if test "$stashed" = "1" |
||||
git stash pop |
||||
end |
||||
''; |
||||
|
||||
# push the random branch to the correct origin feature branch |
||||
gp = '' |
||||
set ticket (git log -1 --pretty=%B | head -n 1 | string split , | tail -1 | string trim) |
||||
|
||||
if not test (string sub --length 4 $ticket) = "CSV-" |
||||
set ticket (git branch --show-current) |
||||
end |
||||
|
||||
git push --set-upstream origin (git branch --show-current):feature/$ticket |
||||
''; |
||||
}; |
||||
shellInit = '' |
||||
set -gx PATH ${config.home.homeDirectory}/.npm-global/bin $PATH |
||||
set -gx EDITOR ${pkgs.neovim}/bin/nvim |
||||
set -gx VISUAL ${pkgs.neovim}/bin/nvim |
||||
set -gx SHELL ${pkgs.fish}/bin/fish |
||||
''; |
||||
}; |
||||
} |
@ -0,0 +1,14 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.git = { |
||||
enable = true; |
||||
userName = "jukefr"; |
||||
userEmail = "gh@juke.fr"; |
||||
signing = { |
||||
key = "DA196F75E61208AF"; |
||||
signByDefault = true; |
||||
}; |
||||
extraConfig = { core = { editor = "nvim"; }; pull = { rebase = false; }; }; |
||||
}; |
||||
} |
@ -0,0 +1,29 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
programs.htop = { |
||||
enable = true; |
||||
fields = [ "PID" "USER" " |