Repository navigation
Description
What would you like Filee to do?
A shared rule for what Filee shows by default, so the everyday conversions stay easy to find as more formats and tools arrive. I don't have a fixed plan; below are the directions I've been thinking about, and how to shape it is your call.
1. What the default donuts hold
- Front converts, back edits. The front face is format conversion; the back face is editing the file (rotate, crop, compress, ...), so a new user can tell the two apart at a glance. Types with no editing tools keep their less common conversions on the back, as they do now.
- Most-used first, whatever it is. No fixed meaning per face: the front holds the most-used actions (conversion or edit) and the back holds the rest. Simpler, but less predictable.
- One "Edit" slice on the front. Conversions stay on the front with a single group slice that fans out the edits, and the back keeps less common conversions.
- One or two group slices by default, so people see that a slice can open more choices (for example "Rotate" on the image donut).
2. How the specialist formats (CAD, 3D models, GIS / maps, fonts, game textures, ...) get out of the way
- Packages you switch on. Formats are grouped by purpose; a package's formats and donut show up only when it is on, and it can be turned off again (a page like Settings → Engines, but for what is shown, not what is installed).
- Ask on first run. A "What do you work with?" step (photos, documents, video and audio, design, 3D / CAD, maps, fonts, ...) picks which donuts and formats start visible; it can be changed later.
- Show them when they're needed. Specialist donuts stay hidden until a matching file is dropped, then Filee offers to turn that group on.
- Lighter: per-donut on / off. The specialist donuts ship turned off in Settings → Toolbar, with a switch to turn each one on.
- For long lists (such as the preset editor's target list): common formats first, the rest under "More formats".
In every case Filee would still recognize all files; only what is shown by default changes.
Why / when would you use it?
Filee now knows about 270 formats and ships 19 default donuts. That is great for coverage, and this isn't about size or speed — Filee stays light. It's about how much a new user sees before finding the few things they came for. The everyday features are starting to get buried under optional ones that most people never use:
- The image donut's front mixes PNG / JPG / WEBP with SVG tracing, BMP, TIFF and three editing tools, while GIF is not on the donut.
- Donuts for CAD, 3D models and GIS are there by default, though most users will never drop those files.
- The preset editor's target list shows around 150 formats.
When the basics are hard to spot, people don't discover them and keep using only what they already know.
So far each slice has been decided case by case within the 12-slice limit (GIF dropped from the image donut, PPTX in place of TIFF on the PDF donut, "Cut a clip" in place of FLAC on the video back). That has worked, but there is no written rule, so every new format or tool means the same decision again, and contributors can't tell where a new preset should go.
Ideas for how it could work
- These can be combined, for example "front converts, back edits" with packages you switch on, or kept to just one part.
- The front / back idea fits Question: would you like more image tools, and where should they go on the donut? #71: tools stay off the front, and the image back face already holds most of them.
- It could apply to new installs only, so nobody's donuts change. Anyone who wants the new layout can use Reset to default (Reset one built-in donut to its defaults #220).
- Once there is a direction, the changes can come as small PRs (for example, the image donut first).
Which direction sounds closest to what you'd want, or would you rather go another way? Please let me know whether to go ahead (yes or no); I'll follow your feedback.
Activity
KnifeLemon commentedon Oct 30, 2026
@SeoJCalive 좋은 제안 고마워요. 이렇게 정했어요.
규칙
나머지 안(분야 묶음 켜고 끄기, 첫 실행 질문, 필요할 때 제안)은 이번에는 하지 않아요. 위 두 가지로 부족하면 그때 다시 봐요.
기존 사용자
진행
맡아 주실 수 있을까요? PR 전에 이 이슈에 아래 표를 먼저 올려 주세요.
그 표가 정해지면 코드로 들어가면 돼요. GIF처럼 지금 빠져 있는 자주 쓰는 형식은 이 정리에서 같이 자리를 찾아 주세요.
SeoJCalive commentedon Oct 30, 2026
@KnifeLemon 정리해 주셔서 고마워요. 이 이슈 제가 맡을게요.
표가 준비되면 바로 올릴게요.
SeoJCalive commentedon Oct 30, 2026
@KnifeLemon 정리해 주신 대로 표를 만들다가, 제가 이슈를 잘못 정리해서 올린 걸 알게 됐어요. 정정하고, 방향과 그에 따른 선행 작업을 함께 여쭤볼게요.
도넛마다 끄기는 효과가 거의 없어요: 도넛은 그 형식의 파일을 놓을 때만 열려서, CAD 파일을 안 다루는 사람에게는 CAD 도넛이 켜져 있어도 보일 일이 없어요. 끄면 오히려 그 파일을 다루는 사람만 혼합 도넛을 보게 돼요.
원래 하려던 건 분야 단위로 끄기예요: 분야를 끄면 그 분야의 형식이 두 곳에서 빠지는 방식이에요.
파일 인식, 프리셋 자체, CLI는 그대로예요. Blender가 자주 쓰는 형식만 기본으로 켜 두고, 나머지는 애드온을 켜면 가져오기·내보내기 메뉴에 함께 생기는 방식과 비슷해요.
분야는 겹칠 수 있어요: 형식 하나가 여러 분야에 속할 수 있고, 켜진 분야 중 하나라도 그 형식을 가지면 보여요. 예를 들어 DXF는 CAD와 벡터 디자인에, SRT는 자막과 동영상에 속해서, CAD나 자막을 꺼도 벡터 도넛의 DXF나 동영상의 자막 추출은 그대로 남아요.
기본으로 끌 분야: CAD, 3D 모델, 지도, 글꼴, 게임 텍스처(DDS, TGA 등)를 생각하고 있어요.
꺼진 분야의 파일을 놓았을 때: 그 파일을 실제로 다루는 사람이 불편하지 않게, 그 분야 도넛은 그대로 열고 칸과 목록만 줄이는 쪽을 생각하고 있어요. 혼합 도넛으로 보내는 쪽도 가능해요.
"앞면은 변환, 뒷면은 편집"과 새로 설치할 때만 적용하는 원칙은 그대로 가져가요.
이 방향이면 먼저 해야 할 작업
지금은 형식마다 분야(카테고리)가 하나뿐이라 3번처럼 겹치는 걸 나타낼 수 없어요. 그렇다고 카테고리를 바꾸면 변환 엔진, 경로, 프리셋 판정, CLI까지 영향을 받아요. 그래서 카테고리는 그대로 두고, 분야마다 형식 목록을 적은 표를 따로 두는 작업이 먼저 필요해요. 이 작업은 화면을 바꾸지 않고 표와 시험만 들어가요.
여쭤볼 것
KnifeLemon commentedon Oct 30, 2026
@SeoJCalive 짚어 주셔서 고마워요. 제 추천이 틀렸어요. 말씀대로 분야 단위로 끄기로 가요.
방향: 분야를 끄면 그 분야의 형식이 두 곳에서 빠져요.
파일 인식, 프리셋 자체, CLI는 그대로예요. 분야는 겹칠 수 있고, 켜진 분야 중 하나라도 그 형식을 가지면 보여요.
기본으로 끌 분야: 말씀하신 CAD, 3D 모델, 지도, 글꼴, 게임 텍스처로 시작해요.
꺼진 분야의 파일을 놓았을 때: 그 도넛은 그대로 열고 칸과 목록만 줄이는 쪽이 좋아요. 그 파일을 실제로 쓰는 사람이 불편하면 안 되니까요.
"앞면은 변환, 뒷면은 편집"과 "새로 설치할 때만 적용" 원칙은 그대로예요.
순서: "분야 → 형식" 표 작업을 먼저 별도 이슈로 올려 주세요(화면 변경 없이 표와 테스트만). 그게 머지되면 이 이슈로 돌아와요. 이 이슈는 계속 맡아 주세요.
feat(formats): add format fields and grades table
docs: FORMAT-RULES.md, what Filee shows by default
SeoJCalive commentedon Oct 31, 2026
@KnifeLemon 구현 전에 올려 달라고 하신 도넛별 칸 목록(지금 → 바뀐 뒤)이에요. 규칙 6·7(앞면은 변환, 뒷면은 편집, 새 설치에만 적용)을 지금 기본 도넛에 맞춘 배치를 기준으로 하고, 칸마다 얼마나 필요한지 단계를 매겼어요.
짠 방식과 어디까지 할지: 아래 표의 "단계"는 이렇게 매겼어요.
어느 단계까지 고르면 핵심과 그 단계까지의 칸만, 표의 순서 그대로 남아요. 면을 옮기는 칸은 없어요. 고르실 안은 넷이에요.
(b)~(d)는 규칙을 어기지 않은 지금 칸까지 빼는 것이라 허락해 주실 때만 해요. 빠진 칸은 프리셋 목록에 남아 툴바 편집기에서 다시 넣을 수 있고, 이미 쓰는 사람의 도넛은 바뀌지 않아요.
규칙 6을 적용하면 빠지는 칸: 편집 도구가 있는 유형의 뒷면에서 변환이 빠져요(표의 "기본에서 빠짐", 이미지의 투명 여백 자르기는 칸 수 때문이라 따로 적었어요). 앞면으로 옮기지는 않았어요. 따로 정하지 않은 재배치가 되니까요. 편집 도구가 있는 유형도 편집 칸 뒤에 덜 쓰는 변환을 남겨도 될까요? (a) 기준으로 남기면 동영상 뒷면 12칸, 오디오 5칸이고, PDF는 13칸이라 하나를 빼야 하고, 이미지는 뒷면이 이미 12칸이라 자리가 없어요. (b)~(d)와 함께 고르시면 남는 자리에 맞춰 후보를 다시 고를게요.
GIF 자리: 이미지 앞면 핵심으로, 순서는 WEBP 다음 자리를 제안해요. Filee는 GIF, WEBP, APNG, MNG 사이에서 모든 프레임과 시간 간격을 지켜 바꾸고(ImageEncoder.cs), 움직이는 .png는 APNG로 읽어요(MagickImageConverter.cs). 그래서 움직이는 WEBP·PNG를 GIF만 받는 곳에 올릴 때 다른 칸으로는 대신할 수 없어요. 정지 그림은 한 장짜리 GIF가 돼요. (c)처럼 WEBP가 빠지는 안에서도 순서는 표대로라 JPG 다음이 돼요. 이 자리로 괜찮을까요?
기본에 넣을지 정할 세 가지: 셋 다 넣지 않는 쪽을 권해요.
작은 확인 세 가지:
배치 점검 시험: 규칙 9의 점검 시험은 제가 맡아 시작할게요. 기본 도넛의 칸마다 그 도넛이 받는 형식에 대해 실행 가능 여부 판정(
PresetAvailability)과 입력별 동작 조건을 확인해서, 실행할 수 없는 칸, 이름 그대로의 작업을 하는 칸, 일반 변환으로만 실행되는 칸으로 나눠요.바뀌는 도넛 다섯
"→ 뒷면"과 "(← 앞면)"은 규칙 6 때문에 면을 옮긴 칸이에요.
이미지
앞면
뒷면
기본에서 빠짐: AVIF, PDF 병합(규칙 6), 투명 여백 자르기. 투명 여백 자르기는 규칙 6 때문이 아니라, 앞면의 편집 세 칸을 뒷면으로 옮기면 뒷면이 13칸이 되어 하나를 빼야 해서 뺐어요. 투명 배경 그림에만 쓰여 편집 칸 중 가장 좁아요.
PDF
앞면
뒷면
기본에서 빠짐: WEBP, TIFF, HTML, ODT, RTF, AZW3, CBZ
동영상
앞면
뒷면
기본에서 빠짐: MP4 AV1, WEBP, 프레임 추출 (PNG), 프레임 추출 (JPG), 라이브 포토 (아이폰), 모션 포토 (안드로이드), 오디오 추출, WAV
오디오
앞면
뒷면
기본에서 빠짐: ALAC
혼합 파일
앞면
뒷면
기본에서 빠짐: PDF 압축
나머지 14개 도넛 (지금과 규칙 적용 후가 같음, 칸 순서대로, 괄호는 단계)
문서
스프레드시트
프레젠테이션
HWP / HWPX
텍스트·마크다운
전자책
자막
벡터 그래픽
압축 파일
CAD 도면
글꼴
데이터
3D 모델
지리 정보 (GIS)
몇 번 안으로 할지와 2~5번의 답을 알려 주시면 그 표대로 구현할게요.
KnifeLemon commentedon Oct 31, 2026
@SeoJCalive 표와 단계 매기기 고마워요. 덕분에 고르기 쉬웠어요. 이렇게 정했어요.
결정
남은 자리 후보를 다시 고른 표가 나오면 여기에 한 번 더 올려 주세요. 그걸 보고 코드로 들어가면 돼요.
test(presets): check every default donut slot against its donut's inputs
SeoJCalive commentedon Nov 1, 2026
@KnifeLemon 정해 주신 대로 다시 고른 표예요. (b) 핵심 + 1단계를 표의 순서 그대로 남기고, GIF·메타데이터 제거·PDF 압축·ZIP 하나로는 결정대로 반영했어요. 모든 면이 8칸 이하예요.
편집 도구가 있는 도넛의 뒷면
남는 자리 후보는 그 뒷면에 지금 있다가 규칙 6 때문에 빠지는 변환이에요. 이 후보들의 단계는 처음 표에서 가져온 값이 아니라, 그 도넛에 파일을 놓는 사람을 기준으로 처음 표의 단계 뜻(1단계는 흔한 변형·두 번째 공유 형식, 2단계는 특정 사용자층이 쓰는 출력, 3단계는 그 도넛에 남는 다른 칸이 대부분 대신하는 것)에 맞춰 새로 매긴 제안이에요. 한번 봐 주세요. 낮은 단계부터, 같은 단계 안에서는 지금 순서대로 8칸이 찰 때까지 골랐어요. 고른 칸은 편집 칸 뒤, ZIP 하나로 앞에 둬요. ★가 다시 고른 칸이에요.
앞면은 이미지 PNG, JPG, WEBP, GIF, PDF, 벡터화 / PDF PNG, JPG, DOCX, PPTX (슬라이드), TXT, HWPX, HWP / 동영상 MP4, MP4 720p, MOV, GIF, MP3, 자막 생성 / 오디오 MP3, MP3 128k, M4A, WAV, 자막 생성이에요.
나머지 15개 도넛 (앞면 / 뒷면, 칸 순서대로)
빠진 칸은 모두 프리셋 목록에 남아 툴바 편집기에서 다시 넣을 수 있고, 이미 쓰는 사람의 도넛은 바뀌지 않아요. 새로 생긴 배치 점검 시험은 면을 가리지 않고 도넛 단위로 보므로, 칸을 빼거나 같은 도넛 안에서 옮기는 것만으로는 걸리지 않아요. 도넛에 새로 들어가는 칸은 이미지 GIF와 동영상 메타데이터 제거 둘이고, 구현할 때 이 시험으로 확인할게요.
결정대로 짜다가 생긴 두 가지만 확인해 주세요.
두 가지 답을 받으면 이 표대로 구현을 시작할게요.
SeoJCalive commentedon Nov 1, 2026
@KnifeLemon 방금 올린 표에서 하나 더 확인할 게 있어요. 편집 도구가 없는 도넛은 뒷면에 덜 쓰는 변환을 두는데, 제가 매긴 단계로는 이 변환이 대부분 2·3단계라 (b)에서 빠져요. 그래서 아래 9개 도넛은 뒷면에 ZIP 하나로만 남아요. 처음 (b)를 설명할 때 이 결과를 따로 적지 않았어요.
스프레드시트도 비슷해요. 뒷면에 PDF + 편집과 ZIP 하나로 두 칸만 남고, DOCX (2), Markdown (3), TXT (3), YAML (3), XML (3), vCard (2), iCalendar (2), PNG (3)가 빠져요. 자막·글꼴·지리 정보는 원래부터 뒷면이 ZIP 하나로뿐이라 바뀌지 않아요.
앞 댓글의 두 질문과 함께 답 주시면, 표에 반영해서 구현할게요.
KnifeLemon commentedon Nov 1, 2026
@SeoJCalive 다시 고른 표와 빠지는 칸 정리, 고마워요. 세 가지 이렇게 정했어요.
결정
이대로 구현해 주시면 돼요. 배치 점검 시험으로 확인해 주시면 좋겠어요.
SeoJCalive commentedon Nov 1, 2026
@KnifeLemon 분야 스위치를 화면에 연결하는 작업을 시작해요. 설정 저장 방식이 바뀌는 일이라, 코드보다 먼저 이행을 어떻게 할지 알려 드려요.
settings.json에 꺼진 분야 id 목록turnedOffFields하나를 더해요(예:["cad", "font", …]). 형식이 아니라 FormatFields.All의 분야 id를 적어요. 새 설치, 곧settings.json이 없을 때는 이 표의OnByDefault대로 developer를 뺀 11개가 들어가요.settings.json은 빈 목록, 곧 모든 분야 켜짐으로 읽어요. 규칙 7대로 도넛 칸과 프리셋은 이행으로 건드리지 않고, 이 변경은 새 칸 이행을 더하지 않아요. 그래서 기존 복구·이행이 필요 없는 스키마 58 라이브러리는 읽기만으로는 세 파일 어느 것도 다시 쓰지 않아요. 뒷면이 빠진 기본 도넛을 채우는 기존 복구 같은 경로는 스키마 번호와 상관없이 지금처럼 돌고, 이 변경은 거기에 저장이나 칸 이행을 더하지 않아요. 더 오래된 설정은 지금처럼 기존 이행을 거쳐 저장되고, 그때도 이 값은 모두 켜짐이에요. 읽지 못하는 설정 파일도 기존 사용자로 보고 모두 켜짐으로 시작해요.to-로 시작하는지가 아니라 프리셋의 대상 형식을IsShown으로 봐요. 그래서 사용자가 직접 만든 WOFF2 프리셋 칸도 함께 숨어요. 지금 기본 프리셋 가운데 숨을 수 있는 것은 모두to-<형식>이라 기본 칸에서는 결과가 같아요.PR은 #972가 머지된 뒤 리베이스해서 열게요. 빈 자리를 어떻게 그릴지, 스위치를 어디에 둘지, 규칙 3이 이름을 대지 않은 목록은 PR 본문에 정리해 둘게요. 이렇게 진행하기로 하고 지금 착수할게요. 다른 의견이 있으면 말씀해 주세요.
1 remaining item
feat(presets): default donuts follow the #806 slot table
fix(presets): put Translate back first on the new document, text and …
test(presets): build the slot-table baselines in code
fix(presets): give a new front its new back face again
Merge pull request #972 from KnifeLemon/feat/default-slot-table
feat(settings): remember which format fields are turned off
feat(ui): Fields page, and hide the formats of turned-off fields
docs: the field switches and the new default donuts are on screen
Add Crop video: remove black bars or crop to a ratio (#830)
fix(settings): keep the field-switch tests on the current schema
Merge pull request #1036 from KnifeLemon/feat/field-switches
feat(toolbar): the group editor's add list follows the field switches
SeoJCalive commentedon Nov 3, 2026
@KnifeLemon #806에서 정한 내용이 모두 머지돼서 이 이슈는 닫을게요.
#862에서 남은 항목은 #806 범위 밖이라 별도 이슈로 하나씩 올릴게요. 일반 변환으로 실행되는 입력 안내, 라이브러리·팔레트 설명 문구, 도넛 합치기·나누기가 남아 있어요. 방향이 이미 정해진 일반 변환 안내부터 먼저 올릴게요.
fix(presets): add Translate to libraries upgraded from 2.2 or earlier