26 Commits

Author SHA1 Message Date
qdev 9548706b33 think nest will be best to orcastrate thigns 2026-04-17 20:46:24 -04:00
qdev 03f8916da4 eh 2026-04-17 20:22:54 -04:00
qdev 4326ba9d54 soupclown core 2026-04-17 17:50:16 -04:00
qdev e31a5335ee renpypg1 2026-04-13 13:45:12 -04:00
qdev c4a7aec364 add packages, renpy, jellyfin-desktop, rm script 2026-04-13 13:18:51 -04:00
qdev cb984df47c moving media local :( 2026-04-12 19:04:01 -04:00
qdev d013ac354d remove transfers config 2026-04-11 16:45:51 -04:00
qdev 584b303142 update torrent upload script 2026-04-11 14:51:48 -04:00
qdev 32338c14ec upload downloadin file mapping 2026-04-11 14:51:37 -04:00
qdev a13cfe0b31 fix invalid config for mount and add screen package for quin 2026-04-11 11:44:41 -04:00
qdev 614a90c4c4 add move for sonarr folder too 2026-04-11 11:41:37 -04:00
qdev 7e04f6a936 update filesystem mount(?) 2026-04-11 11:35:08 -04:00
qdev a801685f55 add upload script for complete torrents 2026-04-11 11:03:12 -04:00
qdev 0735605395 re up navidrome 2026-04-07 19:00:56 -04:00
qdev ec27991b23 take seerr outta vpn and add nomadnet to nix 2026-04-07 18:59:44 -04:00
qdev 5fc2d21405 got rnsd and nomadnet working on dietpi with ansible, now can ez build :3 2026-04-07 00:24:59 -04:00
qdev 9d08cd4b85 some work on configuring rns on dietpi 2026-04-06 23:13:19 -04:00
qdev f3d39b04d2 meh 2026-04-05 22:01:33 -04:00
qdev 1e9b31f67d Merge branch 'tryingFlakeParts' 2026-04-05 22:00:43 -04:00
qdev 877677d79f import tree is cool 2026-04-05 22:00:18 -04:00
qdev 5d63a6463d fix import thing 2026-04-05 20:58:38 -04:00
qdev 7e4255bf76 remove unneeded thing, it already does that! 2026-04-05 19:33:34 -04:00
qdev d29e73e6aa so far nothing work :( 2026-04-05 19:31:46 -04:00
qdev 56e2a38f82 organize 2026-04-05 16:13:37 -04:00
qdev 87a14e9db1 add codium 2026-04-04 15:21:14 -04:00
qdev 3568382402 add disk to server 2026-04-04 12:55:47 -04:00
147 changed files with 14695 additions and 725 deletions
+7
View File
@@ -0,0 +1,7 @@
{
"recommendations": [
"paisleysoftworks.renpywarp",
"luquedaniel.languague-renpy",
"jnoortheen.nix-ide"
]
}
+5
View File
@@ -0,0 +1,5 @@
[soupclown1]
root@187.77.193.76
[pt1]
dietpi@192.168.68.54
+27
View File
@@ -0,0 +1,27 @@
---
- hosts: pt1
become: yes
roles:
- dietpi
vars:
radios:
B407:
name: B407
serialpath: /dev/serial/by-id/usb-1a86_USB_Single_Serial_54FC052298-if00
5678:
name: 5678
serialpath: /dev/serial/by-id/usb-1a86_USB_Single_Serial_54F7017826-if00
D77E:
name: D77E
serialpath: /dev/serial/by-id/usb-1a86_USB_Single_Serial_54F7017033-if00
XXXX:
enabled: "no"
name: XXXX
serialpath: /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
# C123:
# name: C123
# serialpath: /dev/ttyACM1
# frequency: 915000000
# bandwidth: 125000
# txpower: 14
+8
View File
@@ -0,0 +1,8 @@
- name: Install pyenv
import_tasks: pyenv.yaml
- name: Install Reticulum Network Stack (RNS)
import_tasks: rns.yaml
- name: Install nomadnet (lxmf message daemon)
import_tasks: nomadnet.yaml
+28
View File
@@ -0,0 +1,28 @@
---
- name: Create systemd service for nomadnet
copy:
dest: /etc/systemd/system/nomadnet.service
content: |
[Unit]
Description=Nomadnet Daemon
After=multi-user.target
[Service]
Type=simple
Restart=always
RestartSec=3
User=root
ExecStart=nomadnet -d
[Install]
WantedBy=multi-user.target
- name: Reload systemd
systemd:
daemon_reload: yes
- name: Start nomadnet service after config update
systemd:
name: nomadnet.service
enabled: yes
state: started
+59
View File
@@ -0,0 +1,59 @@
- name: Install build environment
become: true
apt:
update_cache: true
cache_valid_time: 3600
pkg:
- git
- build-essential
- libssl-dev
- zlib1g-dev
- libbz2-dev
- libreadline-dev
- libsqlite3-dev
- curl
- libncursesw5-dev
- xz-utils
- tk-dev
- libxml2-dev
- libxmlsec1-dev
- libffi-dev
- liblzma-dev
- python3-pip
- python3-venv
- name: Check if pyenv is installed
stat:
path: /root/.pyenv
register: pyenv_installed
- name: Download pyenv install script
get_url:
url: https://pyenv.run
dest: /tmp/install_pyenv.sh
mode: 0755
when: not pyenv_installed.stat.exists
- name: Run install script
shell: /tmp/install_pyenv.sh
when: not pyenv_installed.stat.exists
- name: Add pyenv to .bashrc
blockinfile:
dest: "/home/dietpi/.bashrc"
block: |
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
marker: '# {mark} ANSIBLE MANAGED BLOCK - pyenv'
create: yes
- name: Add pyenv to .profile
blockinfile:
dest: "/home/dietpi/.profile"
block: |
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
marker: '# {mark} ANSIBLE MANAGED BLOCK - pyenv'
create: yes
+93
View File
@@ -0,0 +1,93 @@
---
- name: Install the rns package
ansible.builtin.pip:
name: rns
state: present
break_system_packages: yes
- name: Install the lxmf package
ansible.builtin.pip:
name: lxmf
state: present
break_system_packages: yes
- name: Install the nomadnet package
ansible.builtin.pip:
name: nomadnet
state: present
break_system_packages: yes
- name: Create systemd service for rns
copy:
dest: /etc/systemd/system/rns.service
content: |
[Unit]
Description=Reticulum Network Stack Daemon
After=multi-user.target
[Service]
Type=simple
Restart=always
RestartSec=3
User=root
ExecStart=rnsd --service
[Install]
WantedBy=multi-user.target
- name: Reload systemd
systemd:
daemon_reload: yes
- name: Ensure rns service is configured
systemd:
name: rns.service
enabled: yes
state: stopped
- name: Ensure Reticulum config directory exists
file:
path: /root/.reticulum
state: directory
mode: "0755"
- name: Deploy rns configuration file (using block for friendly file updates)
copy:
dest: /root/.reticulum/config
content: |
[reticulum]
enable_transport = Yes
share_instance = Yes
instance_name = {{ansible_hostname}}
discover_interfaces = Yes
panic_on_interface_error = No
respond_to_probes = Yes
[logging]
loglevel = 6
[interfaces]
[[Default Interface]]
type = AutoInterface
enabled = Yes
{% for key, radio in radios.items() %}
[[RNode LoRa {{radio.name}}]]
type = RNodeInterface
enabled = {{ radio.enabled | default('yes') }}
port = {{ radio.serialpath | default('/dev/ttyACM0') }}
frequency = {{ radio.frequency | default(915000000) }}
bandwidth = {{ radio.bandwidth | default(125000) }}
txpower = {{ radio.txpower | default(7) }}
spreadingfactor = {{ radio.spreadingfactor | default(8) }}
codingrate = {{ radio.codingrate | default(5) }}
id_callsign = {{ radio.name | default(key) }}
id_interval = {{ radio.id_interval | default(600) }}
{% endfor %}
- name: Start rns service after config update
systemd:
name: rns.service
enabled: yes
state: started
+56
View File
@@ -0,0 +1,56 @@
# compiled output
/dist
/node_modules
/build
# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# OS
.DS_Store
# Tests
/coverage
/.nyc_output
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# temp directory
.temp
.tmp
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+4
View File
@@ -0,0 +1,4 @@
{
"singleQuote": true,
"trailingComma": "all"
}
+35
View File
@@ -0,0 +1,35 @@
// @ts-check
import eslint from '@eslint/js';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import globals from 'globals';
import tseslint from 'typescript-eslint';
export default tseslint.config(
{
ignores: ['eslint.config.mjs'],
},
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
eslintPluginPrettierRecommended,
{
languageOptions: {
globals: {
...globals.node,
...globals.jest,
},
sourceType: 'commonjs',
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-floating-promises': 'warn',
'@typescript-eslint/no-unsafe-argument': 'warn',
"prettier/prettier": ["error", { endOfLine: "auto" }],
},
},
);
+8
View File
@@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true
}
}
+10168
View File
File diff suppressed because it is too large Load Diff
+73
View File
@@ -0,0 +1,73 @@
{
"name": "core",
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@nestjs/common": "^11.0.1",
"@nestjs/core": "^11.0.1",
"@nestjs/platform-express": "^11.0.1",
"@nestjs/platform-socket.io": "^11.1.19",
"@nestjs/websockets": "^11.1.19",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.1"
},
"devDependencies": {
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "^9.18.0",
"@nestjs/cli": "^11.0.0",
"@nestjs/schematics": "^11.0.0",
"@nestjs/testing": "^11.0.1",
"@types/express": "^5.0.0",
"@types/jest": "^30.0.0",
"@types/node": "^24.0.0",
"@types/supertest": "^7.0.0",
"eslint": "^9.18.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-prettier": "^5.2.2",
"globals": "^17.0.0",
"jest": "^30.0.0",
"prettier": "^3.4.2",
"source-map-support": "^0.5.21",
"supertest": "^7.0.0",
"ts-jest": "^29.2.5",
"ts-loader": "^9.5.2",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.7.3",
"typescript-eslint": "^8.20.0"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
+10
View File
@@ -0,0 +1,10 @@
import { Module } from '@nestjs/common';
import { AppService } from './app.service';
import { BackupModule } from './backup/backup.module';
@Module({
imports: [BackupModule],
controllers: [],
providers: [AppService],
})
export class AppModule {}
+8
View File
@@ -0,0 +1,8 @@
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}
+30
View File
@@ -0,0 +1,30 @@
import {
MessageBody,
SubscribeMessage,
WebSocketGateway,
WebSocketServer,
WsResponse,
} from '@nestjs/websockets';
import { from, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { Server } from 'socket.io';
@WebSocketGateway({
cors: {
origin: '*',
},
})
export class BackupGateway {
@WebSocketServer()
server: Server;
@SubscribeMessage('events')
findAll(@MessageBody() data: any): Observable<WsResponse<number>> {
return from([1, 2, 3]).pipe(map(item => ({ event: 'events', data: item })));
}
@SubscribeMessage('identity')
async identity(@MessageBody() data: number): Promise<number> {
return data;
}
}
+9
View File
@@ -0,0 +1,9 @@
import { Module } from '@nestjs/common';
import { BackupGateway } from './backup.gateway';
@Module({
imports: [],
controllers: [],
providers: [BackupGateway],
})
export class BackupModule {}
+8
View File
@@ -0,0 +1,8 @@
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(process.env.PORT ?? 3000);
}
bootstrap();
+4
View File
@@ -0,0 +1,4 @@
{
"extends": "./tsconfig.json",
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
}
+25
View File
@@ -0,0 +1,25 @@
{
"compilerOptions": {
"module": "nodenext",
"moduleResolution": "nodenext",
"resolvePackageJsonExports": true,
"esModuleInterop": true,
"isolatedModules": true,
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "ES2023",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"skipLibCheck": true,
"strictNullChecks": true,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": false,
"strictBindCallApply": false,
"noFallthroughCasesInSwitch": false
}
}
@@ -3,7 +3,7 @@
SERVICE_NAMES=(
# "paperless"
# "immich"
# "navidrome"
"navidrome"
"downloadin"
# "matrix"
)
@@ -3,7 +3,7 @@
SERVICE_NAMES=(
# "paperless"
# "immich"
# "navidrome"
"navidrome"
"downloadin"
# "matrix"
)
@@ -3,7 +3,7 @@
SERVICE_NAMES=(
# "paperless"
# "immich"
# "navidrome"
"navidrome"
"downloadin"
# "matrix"
)
@@ -24,7 +24,7 @@ services:
- 3333:3333 # bitmagnet API and WebUI port
- 3334:3334/tcp # bitmagnet BitTorrent ports
- 3334:3334/udp # bitmagnet BitTorrent ports
- 5055:5055 # seerr
# - 5055:5055 # seerr
# - 8112:8112 # Deluge
# - 6881:6881 # Deluge
# - 6881:6881/udp # Deluge
@@ -42,7 +42,6 @@ services:
volumes:
- ${DOWNLOAD_ETC_PATH}/transmission:/config
- ${DOWNLOAD_IN_PROGRESS_PATH}:/downloads
- /mnt/mega/jellyfinMedia:/media
restart: unless-stopped
prowlarr:
@@ -72,8 +71,8 @@ services:
- TZ=${TZ}
volumes:
- ${DOWNLOAD_ETC_PATH}/radarr:/config
- ${DOWNLOAD_IN_PROGRESS_PATH}:/downloads #optional
- /mnt/mega/jellyfinMedia:/media
- /mnt/tmpMedia/app_data/transmission/downloads/incomplete:/downloads/incomplete #optional
- /mnt/tmpMedia/app_data/jellyfin/media:/soupclown/localmedia
depends_on:
vpn:
condition: service_started
@@ -95,8 +94,8 @@ services:
- TZ=${TZ}
volumes:
- ${DOWNLOAD_ETC_PATH}/sonarr:/config
- ${DOWNLOAD_IN_PROGRESS_PATH}:/downloads #optional
- /mnt/mega/jellyfinMedia:/media
- /mnt/tmpMedia/app_data/jellyfin/media:/soupclown/localmedia
- /mnt/tmpMedia/app_data/transmission/downloads/incomplete:/downloads/incomplete #optional
depends_on:
vpn:
condition: service_started
@@ -152,8 +151,9 @@ services:
image: ghcr.io/seerr-team/seerr:latest
init: true
container_name: seerr
network_mode: "service:vpn"
restart: unless-stopped
ports:
- 5055:5055
environment:
- TZ=${TZ}
- LOG_LEVEL=debug
Generated
+50
View File
@@ -1,5 +1,23 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -21,6 +39,21 @@
"type": "github"
}
},
"import-tree": {
"locked": {
"lastModified": 1773693634,
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
"owner": "vic",
"repo": "import-tree",
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1773533765,
@@ -53,9 +86,26 @@
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"home-manager": "home-manager",
"import-tree": "import-tree",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs"
}
+27 -25
View File
@@ -4,6 +4,8 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
flake-parts.url = "github:hercules-ci/flake-parts";
import-tree.url = "github:vic/import-tree";
home-manager = {
url = "github:nix-community/home-manager/release-23.05";
@@ -11,31 +13,31 @@
};
};
outputs = { self, nixpkgs, home-manager, nixos-hardware, ... }@inputs: {
nixosConfigurations.qmoran-laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./nix/qlhc.nix
./nix/common.nix
./nix/user-quin.nix
./nix/gui1.nix
./nix/mega.nix
nixos-hardware.nixosModules.framework-11th-gen-intel
outputs = inputs@{ flake-parts, nixos-hardware, import-tree, nixpkgs, ... }:
flake-parts.lib.mkFlake { inherit inputs; } (top@{ config, withSystem, moduleWithSystem, ... }: {
flake = {
nixosConfigurations.qmoran-laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
(import-tree ./modules)
nixos-hardware.nixosModules.framework-11th-gen-intel
./nix/qlhc.nix
];
};
nixosConfigurations.qmoran-desktop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
(import-tree ./modules)
./nix/qdhc.nix
./nix/jf-server.nix
];
};
};
systems = [
"x86_64-linux"
];
};
nixosConfigurations.qmoran-desktop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./nix/qdhc.nix
./nix/common.nix
./nix/user-quin.nix
./nix/gui1.nix
./nix/mega.nix
./nix/jf-server.nix
];
};
};
});
}
+5
View File
@@ -18,6 +18,10 @@
"flakes"
];
nixpkgs.config.permittedInsecurePackages = [
"python3.12-ecdsa-0.19.1" # I'm sure this is fine (just don't use python for anything important like usual)
];
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
@@ -33,5 +37,6 @@
environment.systemPackages = with pkgs; [
git
tailscale
rclone
];
}
View File
View File
@@ -28,6 +28,13 @@
gimp
kicad-small
rpi-imager
vscodium-fhs
ansible_2_18
usbutils
python313Packages.nomadnet
screen
jellyfin-desktop
renpy
];
};
-13
View File
@@ -1,13 +0,0 @@
# It's NixOS!
Hello MtV and welcome to my crib. These are all the things pertaining to my nixos stuff.
- [./common.nix](./common.nix) is all the common things that hosts will have configured
- Services
- locale settings
- timezone
- [./gui1](./gui1.nix) all config things for a linux UX experience, KDE Plasma in this instance, but perhaps there could be a gui2 someday...
- [./qlhc.nix](./qlhc.nix) this stands for quins-laptop-hardware-configuraion. I'll find a better way to do this stuff later.
- [./user-quin](./user-quin.nix) my personal user account, here for all to see.
- packages
- groups
+7
View File
@@ -30,6 +30,13 @@
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/mnt/tmpMedia" =
{
device = "/dev/disk/by-uuid/fa20e116-e04e-4f3e-bf5a-c2e2c1fad610";
fsType = "ext4";
options = ["noatime" "nodiratime" "noauto"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/cf4cff49-15d7-4145-86c2-8be30e71fe4c"; }
];
+6
View File
@@ -0,0 +1,6 @@
#renpy assets for localdev
cache/
saves/
log.txt
traceback.txt
+26
View File
@@ -0,0 +1,26 @@
# Directories that Ren'Py changes files in.
/game/saves
/game/cache
# Compiled script files. These are important for saving, and so should
# be preserved by developer and build systems after the game has been released.
/game/**/*.rpyc
/game/**/*.rpymc
# Files Ren'Py can generate.
/game/**/*.bak
/game/**/*.new
/game/**/*.old
# Error, log, and output files.
/errors.txt
/files.txt
/image_cache.txt
/log.txt
/save_dump.txt
/traceback.txt
# Launcher-generated files.
/dialogue.tab
/dialogue.txt
/strings.json
+480
View File
@@ -0,0 +1,480 @@
################################################################################
## Initialization
################################################################################
## The init offset statement causes the initialization statements in this file
## to run before init statements in any other file.
init offset = -2
## Calling gui.init resets the styles to sensible default values, and sets the
## width and height of the game.
init python:
gui.init(1920, 1080)
## Enable checks for invalid or unstable properties in screens or transforms
define config.check_conflicting_properties = True
################################################################################
## GUI Configuration Variables
################################################################################
## Colors ######################################################################
##
## The colors of text in the interface.
## An accent color used throughout the interface to label and highlight text.
define gui.accent_color = '#cc6600'
## The color used for a text button when it is neither selected nor hovered.
define gui.idle_color = '#888888'
## The small color is used for small text, which needs to be brighter/darker to
## achieve the same effect.
define gui.idle_small_color = '#aaaaaa'
## The color that is used for buttons and bars that are hovered.
define gui.hover_color = '#e0a366'
## The color used for a text button when it is selected but not focused. A
## button is selected if it is the current screen or preference value.
define gui.selected_color = '#ffffff'
## The color used for a text button when it cannot be selected.
define gui.insensitive_color = '#8888887f'
## Colors used for the portions of bars that are not filled in. These are not
## used directly, but are used when re-generating bar image files.
define gui.muted_color = '#512800'
define gui.hover_muted_color = '#7a3d00'
## The colors used for dialogue and menu choice text.
define gui.text_color = '#ffffff'
define gui.interface_text_color = '#ffffff'
## Fonts and Font Sizes ########################################################
## The font used for in-game text.
define gui.text_font = "DejaVuSans.ttf"
## The font used for character names.
define gui.name_text_font = "DejaVuSans.ttf"
## The font used for out-of-game text.
define gui.interface_text_font = "DejaVuSans.ttf"
## The size of normal dialogue text.
define gui.text_size = 33
## The size of character names.
define gui.name_text_size = 45
## The size of text in the game's user interface.
define gui.interface_text_size = 33
## The size of labels in the game's user interface.
define gui.label_text_size = 36
## The size of text on the notify screen.
define gui.notify_text_size = 24
## The size of the game's title.
define gui.title_text_size = 75
## Main and Game Menus #########################################################
## The images used for the main and game menus.
define gui.main_menu_background = "gui/main_menu.png"
define gui.game_menu_background = "gui/game_menu.png"
## Dialogue ####################################################################
##
## These variables control how dialogue is displayed on the screen one line at
## a time.
## The height of the textbox containing dialogue.
define gui.textbox_height = 278
## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5
## is center, and 1.0 is the bottom.
define gui.textbox_yalign = 1.0
## The placement of the speaking character's name, relative to the textbox.
## These can be a whole number of pixels from the left or top, or 0.5 to center.
define gui.name_xpos = 360
define gui.name_ypos = 0
## The horizontal alignment of the character's name. This can be 0.0 for left-
## aligned, 0.5 for centered, and 1.0 for right-aligned.
define gui.name_xalign = 0.0
## The width, height, and borders of the box containing the character's name,
## or None to automatically size it.
define gui.namebox_width = None
define gui.namebox_height = None
## The borders of the box containing the character's name, in left, top, right,
## bottom order.
define gui.namebox_borders = Borders(5, 5, 5, 5)
## If True, the background of the namebox will be tiled, if False, the
## background of the namebox will be scaled.
define gui.namebox_tile = False
## The placement of dialogue relative to the textbox. These can be a whole
## number of pixels relative to the left or top side of the textbox, or 0.5 to
## center.
define gui.dialogue_xpos = 402
define gui.dialogue_ypos = 75
## The maximum width of dialogue text, in pixels.
define gui.dialogue_width = 1116
## The horizontal alignment of the dialogue text. This can be 0.0 for left-
## aligned, 0.5 for centered, and 1.0 for right-aligned.
define gui.dialogue_text_xalign = 0.0
## Buttons #####################################################################
##
## These variables, along with the image files in gui/button, control aspects
## of how buttons are displayed.
## The width and height of a button, in pixels. If None, Ren'Py computes a size.
define gui.button_width = None
define gui.button_height = None
## The borders on each side of the button, in left, top, right, bottom order.
define gui.button_borders = Borders(6, 6, 6, 6)
## If True, the background image will be tiled. If False, the background image
## will be linearly scaled.
define gui.button_tile = False
## The font used by the button.
define gui.button_text_font = gui.interface_text_font
## The size of the text used by the button.
define gui.button_text_size = gui.interface_text_size
## The color of button text in various states.
define gui.button_text_idle_color = gui.idle_color
define gui.button_text_hover_color = gui.hover_color
define gui.button_text_selected_color = gui.selected_color
define gui.button_text_insensitive_color = gui.insensitive_color
## The horizontal alignment of the button text. (0.0 is left, 0.5 is center,
## 1.0 is right).
define gui.button_text_xalign = 0.0
## These variables override settings for different kinds of buttons. Please see
## the gui documentation for the kinds of buttons available, and what each is
## used for.
##
## These customizations are used by the default interface:
define gui.radio_button_borders = Borders(27, 6, 6, 6)
define gui.check_button_borders = Borders(27, 6, 6, 6)
define gui.confirm_button_text_xalign = 0.5
define gui.page_button_borders = Borders(15, 6, 15, 6)
define gui.quick_button_borders = Borders(15, 6, 15, 0)
define gui.quick_button_text_size = 21
define gui.quick_button_text_idle_color = gui.idle_small_color
define gui.quick_button_text_selected_color = gui.accent_color
## You can also add your own customizations, by adding properly-named
## variables. For example, you can uncomment the following line to set the width
## of a navigation button.
# define gui.navigation_button_width = 250
## Choice Buttons ##############################################################
##
## Choice buttons are used in the in-game menus.
define gui.choice_button_width = 1185
define gui.choice_button_height = None
define gui.choice_button_tile = False
define gui.choice_button_borders = Borders(150, 8, 150, 8)
define gui.choice_button_text_font = gui.text_font
define gui.choice_button_text_size = gui.text_size
define gui.choice_button_text_xalign = 0.5
define gui.choice_button_text_idle_color = '#888888'
define gui.choice_button_text_hover_color = "#ffffff"
define gui.choice_button_text_insensitive_color = '#8888887f'
## File Slot Buttons ###########################################################
##
## A file slot button is a special kind of button. It contains a thumbnail
## image, and text describing the contents of the save slot. A save slot uses
## image files in gui/button, like the other kinds of buttons.
## The save slot button.
define gui.slot_button_width = 414
define gui.slot_button_height = 309
define gui.slot_button_borders = Borders(15, 15, 15, 15)
define gui.slot_button_text_size = 21
define gui.slot_button_text_xalign = 0.5
define gui.slot_button_text_idle_color = gui.idle_small_color
define gui.slot_button_text_selected_idle_color = gui.selected_color
define gui.slot_button_text_selected_hover_color = gui.hover_color
## The width and height of thumbnails used by the save slots.
define config.thumbnail_width = 384
define config.thumbnail_height = 216
## The number of columns and rows in the grid of save slots.
define gui.file_slot_cols = 3
define gui.file_slot_rows = 2
## Positioning and Spacing #####################################################
##
## These variables control the positioning and spacing of various user
## interface elements.
## The position of the left side of the navigation buttons, relative to the
## left side of the screen.
define gui.navigation_xpos = 60
## The vertical position of the skip indicator.
define gui.skip_ypos = 15
## The vertical position of the notify screen.
define gui.notify_ypos = 68
## The spacing between menu choices.
define gui.choice_spacing = 33
## Buttons in the navigation section of the main and game menus.
define gui.navigation_spacing = 6
## Controls the amount of spacing between preferences.
define gui.pref_spacing = 15
## Controls the amount of spacing between preference buttons.
define gui.pref_button_spacing = 0
## The spacing between file page buttons.
define gui.page_spacing = 0
## The spacing between file slots.
define gui.slot_spacing = 15
## The position of the main menu text.
define gui.main_menu_text_xalign = 1.0
## Frames ######################################################################
##
## These variables control the look of frames that can contain user interface
## components when an overlay or window is not present.
## Generic frames.
define gui.frame_borders = Borders(6, 6, 6, 6)
## The frame that is used as part of the confirm screen.
define gui.confirm_frame_borders = Borders(60, 60, 60, 60)
## The frame that is used as part of the skip screen.
define gui.skip_frame_borders = Borders(24, 8, 75, 8)
## The frame that is used as part of the notify screen.
define gui.notify_frame_borders = Borders(24, 8, 60, 8)
## Should frame backgrounds be tiled?
define gui.frame_tile = False
## Bars, Scrollbars, and Sliders ###############################################
##
## These control the look and size of bars, scrollbars, and sliders.
##
## The default GUI only uses sliders and vertical scrollbars. All of the other
## bars are only used in creator-written screens.
## The height of horizontal bars, scrollbars, and sliders. The width of
## vertical bars, scrollbars, and sliders.
define gui.bar_size = 38
define gui.scrollbar_size = 18
define gui.slider_size = 38
## True if bar images should be tiled. False if they should be linearly scaled.
define gui.bar_tile = False
define gui.scrollbar_tile = False
define gui.slider_tile = False
## Horizontal borders.
define gui.bar_borders = Borders(6, 6, 6, 6)
define gui.scrollbar_borders = Borders(6, 6, 6, 6)
define gui.slider_borders = Borders(6, 6, 6, 6)
## Vertical borders.
define gui.vbar_borders = Borders(6, 6, 6, 6)
define gui.vscrollbar_borders = Borders(6, 6, 6, 6)
define gui.vslider_borders = Borders(6, 6, 6, 6)
## What to do with unscrollable scrollbars in the game menu. "hide" hides them,
## while None shows them.
define gui.unscrollable = "hide"
## History #####################################################################
##
## The history screen displays dialogue that the player has already dismissed.
## The number of blocks of dialogue history Ren'Py will keep.
define config.history_length = 250
## The height of a history screen entry, or None to make the height variable at
## the cost of performance.
define gui.history_height = 210
## Additional space to add between history screen entries.
define gui.history_spacing = 0
## The position, width, and alignment of the label giving the name of the
## speaking character.
define gui.history_name_xpos = 233
define gui.history_name_ypos = 0
define gui.history_name_width = 233
define gui.history_name_xalign = 1.0
## The position, width, and alignment of the dialogue text.
define gui.history_text_xpos = 255
define gui.history_text_ypos = 3
define gui.history_text_width = 1110
define gui.history_text_xalign = 0.0
## NVL-Mode ####################################################################
##
## The NVL-mode screen displays the dialogue spoken by NVL-mode characters.
## The borders of the background of the NVL-mode background window.
define gui.nvl_borders = Borders(0, 15, 0, 30)
## The maximum number of NVL-mode entries Ren'Py will display. When more
## entries than this are to be show, the oldest entry will be removed.
define gui.nvl_list_length = 6
## The height of an NVL-mode entry. Set this to None to have the entries
## dynamically adjust height.
define gui.nvl_height = 173
## The spacing between NVL-mode entries when gui.nvl_height is None, and
## between NVL-mode entries and an NVL-mode menu.
define gui.nvl_spacing = 15
## The position, width, and alignment of the label giving the name of the
## speaking character.
define gui.nvl_name_xpos = 645
define gui.nvl_name_ypos = 0
define gui.nvl_name_width = 225
define gui.nvl_name_xalign = 1.0
## The position, width, and alignment of the dialogue text.
define gui.nvl_text_xpos = 675
define gui.nvl_text_ypos = 12
define gui.nvl_text_width = 885
define gui.nvl_text_xalign = 0.0
## The position, width, and alignment of nvl_thought text (the text said by the
## nvl_narrator character.)
define gui.nvl_thought_xpos = 360
define gui.nvl_thought_ypos = 0
define gui.nvl_thought_width = 1170
define gui.nvl_thought_xalign = 0.0
## The position of nvl menu_buttons.
define gui.nvl_button_xpos = 675
define gui.nvl_button_xalign = 0.0
## Localization ################################################################
## This controls where a line break is permitted. The default is suitable
## for most languages. A list of available values can be found at https://
## www.renpy.org/doc/html/style_properties.html#style-property-language
define gui.language = "unicode"
################################################################################
## Mobile devices
################################################################################
init python:
## This increases the size of the quick buttons to make them easier to
## touch on tablets and phones.
@gui.variant
def touch():
gui.quick_button_borders = Borders(60, 21, 60, 0)
## This changes the size and spacing of various GUI elements to ensure they
## are easily visible on phones.
@gui.variant
def small():
## Font sizes.
gui.text_size = 45
gui.name_text_size = 54
gui.notify_text_size = 38
gui.interface_text_size = 45
gui.button_text_size = 45
gui.label_text_size = 51
## Adjust the location of the textbox.
gui.textbox_height = 360
gui.name_xpos = 120
gui.dialogue_xpos = 135
gui.dialogue_width = 1650
## Change the size and spacing of various things.
gui.slider_size = 54
gui.choice_button_width = 1860
gui.choice_button_text_size = 45
gui.navigation_spacing = 30
gui.pref_button_spacing = 15
gui.history_height = 285
gui.history_text_width = 1035
gui.quick_button_text_size = 30
## File button layout.
gui.file_slot_cols = 2
gui.file_slot_rows = 2
## NVL-mode.
gui.nvl_height = 255
gui.nvl_name_width = 458
gui.nvl_name_xpos = 488
gui.nvl_text_width = 1373
gui.nvl_text_xpos = 518
gui.nvl_text_ypos = 8
gui.nvl_thought_width = 1860
gui.nvl_thought_xpos = 30
gui.nvl_button_width = 1860
gui.nvl_button_xpos = 30
Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 838 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

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