diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 31f728a..e69de29 --- a/.gitignore +++ b/.gitignore @@ -1,5 +0,0 @@ -ISSUES/ -secrets/ - -result -rebuild*.log diff --git a/INSPIRATION b/INSPIRATION new file mode 100644 index 0000000..2c5adf0 --- /dev/null +++ b/INSPIRATION @@ -0,0 +1,8 @@ +Godlike + https://github.com/end-4/dots-hyprland + +Gorgeous + https://github.com/prasanthrangan/hyprdots + +Very nice + https://github.com/linuxmobile/hyprland-dots diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 36d887e..ce2a13b --- a/README.md +++ b/README.md @@ -1,8 +1,11 @@ -## My NixOS Flake ### Philosophy -> [!TODO] My philosophy has kinda changed since the beginning +I try to use Home Manager as little as possible. When I first started with NixOS I found +it distracting and confusing. NixOS already handles system wide and user packages, so having +another user level package management method was baffling. Obviously I understand now how +it can be useful (so I do use it). But where possible I will instead use the functionality +of Nix rather than Home Manager. -### Repo Structure +###### Structuring Modules Modules are organised into groups (ie "Core"), from here a module is structured as either: 1. a single `.nix` file (ie bluetooth.nix). I do this when I won't implement an alternative 2. a directory (ie `sound`) containing a set of alternative implementations and a `default.nix` @@ -10,19 +13,15 @@ that simply imports one of the implementations. For the `sound` example I curren to default to `pipewire.nix`. I haven't made alternatives yet but the idea is that it is HIGHLY likely I do in future. -### Security Considerations -###### Hashing -For services where password hashing is done infrequently (ie my forgejo instance with signups disabled) -use argon2 (argon2id) with default `argon2$2$65536$8$50` (typically). Otherwise bcrypt is preferred. ### TODO -There are a lot of commented `# TODO: ...` items in this repository. -All (most) of my commented directives can be found via this pattern: -```sh -grep -rnE '^\s*(//|#)\s*[A-Z]*:\s*.+$' --exclude-dir=.git 2>/dev/null -``` +There are a lot of `TODO` items in this repository. To improve these dotfiles +I should run a command to find files containing "TODO" and then implement the +recommendation I left behind :) -### Random Explanation of Fonts + + +##### Small Explanation of Fonts There are four types of fonts (to my knowledge at least): 1. serif (funny squigles / small elegant strokes included) 2. sans-serif (meaning "without serifs") @@ -34,9 +33,19 @@ Fun fact: on Android, the emojis you are seeing are part of the noto-emoji font For finding a font for programming I highly recommend trying https://www.codingfont.com/ -### Links -#### Inspiration -##### Explaining my Vision with r/unixporn posts +### My config + +Font: +Iosevka nerd font set as default/prefered font +Terminal uses IosevkaTerm nerd font + +Home-Manager: +I just to use home-manager standalone and not as a NixOS module, thus allowing +my dotfiles to also work on non-NixOS systems. + + + +### Explaining my Vision with r/unixporn posts I want the side panel from https://www.reddit.com/r/unixporn/comments/12wpvyf/hyprland_eww_is_all_i_need/ but not the colour scheme and I'm 50/50 on the bar being on th eleft side lol. Also I love the volume bar on the right! @@ -55,29 +64,22 @@ Their window decorations and bar are great, also being able to hide everything u https://www.reddit.com/r/unixporn/comments/vkcasz/i3gaps_i_prefer_light_mode/ If their colour scheme was a little less white I'd love it but overall one of my favourites every -##### Other Inspiring Shtuff -1. https://github.com/sabrehagen/desktop-environment -#### Wallpaper Sources +### Wallpaper Sources 1. https://www.wallpaperflare.com/ 2. https://alphacoders.com especially this one person: https://alphacoders.com/users/profile/69089/robokoboto and also the lofi category: https://alphacoders.com/lofi -#### Teach Yourself Nix -1. https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles) - Really good security oriented NixOS stuff -2. https://jade.fyi/blog/flakes-arent-real/ - Interesting blog post on using flakes -#### Credits +### Credits 1. https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles - The simplicity of their layout is amazing, was really good to pick out small modules and learn how something works / is configured. +The simplicity of their layout is amazing, was really good to pick out small modules and learn how something works / is configured. 2. https://github.com/Misterio77/nix-starter-configs - Really great starter config for learning how parts interact and how to generally structure flakes +Really great starter config for learning how parts interact and how to generally structure flakes 3. https://nixos.wiki/wiki/Fonts - Wiki page explaining how to install fonts and nerd fonts on NixOS +Wiki page explaining how to install fonts and nerd fonts on NixOS 4. https://github.com/adi1090x/rofi - For the Rofi theme +For the Rofi theme 5. https://github.com/zDyanTB/HyprNova - For the really cool hyprlock theme +For the really cool hyprlock theme diff --git a/TODO b/TODO new file mode 100644 index 0000000..f498088 --- /dev/null +++ b/TODO @@ -0,0 +1,91 @@ +Get Utilities: +1. httpie +2. curlie +3. zoxide +4. doggo + +1. Get helix editor +2. Custom helix +3. Complete helix tutorial + +Get nixcord working +Get thunar working +Set a GTK theme & icon theme +Get better wallpapers +Get hyprcursor working with Bibata-Modern-Ice + +Get a GRUB theme working +Get SDDM and a theme working + +Make a custom hyprlock screen + +Get AGS working +Make an applauncher in AGS +Remove hyprland splash screen on init +Made lolcathost home modular + +Overtime just install more programs that I need regularly: ie +- btop/htop/etc + +Get GTK Bibata Cursors to be the same size as my system cursor (NOT SURE WHAT I DID...) + + +Get waybar (or another bar) working + +Get a QT theme + +Fix pipewire audio sometimes working and sometimes not :( + +Bind new terminal to SUPER+Enter instead of SUPER+Q + +Join Rio Terminal's discord and ask if they support nerdfonts or if I'm doing something wrong + + + +Change Dell loading screen (Boot Graphics Resource Table, aka BGRT) + + + + +Fix: your 131072x1 screen size is bogus. expect trouble + + + +Search for all "TODO" items in my nix dotfiles + +Push nixdots to github + + + + +Check out the Ekala Project (I joined their discord server) + + +Create a program that enables/disables passwordless sudo access + (add to github too) + +Learn to package my own home-manager modules + + + + +Ideal Features: +1. AI assistant +2. searching can also be used to calculate stuff (like I do on my iPad) + + + + +Fork nixcord and fix documentation (the installation is confusing) +But firstly the first code snippet is wrong... +```nix +inputs.nixcord = { + url = "github:kaylorben/nixcord" +}; +``` +Should actually be +```nix +inputs.nixcord = { + url = "github:kaylorben/nixcord"; # dont forget the semicolon +}; +``` diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 52635fc..0000000 --- a/TODO.md +++ /dev/null @@ -1,10 +0,0 @@ -- [ ] Update the README.md -- [ ] switch ssh keys to ECC (fuck RSA) - -- [ ] migrate forge.dobutterfliescry.net -> tearforge.net -- [ ] rename forgejo user to git -- [ ] setup my own VPN -- [ ] connect match to my VPN -- [ ] use matcha to build stuff instead of using my laptop - -- [ ] make `ceru` do local and remote deployments diff --git a/TODO_UI b/TODO_UI new file mode 100644 index 0000000..34b5246 --- /dev/null +++ b/TODO_UI @@ -0,0 +1,3 @@ +1. Create more themes for my applauncher +2. Create more themes for hyprlock + check out: https://github.com/MrVivekRajan/Hyprlock-Styles diff --git a/deploy b/deploy new file mode 100755 index 0000000..b72232d --- /dev/null +++ b/deploy @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +sudo nixos-rebuild switch --flake . +#nixos-rebuild build --flake .# --cores 8 -j 1 diff --git a/flake.lock b/flake.lock old mode 100644 new mode 100755 index 26fea2d..1977cf0 --- a/flake.lock +++ b/flake.lock @@ -1,84 +1,153 @@ { "nodes": { - "cerulean": { + "ags": { "inputs": { - "deploy-rs": "deploy-rs", - "home-manager": "home-manager", - "microvm": "microvm", + "astal": "astal", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1738087375, + "narHash": "sha256-GLyNtU9A2VN22jNRHZ2OXuFfTJLh8uEVVt+ftsKUX0c=", + "owner": "Aylur", + "repo": "ags", + "rev": "a6a7a0adb17740f4c34a59902701870d46fbb6a4", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, + "ags_2": { + "inputs": { + "astal": "astal_2", "nixpkgs": [ + "hyprpanel", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1736090999, + "narHash": "sha256-B5CJuHqfJrzPa7tObK0H9669/EClSHpa/P7B9EuvElU=", + "owner": "aylur", + "repo": "ags", + "rev": "5527c3c07d92c11e04e7fd99d58429493dba7e3c", + "type": "github" + }, + "original": { + "owner": "aylur", + "repo": "ags", + "type": "github" + } + }, + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", "nixpkgs" ], - "nt": [ - "nt" - ], "systems": [ + "hyprland", "systems" ] }, "locked": { - "lastModified": 1771194110, - "narHash": "sha256-x6rijGWmPL5FTpkr+8vpcKKCOT33QHEV8bP6ibEAXFE=", - "owner": "cry128", - "repo": "Cerulean", - "rev": "d527937829dec0f410f126a2f85e374cb99a2fbb", + "lastModified": 1739103745, + "narHash": "sha256-c53dcRaw0F4Os9WD05HwIRs9kTDZw4Mxe1XK4edEALo=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "a3dda0d10ce9aa1d1dfb7a6c139ea8c2872c74bd", "type": "github" }, "original": { - "owner": "cry128", - "repo": "Cerulean", + "owner": "hyprwm", + "repo": "aquamarine", "type": "github" } }, - "deploy-rs": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": [ - "cerulean", - "nixpkgs" - ], - "utils": "utils" - }, - "locked": { - "lastModified": 1766051518, - "narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=", - "owner": "serokell", - "repo": "deploy-rs", - "rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa", - "type": "github" - }, - "original": { - "owner": "serokell", - "repo": "deploy-rs", - "type": "github" - } - }, - "dobutterfliescry-net": { + "astal": { "inputs": { "nixpkgs": [ + "ags", "nixpkgs" - ], - "nixpkgs-unstable": [ - "nixpkgs-unstable" - ], - "systems": [ - "systems" ] }, "locked": { - "lastModified": 1770947070, - "narHash": "sha256-g/l/iUET/M+nSrXlwYF2e0KeKqgGpjy3qhwQY4tG62A=", - "ref": "refs/heads/main", - "rev": "4fc28bfb4f95071d34184c7ba3153eaff87eba41", - "revCount": 121, - "type": "git", - "url": "https://forge.dobutterfliescry.net/cry/site" + "lastModified": 1737670815, + "narHash": "sha256-ZCxxshGN7XooabArcoGkYSNx5yVunqjKJi2aTv6cznI=", + "owner": "aylur", + "repo": "astal", + "rev": "127e9cdcbf173846a3c40ddc0abfbb038df48042", + "type": "github" }, "original": { - "type": "git", - "url": "https://forge.dobutterfliescry.net/cry/site" + "owner": "aylur", + "repo": "astal", + "type": "github" + } + }, + "astal_2": { + "inputs": { + "nixpkgs": [ + "hyprpanel", + "ags", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735172721, + "narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=", + "owner": "aylur", + "repo": "astal", + "rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2", + "type": "github" + }, + "original": { + "owner": "aylur", + "repo": "astal", + "type": "github" } }, "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1733328505, @@ -94,72 +163,38 @@ "type": "github" } }, - "flake-compat_2": { - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "revCount": 69, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-parts": { + "gitignore": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "nt", - "nix-unit", + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1762440070, - "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { "owner": "hercules-ci", - "repo": "flake-parts", + "repo": "gitignore.nix", "type": "github" } }, "grub2-themes": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ] + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1757136219, - "narHash": "sha256-tKU+vq34KHu/A2wD7WdgP5A4/RCmSD8hB0TyQAUlixA=", + "lastModified": 1734412921, + "narHash": "sha256-JeMqc7lLowKn6klrCcOkcOg38yNqF7MPbN4Elh6Xvq0=", "owner": "vinceliuice", "repo": "grub2-themes", - "rev": "80dd04ddf3ba7b284a7b1a5df2b1e95ee2aad606", + "rev": "f6ab2438e124f60a340a526543e498e5e33b3c53", "type": "github" }, "original": { @@ -171,190 +206,378 @@ "home-manager": { "inputs": { "nixpkgs": [ - "cerulean", "nixpkgs" ] }, "locked": { - "lastModified": 1770260404, - "narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=", + "lastModified": 1736373539, + "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "owner": "nix-community", "repo": "home-manager", - "rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b", + "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.11", + "ref": "release-24.11", "repo": "home-manager", "type": "github" } }, - "home-manager_2": { + "hyprcursor": { "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1770260404, - "narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-25.11", - "repo": "home-manager", - "type": "github" - } - }, - "microvm": { - "inputs": { - "nixpkgs": [ - "cerulean", + "hyprland", "nixpkgs" ], - "spectrum": "spectrum" + "systems": [ + "hyprland", + "systems" + ] }, "locked": { - "lastModified": 1770310890, - "narHash": "sha256-lyWAs4XKg3kLYaf4gm5qc5WJrDkYy3/qeV5G733fJww=", - "owner": "microvm-nix", - "repo": "microvm.nix", - "rev": "68c9f9c6ca91841f04f726a298c385411b7bfcd5", + "lastModified": 1738664950, + "narHash": "sha256-xIeGNM+iivwVHkv9tHwOqoUP5dDrtees34bbFKKMZYs=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "7c6d165e1eb9045a996551eb9f121b6d1b30adc3", "type": "github" }, "original": { - "owner": "microvm-nix", - "repo": "microvm.nix", + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739049071, + "narHash": "sha256-3+7TpXMrbsUXSwgr5VAKAnmkzMb6JO+Rvc9XRb5NMg4=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "175c6b29b6ff82100539e7c4363a35a02c74dd73", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_3", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1739211449, + "narHash": "sha256-zuNQu1w9xXWOBD+FlNSqmQticolSyLNp/iSkpE5BBNc=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "f2d43e5f2180adb81b3b7b51a7d0f39dace70b05", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1738422629, + "narHash": "sha256-5v+bv75wJWvahyM2xcMTSNNxmV8a7hb01Eey5zYnBJw=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "755aef8dab49d0fc4663c715fa4ad221b2aedaed", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1737634706, + "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "8810df502cdee755993cb803eba7b23f189db795", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739048983, + "narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739048914, + "narHash": "sha256-vd5rJBTmp2w7SDgfv23Zcd84ktI5eDA7e5UBzx+pKrU=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "a7334904d591f38757c46fbe2ab68651877d9099", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprpanel": { + "inputs": { + "ags": "ags_2", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1739002652, + "narHash": "sha256-W83O9ASWUFaDAFY7H9vvW/Gm9PN5Lkh0McYW3bA/6aU=", + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "rev": "0d5f80ff5cd525b8f27adfb84cef67d90e3d7f10", + "type": "github" + }, + "original": { + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739048933, + "narHash": "sha256-ck6MaoYvISBQKqZR+HcxXnx0wOhyCauxfVMaV5zhJxQ=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "e4e018a2ca6f5a9c33511973454199e1c7c85499", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1739049028, + "narHash": "sha256-RleJp7LYbr6s+M1xgbmhtBs+fYa3ZdIiF7+QalJ4D1g=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "04146df74a8d5ec0b579657307be01f1e241125f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", "type": "github" } }, "nix-flatpak": { "locked": { - "lastModified": 1767983141, - "narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=", + "lastModified": 1711997201, + "narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "440818969ac2cbd77bfe025e884d0aa528991374", + "rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd", "type": "github" }, "original": { "owner": "gmodena", - "ref": "latest", + "ref": "v0.4.1", "repo": "nix-flatpak", "type": "github" } }, - "nix-github-actions": { - "inputs": { - "nixpkgs": [ - "nt", - "nix-unit", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1737420293, - "narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=", - "owner": "nix-community", - "repo": "nix-github-actions", - "rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-github-actions", - "type": "github" - } - }, - "nix-unit": { - "inputs": { - "flake-parts": "flake-parts_2", - "nix-github-actions": "nix-github-actions", - "nixpkgs": [ - "nt", - "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1762774186, - "narHash": "sha256-hRADkHjNt41+JUHw2EiSkMaL4owL83g5ZppjYUdF/Dc=", - "owner": "nix-community", - "repo": "nix-unit", - "rev": "1c9ab50554eed0b768f9e5b6f646d63c9673f0f7", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-unit", - "type": "github" - } - }, "nixcord": { "inputs": { "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ] + "nixpkgs": "nixpkgs_5", + "systems": "systems_2", + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1770943752, - "narHash": "sha256-3vWAy2BCP5liaCEKmeqeVWbTCF/JnukgMOg8qf8mCcg=", - "owner": "FlameFlag", + "lastModified": 1739009891, + "narHash": "sha256-H3QgHEQhr8aAqrCTeJ2qZekAuzw2HhCnuzzeyxB0wbk=", + "owner": "kaylorben", "repo": "nixcord", - "rev": "aa1626057e57eca3686fbc1c3e2ddfde884c6b2a", + "rev": "677db34f35bdffcdca07246099ea3b22fc6688dc", "type": "github" }, "original": { - "owner": "FlameFlag", + "owner": "kaylorben", "repo": "nixcord", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1770770419, - "narHash": "sha256-iKZMkr6Cm9JzWlRYW/VPoL0A9jVKtZYiU4zSrVeetIs=", + "lastModified": 1737469691, + "narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6c5e707c6b5339359a9a9e215c5e66d6d802fd7a", + "rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.11", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs-lib": { + "nixpkgs_2": { "locked": { - "lastModified": 1769909678, - "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "72716169fe93074c333e8d0173151350670b824c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1770841267, - "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", + "lastModified": 1739240429, + "narHash": "sha256-pSpuHZvcvcWeRJwVpILrIjwFuFxsTVsHq6P470rOd/4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", + "rev": "3f5198c541172f46867427d4160cc9a2918414a0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1739020877, + "narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a79cfe0ebd24952b580b1cf08cd906354996d547", "type": "github" }, "original": { @@ -364,84 +587,176 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_4": { "locked": { - "lastModified": 1767313136, - "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", - "owner": "NixOS", + "lastModified": 1736344531, + "narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-25.05", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nt": { - "inputs": { - "nix-unit": "nix-unit", - "nixpkgs": "nixpkgs_2", - "systems": "systems_2" - }, + "nixpkgs_5": { "locked": { - "lastModified": 1770975056, - "narHash": "sha256-ZXTz/P3zUbbM6lNXzt91u8EwfNqhXpYMu8+wvFZqQHE=", - "owner": "cry128", - "repo": "nt", - "rev": "f42dcdd49a7921a7f433512e83d5f93696632412", + "lastModified": 1737003892, + "narHash": "sha256-RCzJE9wKByLCXmRBp+z8LK9EgdW+K+W/DXnJS4S/NVo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ae06b9c2d83cb5c8b12d7d0e32692e93d1379713", "type": "github" }, "original": { - "owner": "cry128", - "repo": "nt", + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1735554305, + "narHash": "sha256-zExSA1i/b+1NMRhGGLtNfFGXgLtgo+dcuzHzaWA6w3Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0e82ab234249d8eee3e8c91437802b32c74bb3fd", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1739055578, + "narHash": "sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a45fa362d887f4d4a7157d95c28ca9ce2899b70e", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, "root": { "inputs": { - "cerulean": "cerulean", - "dobutterfliescry-net": "dobutterfliescry-net", + "ags": "ags", "grub2-themes": "grub2-themes", - "home-manager": "home-manager_2", + "home-manager": "home-manager", + "hyprland": "hyprland", + "hyprpanel": "hyprpanel", "nix-flatpak": "nix-flatpak", "nixcord": "nixcord", - "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable", - "nt": "nt", - "systems": "systems_3" + "nixpkgs": "nixpkgs_7", + "spicetify-nix": "spicetify-nix", + "swww": "swww" } }, - "spectrum": { - "flake": false, + "spicetify-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_3" + }, "locked": { - "lastModified": 1759482047, - "narHash": "sha256-H1wiXRQHxxPyMMlP39ce3ROKCwI5/tUn36P8x6dFiiQ=", - "ref": "refs/heads/main", - "rev": "c5d5786d3dc938af0b279c542d1e43bce381b4b9", - "revCount": 996, - "type": "git", - "url": "https://spectrum-os.org/git/spectrum" + "lastModified": 1739223162, + "narHash": "sha256-YrbYTM0CkZQG38Ysr2gF4BYdsQDNQtQ4YdQTDgw/zWM=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "dea717737d04a2a3e877c082bfd2c7f91c1a33ff", + "type": "github" }, "original": { - "type": "git", - "url": "https://spectrum-os.org/git/spectrum" + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" + } + }, + "swww": { + "inputs": { + "flake-compat": "flake-compat_3", + "nixpkgs": "nixpkgs_8", + "utils": "utils" + }, + "locked": { + "lastModified": 1737129944, + "narHash": "sha256-XBwgv80YfLZ70XYVEnR0nA7Rz5jP241D5FiwrTg7tDk=", + "owner": "LGFae", + "repo": "swww", + "rev": "3e2e2ba8f44469a1446138ee97d2988e22b093bf", + "type": "github" + }, + "original": { + "owner": "LGFae", + "repo": "swww", + "type": "github" } }, "systems": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -455,9 +770,8 @@ "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" + "id": "systems", + "type": "indirect" } }, "systems_3": { @@ -475,20 +789,31 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { - "nixpkgs": [ - "nt", - "nix-unit", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1762410071, - "narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=", + "lastModified": 1737103437, + "narHash": "sha256-uPNWcYbhY2fjY3HOfRCR5jsfzdzemhfxLSxwjXYXqNc=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "97a30861b13c3731a84e09405414398fbf3e109f", + "rev": "d1ed3b385f8130e392870cfb1dbfaff8a63a1899", "type": "github" }, "original": { @@ -499,7 +824,7 @@ }, "utils": { "inputs": { - "systems": "systems" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -514,6 +839,47 @@ "repo": "flake-utils", "type": "github" } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1737634991, + "narHash": "sha256-dBAnb7Kbnier30cA7AgxVSxxARmxKZ1vHZT33THSIr8=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "e09dfe2726c8008f983e45a0aa1a3b7416aaeb8a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix old mode 100644 new mode 100755 index 2e7b315..def51aa --- a/flake.nix +++ b/flake.nix @@ -1,55 +1,88 @@ { - description = "im gonna cry again ;-;"; + description = "Emile's Nix Dotfiles"; inputs = { - systems.url = "github:nix-systems/default"; - - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; - nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; + #nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; + #nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-25.11"; + #url = "github:nix-community/home-manager"; + url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; }; - nt.url = "github:cry128/nt"; - # nt.url = "/home/me/cry/mk/nt"; + spicetify-nix = { + url = "github:Gerg-L/spicetify-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; - cerulean = { - url = "github:cry128/Cerulean"; - # url = "/home/me/cry/mk/Cerulean"; - inputs = { - systems.follows = "systems"; - nixpkgs.follows = "nixpkgs"; - nt.follows = "nt"; + nixcord.url = "github:kaylorben/nixcord"; + + grub2-themes.url = "github:vinceliuice/grub2-themes"; + + # is this necessary? (aren't I enabling it in `configuration.nix` anyways?) + hyprland.url = "github:hyprwm/Hyprland"; + + swww.url = "github:LGFae/swww"; + + # TODO: declarative flatpak management + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; + + ags.url = "github:Aylur/ags"; + + hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; + }; + + outputs = { + self, + nixpkgs, + home-manager, + hyprland, + grub2-themes, + nixcord, + ... + } @ inputs: let + system = "x86_64-linux"; + + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; + + # this is just something I'm experimenting with + PROJECT_ROOT = builtins.toString ./.; + in { + nixosConfigurations = { + # i be on my puter fr + myputer = nixpkgs.lib.nixosSystem { + # nix passes these to every single module above + specialArgs = {inherit inputs pkgs;}; + + modules = [ + ./hosts/myputer + grub2-themes.nixosModules.default + ]; }; - }; - nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; - grub2-themes = { - url = "github:vinceliuice/grub2-themes"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + # my laptop 0w0 + lolcathost = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs pkgs;}; - nixcord = { - url = "github:FlameFlag/nixcord"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + modules = [ + ./hosts/lolcathost + grub2-themes.nixosModules.default + ]; + }; - dobutterfliescry-net = { - url = "git+https://forge.dobutterfliescry.net/cry/site"; - inputs = { - nixpkgs.follows = "nixpkgs"; - nixpkgs-unstable.follows = "nixpkgs-unstable"; - systems.follows = "systems"; + # my server (vps) + imbored = nixpkgs.lib.nixosSystem { + specialargs = {inherit inputs pkgs;}; # home-manager + + modules = [ + ./hosts/imbored + ]; }; }; }; - - nixConfig = { - extra-experimental-features = "pipe-operators"; - }; - - outputs = inputs: - import ./snow.nix inputs; } diff --git a/groups/all/default.nix b/groups/all/default.nix deleted file mode 100644 index a636196..0000000 --- a/groups/all/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - imports = [ - ./modules/flatpak.nix - ]; - - # NOTE: mkDefault is 1000 and mkForce is 50 - # NOTE: so this is like a second mkDefault - security.sudo.wheelNeedsPassword = lib.mkDefault true; - - networking = { - networkmanager.enable = true; - - nftables.enable = true; - firewall.enable = lib.mkDefault true; - - # Use CloudFlare's WARP+ 1.1.1.1 DNS service - nameservers = [ - "1.1.1.1" - "1.0.0.1" - ]; - }; - - programs.nh = { - enable = true; - clean.enable = true; - clean.extraArgs = "--keep-since 7d --keep 3"; - flake = "/home/me/flake"; # sets NH_OS_FLAKE variable for you - }; - - nix.settings = { - # make wheel group trusted users allows my "ae" user - # to import packages not signed by a trusted key - # (aka super duper easier to remote deploy) - trusted-users = ["root" "@wheel"]; - experimental-features = [ - "nix-command" - "flakes" - "pipe-operators" - ]; - download-buffer-size = 524288000; # 500 MiB - }; - - time.timeZone = lib.mkDefault "Australia/Brisbane"; - - i18n.defaultLocale = lib.mkDefault "en_US.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - - users.defaultUserShell = pkgs.bash; - - environment.systemPackages = with pkgs; [ - git - vim - wget - tree - ]; -} diff --git a/groups/all/modules/flatpak.nix b/groups/all/modules/flatpak.nix deleted file mode 100644 index fbc2b38..0000000 --- a/groups/all/modules/flatpak.nix +++ /dev/null @@ -1,12 +0,0 @@ -{...}: { - services.flatpak = { - # DEBUG: remotes = [ - # DEBUG: { - # DEBUG: location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; - # DEBUG: name = "flathub"; - # DEBUG: } - # DEBUG: ]; - - # DEBUG: uninstallUnmanaged = true; - }; -} diff --git a/groups/cryde/default.nix b/groups/cryde/default.nix deleted file mode 100644 index 02c1be0..0000000 --- a/groups/cryde/default.nix +++ /dev/null @@ -1,133 +0,0 @@ -{ - pkgs, - upkgs, - config, - ... -}: { - imports = [ - ./programs.nix - - ../../hosts/modules/bashistrans.nix - ../../hosts/modules/wm/hyprland.nix - ../../hosts/modules/steam.nix - ../../hosts/modules/obsidian.nix - ]; - - boot.loader.grub2-theme = { - enable = true; - # GitHub: vinceliuice/grub2-themes - theme = "whitesur"; # stylish, vimix, or whitesur - footer = true; - customResolution = "1920x1080"; - }; - - services = { - # Set display manager (login screen) - displayManager = { - # sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects - sddm = { - enable = true; - wayland.enable = true; # experimental - theme = "corners"; - }; - defaultSession = - "hyprland" - + ( - if config.programs.hyprland.withUWSM == true - then "-uwsm" - else null - ); - }; - - tumbler.enable = true; # Thunar image thumbnail support - gvfs.enable = true; # Thunar mount, trash, and other functionality - }; - - programs = { - zsh.enable = true; - fish.enable = true; - - nix-ld.enable = true; - - neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - configure = { - customRC = '' - set number - set tabstop=4 - set shiftwidth=4 - ''; - }; - }; - - # Thunar also uses: `services.tumbler` & `services.gvfs` - thunar = { - enable = true; - plugins = with pkgs.xfce; [ - thunar-volman # for removable drives (ie USBs) - thunar-archive-plugin # create and extract archives - thunar-media-tags-plugin # change metadata for media files - ]; - }; - - # mozilla's email client - thunderbird.enable = true; - }; - - # ----- FONTS ----- - fonts = { - enableDefaultPackages = true; # no clue what this line does tbh - packages = with pkgs; - [ - geist-font # for my hyprlock theme - # texlive maintains a noto-emoji flake - texlivePackages.noto-emoji - ] - ++ builtins.filter lib.attrsets.isDerivation ( - builtins.attrValues pkgs.nerd-fonts - ); - - # TODO: change my default fonts - fontconfig = { - defaultFonts = { - serif = ["Geist"]; # TODO: package Iosevka Etoile since Iosevka isn't a serif font - sansSerif = ["Geist"]; - monospace = ["Cousine"]; - emoji = ["Noto Emoji"]; - }; - }; - }; - - # ---- ENVIRONMENT VARIABLES ---- - environment = { - sessionVariables = { - # Hint Electrons apps to use Wayland - NIXOS_OZONE_WL = "1"; - }; - systemPackages = with pkgs; [ - sddm-theme-corners - ]; - }; - - # ------- USERS ------- - users = { - users = { - # literally me fr (personal account) - me = { - isNormalUser = true; - extraGroups = ["wheel" "netdev" "docker"]; - shell = pkgs.bash; - packages = with pkgs; [ - firefox - nitch - starfetch - - gitkraken - ]; - }; - }; - }; -} diff --git a/groups/cryde/programs.nix b/groups/cryde/programs.nix deleted file mode 100644 index 09c0a67..0000000 --- a/groups/cryde/programs.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - pkgs, - upkgs, - ... -}: { - # ---- SYSTEM PACKAGES ----- - environment.systemPackages = with pkgs; [ - # User Environment - swww - helvum - easyeffects - pavucontrol - ani-cli - bluetui - wl-clipboard # clipboard for wayland - hyprpicker # color picker - hyprshot # screenshot utility - wl-screenrec # screen recording utility - qbittorrent # torrenting - signal-desktop - kdePackages.gwenview # image viewer - video-trimmer - element-desktop - - # Games - prismlauncher # minecraft - upkgs.olympus # celeste - discord - discordo - upkgs.ekphos - ]; -} diff --git a/groups/cryos/default.nix b/groups/cryos/default.nix deleted file mode 100644 index 82699d6..0000000 --- a/groups/cryos/default.nix +++ /dev/null @@ -1,140 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - imports = [ - ./programs.nix - ]; - - nixpkgs.config.allowUnfreePredicate = let - whitelist = with pkgs; - map lib.getName [ - discord - steam - steamcmd - steam-unwrapped - - winbox - - obsidian - gitkraken - ]; - in - pkg: builtins.elem (lib.getName pkg) whitelist; - - boot.loader = { - efi = { - canTouchEfiVariables = true; - efiSysMountPoint = "/boot/efi"; - }; - grub = { - efiSupport = true; - device = "nodev"; - # useOSProber = true; - }; - }; - - # Enable initrd hook for virtual console customisation - # aka cool colours when bootting yay!! - console = { - enable = true; - earlySetup = true; # initrd pre hook - keyMap = "us"; - font = "Lat2-Terminus16"; - # ANSI 24-bit color definitions (theme: dracula) - colors = [ - "21222c" - "ff5555" - "50fa7b" - "f1fa8c" - "bd93f9" - "ff79c6" - "8be9fd" - "f8f8f2" - "6272a4" - "ff6e6e" - "69ff94" - "ffffa5" - "d6acff" - "ff92df" - "a4ffff" - "ffffff" - ]; - }; - - hardware = { - graphics = { - enable = true; - enable32Bit = true; - }; - - bluetooth = { - enable = true; - powerOnBoot = true; - }; - }; - - virtualisation.docker.enable = true; - - services = { - # systemd-resolved provides network name resolution - # to local processes via a D-Bus interface. - resolved = { - enable = true; - dnssec = "true"; - domains = ["~."]; - # Use CloudFlare's WARP+ 1.1.1.1 DNS service - fallbackDns = [ - "1.1.1.1#one.one.one.one" - "1.0.0.1#one.one.one.one" - ]; - dnsovertls = "true"; - }; - - # Multimedia Framework - # With backwards compatability for alsa/pulseaudio/jack - pipewire = { - enable = true; - audio.enable = true; - wireplumber.enable = true; - - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - }; - - security = { - rtkit.enable = true; # I *think* this is for pipewire - sudo.wheelNeedsPassword = lib.mkDefault true; - }; - - # ---- ENVIRONMENT VARIABLES ---- - environment = { - # always install "dev" derivation outputs - extraOutputsToInstall = ["dev" "man"]; - - sessionVariables = { - # folder names with capitalisation look awful! - XDG_DOWNLOAD_DIR = "$HOME/downloads"; - }; - }; - - documentation = { - enable = true; - doc.enable = true; # install /share/doc packages - man = { - enable = true; # install manpages - generateCaches = false; - }; - info.enable = true; # install GNU info - dev.enable = true; # install docs intended for developers - nixos = { - enable = true; # install NixOS documentation (ie man -k nix, & nixos-help) - options.splitBuild = true; - includeAllModules = false; - }; - }; -} diff --git a/groups/cryos/programs.nix b/groups/cryos/programs.nix deleted file mode 100644 index 3e58545..0000000 --- a/groups/cryos/programs.nix +++ /dev/null @@ -1,121 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - # Shell - bash - fish - shellcheck - grc # colorise command outputs - moreutils - - # Systems Emulation - qemu # Fellice Bellard's Quick Emulator - # Binaries - binutils - strace - ltrace - perf-tools # ftrace + perf - radare2 - gdb - hexyl - # ASM - nasm - x86-manpages - # C Family - gcc - clang - clang-tools - gnumake - cmake - - # Rust - cargo - rustc - rustfmt - # Go - go - # Nim - nim - nimble - # Haskell - ghc - ghcid - ormolu - - # Nix - nix-prefetch-git - nix-index - nix-unit - - # Python - python312 # I use 3.12 since it's in a pretty stable state now - python314 # also 3.14 for latest features - poetry - # Sage - sageWithDoc # SageMath + HTML Documentation - - # .NET - dotnetCorePackages.dotnet_9.sdk - dotnetCorePackages.dotnet_9.aspnetcore - dotnetCorePackages.dotnet_9.runtime - - openvpn - inetutils - wireguard-tools - - # security tools - rustscan - nmap - dig - gobuster - nth - zap - - httpie - curlie - zoxide - doggo - tldr - btop - eza - yazi - lazygit - ripgrep - viddy # modern `watch` command - timg # terminal image (sixel) viewer - - # Pretty necessary - git - git-filter-repo - brightnessctl - acpi - # upower - vim - powertop - imagemagick - - # "Standard" Unix Commands - file - wget - tree - pstree - zip - unzip - unrar-free - lz4 - man-pages - man-pages-posix - - # Cryptography - gnupg - openssl - libargon2 - ]; - - programs = { - gnupg.agent = { - enable = true; - pinentryPackage = pkgs.pinentry-curses; - enableSSHSupport = true; - }; - }; -} diff --git a/groups/server/default.nix b/groups/server/default.nix deleted file mode 100644 index 32fe569..0000000 --- a/groups/server/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{lib, ...}: { - networking.firewall = { - allowedTCPPorts = [ - 42069 # ssh - ]; - }; - - security = { - # accept Lets Encrypt's security policy - acme = { - acceptTerms = true; - defaults.email = "eclarkboman@gmail.com"; - }; - - sudo = { - enable = true; - wheelNeedsPassword = true; - }; - # allow SSH keys for passwordless auth - pam = { - sshAgentAuth.enable = true; - services.sudo.sshAgentAuth = true; # pam_ssh_agent_auth module - }; - }; - - services = { - openssh = { - enable = true; - ports = [42069]; - settings = { - PasswordAuthentication = false; - PermitRootLogin = "no"; - AllowUsers = ["cry"]; # DO NOT ALLOW ALL - UseDns = true; - X11Forwarding = false; - }; - }; - }; - - # simple fail2ban config (not production ready or anything though) - # refer to: https://nixos.wiki/wiki/Fail2Ban - services.fail2ban = { - enable = true; - - maxretry = 5; - bantime = "10m"; # 10 minute ban - bantime-increment = { - enable = true; - formula = "ban.Time * math.exp(float(ban.Count+1)*banFactor)/math.exp(1*banFactor)"; - # multipliers = "1 2 4 8 16 32 64"; - maxtime = "168h"; # dont ban for more than 1 week - overalljails = true; - }; - }; - - users = { - users = { - # primary user - cry = { - isNormalUser = true; - home = "/home/cry"; - extraGroups = ["wheel"]; - openssh.authorizedKeys.keys = lib.mkDefault [ - (throw '' - Hosts in the `server` group must set `users.users.cry.openssh.authorizedKeys.keys = [ ... ]`. - '') - ]; - }; - }; - }; -} diff --git a/homes/ae/default.nix b/homes/ae/default.nix deleted file mode 100644 index 3c33619..0000000 --- a/homes/ae/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - nixpkgs = { - config.allowUnfree = false; - }; - - imports = [ - ../modules/fish.nix - ../modules/bat.nix - ../modules/btop.nix - ]; - - home = { - username = "ae"; - homeDirectory = "/home/ae"; - }; - - # Nicely reload system units when changing configs - systemd.user.startServices = "sd-switch"; - - home.stateVersion = "24.11"; # DO NOT MODIFY -} diff --git a/homes/me/ags-end4/assets/icons/ai-openai-symbolic.svg b/homes/me/ags-end4/assets/icons/ai-openai-symbolic.svg new file mode 120000 index 0000000..c9ee0b3 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/ai-openai-symbolic.svg @@ -0,0 +1 @@ +openai-symbolic.svg \ No newline at end of file diff --git a/homes/me/ags-end4/assets/icons/ai-oxygen-symbolic.svg b/homes/me/ags-end4/assets/icons/ai-oxygen-symbolic.svg new file mode 100644 index 0000000..5e1cc19 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/ai-oxygen-symbolic.svg @@ -0,0 +1,54 @@ + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/ai-zukijourney.png b/homes/me/ags-end4/assets/icons/ai-zukijourney.png new file mode 100644 index 0000000..917335e Binary files /dev/null and b/homes/me/ags-end4/assets/icons/ai-zukijourney.png differ diff --git a/homes/me/ags-end4/assets/icons/arch-symbolic.svg b/homes/me/ags-end4/assets/icons/arch-symbolic.svg new file mode 100644 index 0000000..7de9094 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/arch-symbolic.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/cachyos-symbolic.svg b/homes/me/ags-end4/assets/icons/cachyos-symbolic.svg new file mode 100644 index 0000000..4a9db19 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/cachyos-symbolic.svg @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/cloudflare-dns-symbolic.svg b/homes/me/ags-end4/assets/icons/cloudflare-dns-symbolic.svg new file mode 100644 index 0000000..bd48d3c --- /dev/null +++ b/homes/me/ags-end4/assets/icons/cloudflare-dns-symbolic.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/crosshair-symbolic.svg b/homes/me/ags-end4/assets/icons/crosshair-symbolic.svg new file mode 100644 index 0000000..2296749 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/crosshair-symbolic.svg @@ -0,0 +1,65 @@ + + + + + + + ionicons-v5_logos + + + + ionicons-v5_logos + + + + + + diff --git a/homes/me/ags-end4/assets/icons/debian-symbolic.svg b/homes/me/ags-end4/assets/icons/debian-symbolic.svg new file mode 100644 index 0000000..252f853 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/debian-symbolic.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/endeavouros-symbolic.svg b/homes/me/ags-end4/assets/icons/endeavouros-symbolic.svg new file mode 100644 index 0000000..3be4cc4 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/endeavouros-symbolic.svg @@ -0,0 +1,96 @@ + + + + + EndeavourOS Logo + + + + image/svg+xml + + EndeavourOS Logo + + + + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/fedora-symbolic.svg b/homes/me/ags-end4/assets/icons/fedora-symbolic.svg new file mode 100644 index 0000000..1a4e8c8 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/fedora-symbolic.svg @@ -0,0 +1,38 @@ + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/flatpak-symbolic.svg b/homes/me/ags-end4/assets/icons/flatpak-symbolic.svg new file mode 100644 index 0000000..0c2bf62 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/flatpak-symbolic.svg @@ -0,0 +1,52 @@ + + + + + Flatpak + + + + + Flatpak + + + + diff --git a/homes/me/ags-end4/assets/icons/github-symbolic.svg b/homes/me/ags-end4/assets/icons/github-symbolic.svg new file mode 100644 index 0000000..c1c9f19 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/github-symbolic.svg @@ -0,0 +1,40 @@ + + + + + + diff --git a/homes/me/ags-end4/assets/icons/google-gemini-symbolic.svg b/homes/me/ags-end4/assets/icons/google-gemini-symbolic.svg new file mode 100644 index 0000000..9de741b --- /dev/null +++ b/homes/me/ags-end4/assets/icons/google-gemini-symbolic.svg @@ -0,0 +1,56 @@ + + + + + + + ionicons-v5_logos + + + + + ionicons-v5_logos + + + + diff --git a/homes/me/ags-end4/assets/icons/linux-symbolic.svg b/homes/me/ags-end4/assets/icons/linux-symbolic.svg new file mode 100644 index 0000000..63f9c7e --- /dev/null +++ b/homes/me/ags-end4/assets/icons/linux-symbolic.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/nixos-symbolic.svg b/homes/me/ags-end4/assets/icons/nixos-symbolic.svg new file mode 100644 index 0000000..b697b0d --- /dev/null +++ b/homes/me/ags-end4/assets/icons/nixos-symbolic.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/ollama-symbolic.svg b/homes/me/ags-end4/assets/icons/ollama-symbolic.svg new file mode 100644 index 0000000..0145481 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/ollama-symbolic.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/icons/openai-symbolic.svg b/homes/me/ags-end4/assets/icons/openai-symbolic.svg new file mode 100644 index 0000000..8ffc912 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/openai-symbolic.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/homes/me/ags-end4/assets/icons/openrouter-symbolic.svg b/homes/me/ags-end4/assets/icons/openrouter-symbolic.svg new file mode 100644 index 0000000..32aaaf5 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/openrouter-symbolic.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/homes/me/ags-end4/assets/icons/ubuntu-symbolic.svg b/homes/me/ags-end4/assets/icons/ubuntu-symbolic.svg new file mode 100644 index 0000000..07746c9 --- /dev/null +++ b/homes/me/ags-end4/assets/icons/ubuntu-symbolic.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/homes/me/ags-end4/assets/themes/sourceviewtheme-dark-monokai-license.txt b/homes/me/ags-end4/assets/themes/sourceviewtheme-dark-monokai-license.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/homes/me/ags-end4/assets/themes/sourceviewtheme-dark-monokai-license.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) 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 +this service 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 make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. 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. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + 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 +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision 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, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This 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. diff --git a/homes/me/ags-end4/assets/themes/sourceviewtheme-light.xml b/homes/me/ags-end4/assets/themes/sourceviewtheme-light.xml new file mode 100644 index 0000000..bf39bfb --- /dev/null +++ b/homes/me/ags-end4/assets/themes/sourceviewtheme-light.xml @@ -0,0 +1,95 @@ + + + end_4 + <_description>Catppuccin port but very random + +