forked from aylac.top/nixcfg
this repo has no description

cool stuff

Changed files
+651 -319
.github
workflows
.helix
homes
hosts
morgana
nanpi
modules
flake
home
programs
themes
nixos
desktop
services
qbittorrent
themes
+18
.github/workflows/build-nixos.yml
···
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.ref }}
jobs:
+
build-jezebel:
+
runs-on: ubuntu-latest
+
steps:
+
- name: Free Disk Space (Ubuntu)
+
uses: jlumbroso/free-disk-space@main
+
- name: Checkout
+
uses: actions/checkout@main
+
with:
+
fetch-depth: 1
+
- name: Install Nix
+
uses: DeterminateSystems/nix-installer-action@main
+
- name: Cachix
+
uses: cachix/cachix-action@master
+
with:
+
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
+
name: ayla6
+
- name: Build jezebel
+
run: nix build --accept-flake-config --print-out-paths .#nixosConfigurations.jezebel.config.system.build.toplevel
build-morgana:
runs-on: ubuntu-latest
steps:
+1
.gitignore
···
result
+
core
+24
.helix/languages.toml
···
+
[[language]]
+
auto-format = true
+
language-servers = ["nixd"]
+
name = "nix"
+
+
[language.formatter]
+
command = "/nix/store/rk7b4ldkp4ssblpsa1x56kl8xf94kd1a-alejandra-4.0.0/bin/alejandra"
+
+
[[language]]
+
auto-format = true
+
file-types = ["sh", "bash", "dash", "ksh", "mksh"]
+
language-servers = ["bash-language-server"]
+
name = "bash"
+
+
[language.formatter]
+
args = ["-i", "2"]
+
command = "/nix/store/d6s6915z6g0lsffym2ibcb8yjxrvsav6-shfmt-3.12.0/bin/shfmt"
+
+
[language-server.bash-language-server]
+
args = ["start"]
+
command = "bash-language-server"
+
+
[language-server.nixd]
+
command = "/nix/store/58ghdm4idf5yql6k4d68cb4gj1qy85pd-nixd-2.6.4/bin/nixd"
+1 -1
.pre-commit-config.yaml
···
-
/nix/store/gymzy28f2bhcbfpkr2j13x82ywdp66ms-pre-commit-config.json
+
/nix/store/p8lr9igl65cxp4kxfhl54422xz6k52v6-pre-commit-config.json
+318 -30
flake.lock
···
"type": "github"
}
},
+
"actions-nix_2": {
+
"inputs": {
+
"flake-parts": "flake-parts_3",
+
"git-hooks": "git-hooks",
+
"nixpkgs": "nixpkgs"
+
},
+
"locked": {
+
"lastModified": 1753483837,
+
"narHash": "sha256-RtOPrgRIuOSLoz1hyLQTZC1PAImEX/0lNJJC3rKJ0dw=",
+
"owner": "alyraffauf",
+
"repo": "actions.nix",
+
"rev": "9ecedc5f18b654a7ad273a96ee53d3e020a9a11f",
+
"type": "github"
+
},
+
"original": {
+
"owner": "alyraffauf",
+
"repo": "actions.nix",
+
"type": "github"
+
}
+
},
"agenix": {
"inputs": {
"darwin": "darwin",
···
"type": "github"
}
},
-
"evergarden": {
-
"inputs": {
-
"nixpkgs": "nixpkgs"
-
},
+
"files": {
"locked": {
-
"lastModified": 1754955388,
-
"narHash": "sha256-KLYtd4rU9dxuzKeCQCEMhjDTPcJZc/GZh4422dagHAE=",
-
"owner": "everviolet",
-
"repo": "nix",
-
"rev": "a5064e81f380465e5c4db81ef86e6194e1d49a19",
+
"lastModified": 1753414454,
+
"narHash": "sha256-IMdHZjva8z354/TAjkKqgHJ0k7qGZeaf460EPq/awDA=",
+
"owner": "alyraffauf",
+
"repo": "files",
+
"rev": "fdfd673e34933a6836e6dccda820e448300e4c05",
"type": "github"
},
"original": {
-
"owner": "everviolet",
-
"repo": "nix",
+
"owner": "alyraffauf",
+
"repo": "files",
"type": "github"
}
},
-
"files": {
+
"files_2": {
"locked": {
"lastModified": 1753414454,
"narHash": "sha256-IMdHZjva8z354/TAjkKqgHJ0k7qGZeaf460EPq/awDA=",
···
"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": {
+
"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_3": {
+
"flake": false,
+
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
···
"type": "github"
}
},
-
"flake-compat_2": {
+
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1696426674,
···
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
+
"fontix",
+
"actions-nix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1738453229,
+
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
+
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
+
"type": "github"
+
}
+
},
+
"flake-parts_4": {
+
"inputs": {
+
"nixpkgs-lib": "nixpkgs-lib_2"
+
},
+
"locked": {
+
"lastModified": 1754091436,
+
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
+
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
+
"type": "github"
+
}
+
},
+
"flake-parts_5": {
+
"inputs": {
+
"nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
···
"type": "github"
}
},
-
"flake-parts_4": {
+
"flake-parts_6": {
"inputs": {
"nixpkgs-lib": [
"nur",
···
"type": "github"
}
},
-
"git-hooks-nix": {
+
"fontix": {
+
"inputs": {
+
"actions-nix": "actions-nix_2",
+
"files": "files_2",
+
"flake-parts": "flake-parts_4",
+
"git-hooks-nix": "git-hooks-nix",
+
"home-manager": "home-manager_2",
+
"nix-darwin": "nix-darwin",
+
"nixpkgs": [
+
"nixpkgs"
+
],
+
"treefmt-nix": "treefmt-nix"
+
},
+
"locked": {
+
"lastModified": 1754340355,
+
"narHash": "sha256-P93WnwfqfbRDGmXYuTkr8DUivt2L2q+PcfwG5axgL2Q=",
+
"owner": "alyraffauf",
+
"repo": "fontix",
+
"rev": "f7188f3ddbb0a0d172ad30b8262ca0d1817d8bd1",
+
"type": "github"
+
},
+
"original": {
+
"owner": "alyraffauf",
+
"repo": "fontix",
+
"type": "github"
+
}
+
},
+
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
+
"fontix",
+
"actions-nix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1750779888,
+
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
+
"type": "github"
+
},
+
"original": {
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"type": "github"
+
}
+
},
+
"git-hooks-nix": {
+
"inputs": {
+
"flake-compat": "flake-compat_2",
+
"gitignore": "gitignore_2",
+
"nixpkgs": [
+
"fontix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1750779888,
+
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
+
"type": "github"
+
},
+
"original": {
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"type": "github"
+
}
+
},
+
"git-hooks-nix_2": {
+
"inputs": {
+
"flake-compat": "flake-compat_3",
+
"gitignore": "gitignore_3",
+
"nixpkgs": [
"nixpkgs"
]
},
···
"gitignore": {
"inputs": {
"nixpkgs": [
+
"fontix",
+
"actions-nix",
+
"git-hooks",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1709087332,
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"type": "github"
+
}
+
},
+
"gitignore_2": {
+
"inputs": {
+
"nixpkgs": [
+
"fontix",
"git-hooks-nix",
"nixpkgs"
]
···
"type": "github"
}
},
-
"gitignore_2": {
+
"gitignore_3": {
+
"inputs": {
+
"nixpkgs": [
+
"git-hooks-nix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1709087332,
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"type": "github"
+
}
+
},
+
"gitignore_4": {
"inputs": {
"nixpkgs": [
"lanzaboote",
···
"home-manager_2": {
"inputs": {
"nixpkgs": [
+
"fontix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1754174776,
+
"narHash": "sha256-Sp3FRM6xNwNtGzYH/HByjzJYHSQvwsW+lDMMZNF43PQ=",
+
"owner": "nix-community",
+
"repo": "home-manager",
+
"rev": "e6e2f43a62b7dbc8aa8b1adb7101b0d8b9395445",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-community",
+
"ref": "master",
+
"repo": "home-manager",
+
"type": "github"
+
}
+
},
+
"home-manager_3": {
+
"inputs": {
+
"nixpkgs": [
"nixpkgs"
]
},
···
"lanzaboote": {
"inputs": {
"crane": "crane",
-
"flake-compat": "flake-compat_2",
-
"flake-parts": "flake-parts_3",
+
"flake-compat": "flake-compat_4",
+
"flake-parts": "flake-parts_5",
"nixpkgs": [
"nixpkgs"
],
···
"type": "github"
}
},
+
"nix-darwin": {
+
"inputs": {
+
"nixpkgs": [
+
"fontix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1751313918,
+
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
+
"owner": "nix-darwin",
+
"repo": "nix-darwin",
+
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-darwin",
+
"ref": "master",
+
"repo": "nix-darwin",
+
"type": "github"
+
}
+
},
"nixpkgs": {
"locked": {
-
"lastModified": 1741037377,
-
"narHash": "sha256-SvtvVKHaUX4Owb+PasySwZsoc5VUeTf1px34BByiOxw=",
+
"lastModified": 1740126099,
+
"narHash": "sha256-ozoOtE2hGsqh4XkTJFsrTkNxkRgShxpQxDynaPZUGxk=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "02032da4af073d0f6110540c8677f16d4be0117f",
+
"rev": "32fb99ba93fea2798be0e997ea331dd78167f814",
"type": "github"
},
"original": {
"owner": "nixos",
-
"ref": "nixpkgs-unstable",
+
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
···
"type": "github"
}
},
+
"nixpkgs-lib_2": {
+
"locked": {
+
"lastModified": 1753579242,
+
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
+
"owner": "nix-community",
+
"repo": "nixpkgs.lib",
+
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-community",
+
"repo": "nixpkgs.lib",
+
"type": "github"
+
}
+
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730741070,
···
},
"nur": {
"inputs": {
-
"flake-parts": "flake-parts_4",
+
"flake-parts": "flake-parts_6",
"nixpkgs": "nixpkgs_3"
},
"locked": {
···
"lanzaboote",
"flake-compat"
],
-
"gitignore": "gitignore_2",
+
"gitignore": "gitignore_4",
"nixpkgs": [
"lanzaboote",
"nixpkgs"
···
"actions-nix": "actions-nix",
"agenix": "agenix",
"disko": "disko",
-
"evergarden": "evergarden",
"files": "files",
"firefox-onebar": "firefox-onebar",
"flake-parts": "flake-parts_2",
-
"git-hooks-nix": "git-hooks-nix",
-
"home-manager": "home-manager_2",
+
"fontix": "fontix",
+
"git-hooks-nix": "git-hooks-nix_2",
+
"home-manager": "home-manager_3",
"lanzaboote": "lanzaboote",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
···
"secrets": {
"flake": false,
"locked": {
-
"lastModified": 1755286003,
-
"narHash": "sha256-ufYeGSRUzhwvrFlS8RQPDFBnLUAeJheYsfuKaOFJ/PI=",
+
"lastModified": 1755310472,
+
"narHash": "sha256-5+pJ8MaRuL4zl/HDtTkzZeoEDjeUC7UXa25gwGu2850=",
"owner": "ayla6",
"repo": "secrets",
-
"rev": "12d3ab0518ba83c274efb230c5cc3a837845e89d",
+
"rev": "2758e4878df0dfb6fc8ad5aefc21f95881e2e7e0",
"type": "github"
},
"original": {
···
"original": {
"owner": "nix-systems",
"repo": "default",
+
"type": "github"
+
}
+
},
+
"treefmt-nix": {
+
"inputs": {
+
"nixpkgs": [
+
"fontix",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1754061284,
+
"narHash": "sha256-ONcNxdSiPyJ9qavMPJYAXDNBzYobHRxw0WbT38lKbwU=",
+
"owner": "numtide",
+
"repo": "treefmt-nix",
+
"rev": "58bd4da459f0a39e506847109a2a5cfceb837796",
+
"type": "github"
+
},
+
"original": {
+
"owner": "numtide",
+
"repo": "treefmt-nix",
"type": "github"
}
}
+11 -7
flake.nix
···
inputs.nixpkgs.follows = "nixpkgs";
};
-
evergarden.url = "github:everviolet/nix";
+
files.url = "github:alyraffauf/files";
+
+
firefox-onebar = {
+
url = "https://git.gay/freeplay/Firefox-Onebar/raw/branch/waf/onebar.css";
+
flake = false;
+
};
-
files.url = "github:alyraffauf/files";
flake-parts.url = "github:hercules-ci/flake-parts";
+
+
fontix = {
+
url = "github:alyraffauf/fontix";
+
inputs.nixpkgs.follows = "nixpkgs";
+
};
git-hooks-nix = {
url = "github:cachix/git-hooks.nix";
···
secrets = {
url = "github:ayla6/secrets";
-
flake = false;
-
};
-
-
firefox-onebar = {
-
url = "https://git.gay/freeplay/Firefox-Onebar/raw/branch/waf/onebar.css";
flake = false;
};
};
+71 -39
homes/ayla/default.nix
···
}: {
imports = [
self.homeModules.default
+
self.inputs.fontix.homeModules.default
];
config = lib.mkMerge [
{
home = {
packages = with pkgs; [
+
# development
+
gcc
+
nodejs
+
pnpm
+
typescript
+
ffmpeg-full
+
luajit
+
love
+
+
# applications
+
keepassxc
+
qbittorrent
+
flare-signal
+
kdePackages.kdenlive
+
krita
+
gimp3
+
yt-dlp
+
aseprite
+
inkscape
+
jellyfin-media-player
+
calibre
+
picard
+
freac
+
audacious
+
audacious-plugins
+
lmms
+
nicotine-plus
+
blender
rclone
rclone-browser
+
+
# gaming
+
mgba
+
melonDS
+
openttd
+
prismlauncher
+
mindustry
];
username = "ayla";
···
};
programs = {
+
anki.enable = true;
chromium.enable = true;
fastfetch.enable = true;
firefox = {
···
mode = "sidebar";
};
git.enable = true;
+
helix.enable = true;
micro.enable = true;
mpv.enable = true;
obs-studio.enable = true;
+
ssh.enable = true;
zed-editor.enable = true;
-
ssh.enable = true;
};
profiles = {
···
services = {
aria2.enable = true;
};
+
};
-
themes = {
-
#evergarden.enable = true;
-
fonts.enable = false;
+
fontix = {
+
fonts = {
+
monospace = {
+
name = "JetBrainsMono Nerd Font";
+
package = pkgs.nerd-fonts.jetbrains-mono;
+
};
+
+
sansSerif = {
+
name = "Roboto Flex";
+
package = pkgs.roboto-flex;
+
};
+
+
serif = {
+
name = "Source Serif Pro";
+
package = pkgs.source-serif-pro;
+
};
};
+
+
sizes = {
+
applications = 10;
+
desktop = 10;
+
};
+
+
font-packages.enable = true;
+
fontconfig.enable = true;
+
gnome.enable = lib.mkIf pkgs.stdenv.isLinux true;
+
gtk.enable = lib.mkIf pkgs.stdenv.isLinux true;
};
systemd.user.startServices = true; # Needed for auto-mounting agenix secrets.
···
homeDirectory = "/home/ayla";
packages = with pkgs; [
+
# libraries
+
libsecret
+
wl-clipboard
+
libnotify
wl-clipboard
libnotify
-
# --- Development ---
-
gcc
-
nodejs
-
pnpm
-
typescript
-
ffmpeg-full
-
luajit
-
love
-
-
# --- Applications ---
-
keepassxc
-
libsecret
-
qbittorrent
-
flare-signal
-
kdePackages.kdenlive
-
krita
-
gimp3
-
yt-dlp
-
aseprite
-
inkscape
-
jellyfin-media-player
-
calibre
-
picard
-
freac
-
audacious
-
audacious-plugins
-
lmms
-
nicotine-plus
-
-
# --- Gaming ---
+
# gaming
wine
steam-run
lutris
-
mgba
-
melonDS
-
openttd
-
prismlauncher
-
mindustry
];
};
})
-4
hosts/morgana/default.nix
···
user = "ayla";
};
};
-
themes = {
-
#evergarden.enable = true;
-
fonts.enable = true;
-
};
};
myUsers = {
+2 -1
hosts/nanpi/default.nix
···
user = "ayla";
};
qbittorrent = {
-
inherit (config.mySnippets.tailnet.networkMap.qbittorrent) port;
+
webuiPort = config.mySnippets.tailnet.networkMap.qbittorrent.port;
+
openFirewall = true;
enable = true;
};
};
+1 -1
modules/flake/actions.nix
···
...
}: {
flake.actions-nix = {
-
pre-commit.enable = true; # Set to true if you want pre-commit workflow generation
+
pre-commit.enable = false; # Set to true if you want pre-commit workflow generation
workflows = {
# build-nix.yml
+1 -1
modules/flake/files/default.nix
···
{
imports = [
# ./ci
-
# ./helix.nix
+
./helix.nix
# ./vscode.nix
./zed.nix
];
+48
modules/flake/files/helix.nix
···
+
_: {
+
perSystem = {
+
lib,
+
pkgs,
+
...
+
}: {
+
files.files = [
+
{
+
checkFile = false;
+
path_ = ".helix/languages.toml";
+
+
drv = (pkgs.formats.toml {}).generate "helix-languages.toml" {
+
language = [
+
{
+
name = "nix";
+
auto-format = true;
+
formatter = {command = lib.getExe pkgs.alejandra;};
+
language-servers = ["nixd"];
+
}
+
{
+
name = "bash";
+
auto-format = true;
+
file-types = ["sh" "bash" "dash" "ksh" "mksh"];
+
+
formatter = {
+
command = lib.getExe pkgs.shfmt;
+
args = ["-i" "2"];
+
};
+
+
language-servers = ["bash-language-server"];
+
}
+
];
+
+
language-server = {
+
bash-language-server = {
+
command = "bash-language-server";
+
args = ["start"];
+
};
+
+
nixd = {
+
command = lib.getExe pkgs.nixd;
+
};
+
};
+
};
+
}
+
];
+
};
+
}
-1
modules/home/default.nix
···
./programs
./services
./profiles
-
./themes
./packages.nix
./hidden.nix
inputs.agenix.homeManagerModules.default
+13
modules/home/programs/anki/default.nix
···
+
{
+
lib,
+
config,
+
...
+
}: {
+
options.myHome.programs.anki.enable = lib.mkEnableOption "fastfetch system information";
+
+
config = lib.mkIf config.myHome.programs.anki.enable {
+
programs.anki = {
+
enable = true;
+
};
+
};
+
}
+8 -6
modules/home/programs/default.nix
···
{...}: {
imports = [
-
./zed-editor
-
./firefox
+
./anki
+
./aria2
./chromium
-
./git
-
./obs-studio
./fastfetch
-
./mpv
-
./aria2
+
./firefox
+
./helix
+
./git
./micro
+
./mpv
+
./obs-studio
./ssh
+
./zed-editor
];
}
+6 -6
modules/home/programs/firefox/default.nix
···
// {
"browser.tabs.groups.enabled" = true;
"browser.tabs.groups.smart.enabled" = true;
-
"browser.toolbars.bookmarks.visibility" = "newtab";
"svg.context-properties.content.enabled" = true;
-
"browser.uidensity" = 2;
"general.autoScroll" = true;
"ui.key.menuAccessKeyFocuses" = false;
"browser.search.separatePrivateDefault" = false;
···
"sidebar.expandOnHover" = false;
"sidebar.visibility" = "expand-on-hover";
"browser.toolbars.bookmarks.visibility" = "never";
+
"browser.uidensity" = 1;
};
+
+
userChrome = ''
+
.tab-icon-overlay{ display: none !important; }
+
'';
};
}
// lib.mkIf
···
"sidebar.revamp" = false;
"sidebar.verticalTabs" = false;
"browser.toolbars.bookmarks.visibility" = "newtab";
+
"browser.uidensity" = 0;
};
-
-
userChrome = ''
-
.tab-icon-overlay{ display: none !important; }
-
'';
};
})
];
+51
modules/home/programs/helix/default.nix
···
+
{
+
config,
+
lib,
+
...
+
}: {
+
options.myHome.programs.helix.enable = lib.mkEnableOption "helix";
+
+
config = lib.mkIf config.myHome.programs.helix.enable {
+
programs.helix = {
+
enable = true;
+
+
settings = {
+
editor = {
+
auto-completion = true;
+
auto-format = true;
+
auto-pairs = false;
+
auto-save = true;
+
color-modes = true;
+
cursorline = true;
+
+
cursor-shape = {
+
insert = "bar";
+
normal = "block";
+
select = "underline";
+
};
+
+
indent-guides.render = true;
+
+
lsp = {
+
display-inlay-hints = true;
+
display-messages = true;
+
};
+
+
soft-wrap = {
+
enable = true;
+
wrap-at-text-width = true;
+
};
+
+
statusline.center = ["position-percentage"];
+
text-width = 100;
+
true-color = true;
+
+
whitespace.characters = {
+
newline = "↴";
+
tab = "⇥";
+
};
+
};
+
};
+
};
+
};
+
}
-1
modules/home/programs/micro/default.nix
···
programs.micro = {
enable = true;
settings = {
-
colorscheme = "simple";
mkparents = true;
scrollspeed = 1;
tabsize = 2;
-4
modules/home/programs/mpv/default.nix
···
deband-range = 17;
deband-grain = 12;
-
# OSD and fonts
-
osd-font = "Roboto Flex";
-
# Audio and subtitle languages
alang = "ja,jp,jpn,en,eng";
slang = "en,eng,pt-br,br,pt";
···
sub-fix-timing = false;
sub-auto = "fuzzy";
sub-scale = 0.5;
-
sub-font = "Roboto";
# Screenshot settings
screenshot-format = "png";
+2 -1
modules/home/programs/zed-editor/default.nix
···
auto_indent_on_paste = true;
auto_update = false;
buffer_font_size = 14;
-
buffer_font_family = "JetBrains Mono NL";
+
ui_font_size = 14;
+
buffer_font_family = "JetBrainsMono Nerd Font";
use_on_type_format = true;
wrap_guides = [100];
minimap.show = "auto";
-6
modules/home/themes/default.nix
···
-
{...}: {
-
imports = [
-
./fonts
-
#./evergarden
-
];
-
}
-18
modules/home/themes/evergarden/default.nix
···
-
{
-
lib,
-
inputs,
-
config,
-
...
-
}: {
-
imports = [inputs.evergarden.homeManagerModules.default];
-
-
options.myHome.themes.evergarden.enable = lib.mkEnableOption "enable the evergarden theme";
-
-
config = lib.mkIf config.myHome.themes.evergarden.enable {
-
evergarden = {
-
enable = true;
-
variant = "winter";
-
accent = "pink";
-
};
-
};
-
}
-40
modules/home/themes/fonts/default.nix
···
-
{
-
lib,
-
config,
-
self,
-
...
-
}: let
-
fontSourceDir = self + "/secrets/fonts";
-
-
# Calculate the destination directory relative to home (e.g., ".local/share/fonts").
-
fontTargetDir = lib.removePrefix (config.home.homeDirectory + "/") (config.xdg.dataHome + "/fonts");
-
-
# A helper function to recursively find all file paths in a directory.
-
# This approach avoids Nix's string "tainting" issue.
-
findFilesRecursive = dir: let
-
entries = builtins.readDir dir;
-
processEntry = name: type: let
-
path = dir + "/${name}";
-
in
-
if type == "regular"
-
then [name]
-
else if type == "directory"
-
then map (sub: "${name}/${sub}") (findFilesRecursive path)
-
else [];
-
in
-
lib.flatten (lib.mapAttrsToList processEntry entries);
-
-
# Build the final attribute set for `home.file`.
-
fontFileEntries = lib.listToAttrs (
-
map (relativePath: {
-
name = "${fontTargetDir}/${relativePath}";
-
value.source = fontSourceDir + "/${relativePath}";
-
}) (findFilesRecursive fontSourceDir)
-
);
-
in {
-
options.myHome.themes.fonts.enable = lib.mkEnableOption "custom fonts";
-
-
config = lib.mkIf config.myHome.themes.fonts.enable {
-
home.file = fontFileEntries;
-
};
-
}
-1
modules/nixos/default.nix
···
imports = [
./desktop
./profiles
-
./themes
./programs
./services
];
+35 -1
modules/nixos/desktop/default.nix
···
plymouth.enable = true;
};
-
environment.sessionVariables.NIXOS_OZONE_WL = "1";
+
environment = {
+
sessionVariables.NIXOS_OZONE_WL = "1";
+
+
# stem darkening for prettier fonts
+
variables = {
+
FREETYPE_PROPERTIES = "autofitter:no-stem-darkening=0 autofitter:darkening-parameters=500,0,1000,500,2500,500,4000,0 cff:no-stem-darkening=0 type1:no-stem-darkening=0 t1cid:no-stem-darkening=0";
+
QT_NO_SYNTHESIZED_BOLD = 1;
+
};
+
};
+
+
# other font settings
+
fonts = {
+
fontconfig = {
+
enable = true;
+
includeUserConf = false;
+
useEmbeddedBitmaps = true;
+
subpixel = {
+
lcdfilter = "none";
+
rgba = "none";
+
};
+
antialias = true;
+
hinting = {
+
enable = true;
+
style = "slight";
+
autohint = false;
+
};
+
};
+
+
packages = with pkgs; [
+
noto-fonts
+
noto-fonts-cjk-sans
+
noto-fonts-emoji
+
noto-fonts-color-emoji
+
];
+
};
home-manager.sharedModules = [
{
+2
modules/nixos/desktop/gnome/default.nix
···
decibels
];
+
i18n.inputMethod.type = "ibus";
+
security.pam.services.greetd.enableGnomeKeyring = true;
services.gnome.gcr-ssh-agent.enable = true;
+38 -14
modules/nixos/services/qbittorrent/default.nix
···
config,
lib,
pkgs,
+
utils,
...
}: let
cfg = config.myNixOS.services.qbittorrent;
-
UID = 888;
-
GID = 888;
in {
options.myNixOS.services.qbittorrent = {
enable = lib.mkEnableOption "qBittorrent headless";
···
description = "Group under which qBittorrent runs.";
};
-
port = lib.mkOption {
+
webuiPort = lib.mkOption {
type = lib.types.port;
default = 8080;
description = "qBittorrent web UI port.";
};
+
torrentingPort = lib.mkOption {
+
type = lib.types.port;
+
default = 16620;
+
description = "qBittorrent torrenting port.";
+
};
+
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
···
defaultText = lib.literalExpression "pkgs.qbittorrent-nox";
description = "The qbittorrent package to use.";
};
+
+
extraArgs = lib.mkOption {
+
type = lib.types.listOf lib.types.str;
+
default = [];
+
description = ''
+
Extra arguments passed to qbittorrent. See `qbittorrent -h`, or the [source code](https://github.com/qbittorrent/qBittorrent/blob/master/src/app/cmdoptions.cpp), for the available arguments.
+
'';
+
example = [
+
"--confirm-legal-notice"
+
];
+
};
};
config = lib.mkIf cfg.enable {
-
networking.firewall =
-
lib.mkIf cfg.openFirewall {allowedTCPPorts = [cfg.port];};
+
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall (
+
lib.optionals (cfg.webuiPort != null) [cfg.webuiPort]
+
++ lib.optionals (cfg.torrentingPort != null) [cfg.torrentingPort]
+
);
systemd.services.qbittorrent = {
after = ["local-fs.target" "network-online.target"];
···
'';
in "!${preStartScript}";
-
ExecStart = "${cfg.package}/bin/qbittorrent-nox";
+
ExecStart = utils.escapeSystemdExecArgs (
+
[
+
(lib.getExe cfg.package)
+
]
+
++ lib.optionals (cfg.torrentingPort != null) ["--torrenting-port=${toString cfg.torrentingPort}"]
+
++ cfg.extraArgs
+
);
# To prevent "Quit & shutdown daemon" from working; we want systemd to
# manage it!
#Restart = "on-success";
···
environment = {
QBT_PROFILE = cfg.dataDir;
-
QBT_WEBUI_PORT = toString cfg.port;
+
QBT_WEBUI_PORT = toString cfg.webuiPort;
};
};
-
users.users = lib.mkIf (cfg.user == "qbittorrent") {
-
qbittorrent = {
-
inherit (cfg) group;
-
uid = UID;
+
users = {
+
users = lib.mkIf (cfg.user == "qbittorrent") {
+
qbittorrent = {
+
inherit (cfg) group;
+
isSystemUser = true;
+
};
};
+
groups = lib.mkIf (cfg.group == "qbittorrent") {qbittorrent = {};};
};
-
-
users.groups =
-
lib.mkIf (cfg.group == "qbittorrent") {qbittorrent = {gid = GID;};};
};
}
-6
modules/nixos/themes/default.nix
···
-
{...}: {
-
imports = [
-
./fonts
-
# ./evergarden
-
];
-
}
-18
modules/nixos/themes/evergarden/default.nix
···
-
{
-
lib,
-
inputs,
-
config,
-
...
-
}: {
-
imports = [inputs.evergarden.nixosModules.evergarden];
-
-
options.myNixOS.themes.evergarden.enable = lib.mkEnableOption "enable the evergarden theme";
-
-
config = lib.mkIf config.myNixOS.themes.evergarden.enable {
-
evergarden = {
-
enable = true;
-
variant = "winter";
-
accent = "pink";
-
};
-
};
-
}
-112
modules/nixos/themes/fonts/default.nix
···
-
{
-
pkgs,
-
lib,
-
config,
-
...
-
}: let
-
emojiFont = "Noto Color Emoji";
-
in {
-
options.myNixOS.themes.fonts = {
-
enable = lib.mkEnableOption "enable fonts";
-
};
-
-
config = lib.mkIf config.myNixOS.themes.fonts.enable {
-
environment.variables = {
-
FREETYPE_PROPERTIES = "autofitter:no-stem-darkening=0 autofitter:darkening-parameters=500,0,1000,500,2500,500,4000,0 cff:no-stem-darkening=0 type1:no-stem-darkening=0 t1cid:no-stem-darkening=0";
-
QT_NO_SYNTHESIZED_BOLD = 1;
-
};
-
fonts.packages = with pkgs; [
-
noto-fonts
-
noto-fonts-cjk-sans
-
noto-fonts-emoji
-
noto-fonts-color-emoji
-
roboto-flex
-
roboto
-
nerd-fonts.jetbrains-mono
-
jetbrains-mono
-
source-code-pro
-
liberation_ttf
-
];
-
-
fonts.fontconfig = {
-
enable = true;
-
includeUserConf = false;
-
defaultFonts = {
-
serif = [
-
"Noto Serif"
-
"NotoSerifCJK"
-
"Noto Serif CJK JP"
-
];
-
sansSerif = [
-
"Roboto Flex"
-
"Roboto"
-
"Noto Sans"
-
"NotoSansCJK"
-
"Noto Sans CJK JP"
-
];
-
monospace = [
-
"JetBrains Mono NL"
-
"Source Code Pro"
-
"Noto Sans CJK JP"
-
];
-
};
-
useEmbeddedBitmaps = true;
-
subpixel = {
-
lcdfilter = "none";
-
rgba = "none";
-
};
-
antialias = true;
-
hinting = {
-
enable = true;
-
style = "slight";
-
autohint = false;
-
};
-
localConf = ''
-
<?xml version="1.0"?>
-
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-
<fontconfig>
-
<match target="pattern">
-
<test qual="any" name="family"><string>emoji</string></test>
-
<edit name="family" mode="assign" binding="same"><string>${emojiFont}</string></edit>
-
</match>
-
<match target="pattern">
-
<test name="family"><string>sans</string></test>
-
<edit name="family" mode="append"><string>${emojiFont}</string></edit>
-
</match>
-
<match target="pattern">
-
<test name="family"><string>serif</string></test>
-
<edit name="family" mode="append"><string>${emojiFont}</string></edit>
-
</match>
-
<match target="pattern">
-
<test name="family"><string>sans-serif</string></test>
-
<edit name="family" mode="append"><string>${emojiFont}</string></edit>
-
</match>
-
<match target="pattern">
-
<test name="family"><string>monospace</string></test>
-
<edit name="family" mode="append"><string>${emojiFont}</string></edit>
-
</match>
-
<match target="pattern">
-
<test name="family"><string>system-ui</string></test>
-
<edit name="family" mode="append"><string>${emojiFont}</string></edit>
-
</match>
-
-
<match target="font">
-
<test name="family"><string>Calibri</string></test>
-
<edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
-
</match>
-
<match target="font">
-
<test name="family"><string>Cambria</string></test>
-
<edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
-
</match>
-
-
<selectfont>
-
<rejectfont>
-
<pattern><patelt name="family"><string>Droid Sans Fallback</string></patelt></pattern>
-
<pattern><patelt name="family"><string>Droid Sans Japanese</string></patelt></pattern>
-
</rejectfont>
-
</selectfont>
-
</fontconfig>
-
'';
-
};
-
};
-
}