sonomemo

Crates.iosonomemo
lib.rssonomemo
version0.4.0
created_at2025-12-12 19:14:54.100591+00
updated_at2026-01-04 13:29:28.350383+00
descriptionA context logging terminal app designed for ADHD brains.
homepage
repositoryhttps://github.com/sonohoshi/sonomemo
max_upload_size
id1982003
size124,442
kimsm (sonohoshi)

documentation

README

sonomemo (์†Œ๋…ธ๋ฉ”๋ชจ) ๐Ÿง 

sonomemo๋Š” ADHD๋ฅผ ์œ„ํ•œ ๋ฌธ๋งฅ ๊ธฐ๋ก์šฉ ํ„ฐ๋ฏธ๋„ ์•ฑ์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ํ•„์š”ํ•ด์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์„œ๋ธŒ๋ผ์ž„ ํ…์ŠคํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฝ”๋“œ๋ฅผ ์งœ๋Š”๊ฑด ์งˆ๋ ธ์Šต๋‹ˆ๋‹ค. ํด๋กœ๋“œ ์ฝ”๋“œ์—์„œ ์ผ ์‹œํ‚ค๋‹ค๊ฐ€ ์•ŒํŠธ ํƒญ์„ ๋ˆ„๋ฅด๋Š”๊ฒƒ๋„ ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ œ๋ฏธ๋‚˜์ด์˜ ๋„์›€์„ ์ข€ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋งŽ์ด ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

image

โœจ ์™œ ๊ตณ์ด ์ด๋Ÿฐ๊ฑธ?

  • ๐Ÿง  ๋งŒ๋“  ์‚ฌ๋žŒ ๊ธฐ์–ต๋ ฅ์ด ๋ชจ์ž๋ž๋‹ˆ๋‹ค.: ๋ฉ”๋ชจ๋ฅผ ์•ˆํ•˜๋ฉด ๋ณดํ†ต ๊นŒ๋จน์Šต๋‹ˆ๋‹ค. ์•ˆ๊นŒ๋จน๋Š”๋‹ค๊ตฌ์š”? ์ข€ ๋” ์ค‘์š”ํ•œ๊ฑธ ๊ธฐ์–ตํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ผํ•˜๋ฉด์„œ ๋ช‡์‹œ์ฏค์— ์ด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ตฌ๋ฆฌ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”์ง€๊นŒ์ง€ ๊ธฐ์–ตํ•ด์•ผํ•  ํ•„์š”๋Š” ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ๐Ÿ… ๊ฐ•์ œ ํ™˜๊ธฐ (๋ฝ€๋ชจ๋„๋กœ): ๊ธฐ๋Šฅ์ด ๋ญ๊ฐ€ ๋” ํ•„์š”ํ•˜์ง€ ์‹ถ์–ด์„œ ์ œ๋ฏธ๋‚˜์ดํ•œํ…Œ ๋ฌผ์–ด๋ดค๋”๋‹ˆ ์ด๋Ÿฐ๊ฑธ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ทธ๋ƒฅ ์žฅ๋‚œ๊ฐ ์šฉ๋„๊ฐ™๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐ŸŒฑ ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ: ๊นƒํ—ˆ๋ธŒ์˜ ์ž”๋””๋ฐญ ๋น„์Šทํ•œ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๐Ÿ“ ๋งˆํฌ๋‹ค์šด ๊ธฐ๋ฐ˜: ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” YYYY-MM-DD.md ํ˜•์‹์˜ ๋กœ์ปฌ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋งˆํฌ๋‹ค์šด์ผ ํ•„์š”๊ฐ€ ์žˆ๋Š”์ง„ ๋ชจ๋ฅด๊ฒ ์–ด์š”. ์ œ๋ฏธ๋‚˜์ด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์งœ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.
  • โœ… ํ•  ์ผ ๋ฐ ํƒœ๊ทธ: - [ ] ๋ฌธ๋ฒ•์œผ๋กœ ํ•  ์ผ ์ž๋™ ์ธ์‹, #ํƒœ๊ทธ๋กœ ๋ถ„๋ฅ˜. ํ•„์š”ํ•˜๋ฉด ์ ๋‹นํžˆ ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒŒ ์ œ์ผ ์ข‹์€๋“ฏ.
  • ๐Ÿ”— URL ํ•˜์ด๋ผ์ดํŒ…: ๋กœ๊ทธ์— ๋งํฌ(http://...)๊ฐ€ ์žˆ์œผ๋ฉด ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์˜ˆ์˜๊ฒŒ ํ‘œ์‹œํ•ด์ค๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํด๋ฆญ์€ ์•ˆ๋ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„์ด์ž–์•„์š”. (๋Œ€์‹  Enter๋กœ ํด๋”๋Š” ์—ด์–ด๋“œ๋ฆฝ๋‹ˆ๋‹ค)

๐Ÿ’ญ ์‚ฌ์šฉ ๊ฐ€์ด๋“œ

- [ ] ํ•  ์ผ ์ด๋ผ๊ณ  ์ ์œผ๋ฉด ์šฐ์ƒ๋‹จ todo list์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
#์–ด์ฉŒ๊ตฌ ์™€ ๊ฐ™์€ ์‹์œผ๋กœ #ํƒœ๊ทธ ๋ฅผ ๋ถ™์—ฌ ์ž‘์„ฑํ•˜์‹œ๋ฉด Navigate ๋ชจ๋“œ์˜ t ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํƒœ๊ทธ๋ณ„๋กœ ๋กœ๊ทธ๋ฅผ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Navigate ๋ชจ๋“œ์—์„œ ์ƒํ•˜ ํ™”์‚ดํ‘œ ํ˜น์€ ๋งˆ์šฐ์Šค ์Šคํฌ๋กค์„ ํ†ตํ•ด ๋กœ๊ทธ๋ฅผ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์™„๋ฃŒ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ํ•  ์ผ ๋กœ๊ทธ์—์„œ ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํ•  ์ผ์ด ์™„๋ฃŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์ดํ•˜ ๋‚ด์šฉ์€ ์ „๋ถ€ ์ œ๋ฏธ๋‚˜์ด๊ฐ€ ์ ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์Šฅ ๋ณด๊ณ  ์ž˜ ์ผ๋„ค ์‹ถ์–ด์„œ ๋„ฃ์–ด๋†จ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์ด ๋ถ€์กฑํ•˜๋‹ค๋ฉด ์ด์Šˆ๋กœ ์˜ฌ๋ ค์ฃผ์„ธ์š”. ๊ทธ๋Œ€๋กœ ์ œ๋ฏธ๋‚˜์ด์— ๋„˜๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ—บ๏ธ ์‚ฌ์šฉ ๊ฐ€์ด๋“œ (App Flow)

Sonomemo๋Š” ํ‚ค๋ณด๋“œ ์ค‘์‹ฌ์˜ 3๊ฐ€์ง€ ํ•ต์‹ฌ ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

graph TD
    Start((Start)) --> Editing["๐Ÿ“ Editing Mode<br/>(์ž…๋ ฅ ๋ชจ๋“œ)"]
    
    subgraph Main Loop
        Navigate["๐Ÿงญ Navigate Mode<br/>(ํƒ์ƒ‰ & ๊ธฐ๋Šฅ ๋ชจ๋“œ)"]
        Editing
        Search["๐Ÿ” Search Mode<br/>(๊ฒ€์ƒ‰ ๋ชจ๋“œ)"]
    end

    subgraph Popups
        Pomodoro["๐Ÿ… Pomodoro"]
        Graph["๐Ÿ“Š Activity Graph"]
        Tag["๐Ÿท๏ธ Tag Filter"]
        Mood["๐ŸŽญ Mood Tracker"]
    end

    %% Transitions
    Editing -->|Esc| Navigate
    Navigate -->|i| Editing
    Navigate -->|?| Search
    
    Search -->|Enter| SearchResult["Result View"]
    SearchResult -->|Esc| Search
    Search -->|Esc| Navigate
    
    %% Popup Triggers
    Navigate -->|p| Pomodoro
    Navigate -->|g| Graph
    Navigate -->|t| Tag
    
    %% Popup Exits
    Pomodoro -->|Esc/Enter| Navigate
    Graph -->|Any Key| Navigate
    Tag -->|Esc/Enter| Navigate
    Mood -->|Enter| Navigate
    
    %% Initial Flow
    Start -.-> Mood

1. ๐Ÿ“ Editing Mode (์ž…๋ ฅ ๋ชจ๋“œ)

"์ƒ๊ฐ๋‚˜๋Š” ๊ฒƒ์„ ๋ฐ”๋กœ ์ ์œผ์„ธ์š”"

  • ์•ฑ์„ ์ผœ์ž๋งˆ์ž ๋งŒ๋‚˜๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.
  • Enter: ๋ฉ”๋ชจ ์ €์žฅ
  • Shift + Enter: ์ค„๋ฐ”๊ฟˆ (๋ฉ€ํ‹ฐ๋ผ์ธ ์ž…๋ ฅ)
  • Esc: Navigate ๋ชจ๋“œ๋กœ ์ „ํ™˜

2. ๐Ÿงญ Navigate Mode (ํƒ์ƒ‰ ๋ชจ๋“œ)

"๊ธฐ๋ก์„ ํ›‘์–ด๋ณด๊ณ  ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜์„ธ์š”"

  • ํ™”์‚ดํ‘œ ํ‚ค(โ†‘, โ†“)๋กœ ์ด์ „ ๊ธฐ๋ก์„ ์Šคํฌ๋กคํ•ฉ๋‹ˆ๋‹ค.
  • i: ๋‹ค์‹œ ์ž…๋ ฅ ๋ชจ๋“œ๋กœ ์ „ํ™˜
  • ?: ๊ฒ€์ƒ‰ ๋ชจ๋“œ ์ง„์ž…
  • t: ํƒœ๊ทธ๋ณ„๋กœ ๋ชจ์•„๋ณด๊ธฐ
  • p: ๋ฝ€๋ชจ๋„๋กœ ํƒ€์ด๋จธ ์„ค์ • (25๋ถ„ ๋“ฑ)
  • g: ํ™œ๋™ ๊ทธ๋ž˜ํ”„ ํ™•์ธ
  • l: PATH ํ™•์ธ (ํ†ตํ•ฉ ํŒ์—…)

3. ๐Ÿ” Search Mode (๊ฒ€์ƒ‰ ๋ชจ๋“œ)

  • ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ฉ”๋ชจ๋งŒ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  • Esc: ๊ฒ€์ƒ‰ ์ทจ์†Œ ๋ฐ Navigate ๋ชจ๋“œ ๋ณต๊ท€

๐Ÿš€ ์„ค์น˜ ๋ฐฉ๋ฒ•

Crates.io๋ฅผ ํ†ตํ•œ ์„ค์น˜ (์ถ”์ฒœ)

Rust๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ฐ€์žฅ ๊ฐ„ํŽธํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

cargo install sonomemo

์ง์ ‘ ๋นŒ๋“œ

git clone https://github.com/sonohoshi/sonomemo.git
cd sonomemo
cargo install --path .

โŒจ๏ธ ๋‹จ์ถ•ํ‚ค ์š”์•ฝ

ํ‚ค ๋™์ž‘ (Navigate ๋ชจ๋“œ ๊ธฐ์ค€)
i ์ž…๋ ฅ ๋ชจ๋“œ ์ „ํ™˜ (๋ฉ”๋ชจ ์ž‘์„ฑ)
? ๊ฒ€์ƒ‰ ๋ชจ๋“œ ์ง„์ž…
t ํƒœ๊ทธ ํ•„ํ„ฐ๋ง
p ๋ฝ€๋ชจ๋„๋กœ ํƒ€์ด๋จธ ์„ค์ •/ํ•ด์ œ
g ํ™œ๋™ ๊ทธ๋ž˜ํ”„(์ž”๋””) ํ™•์ธ
l ๋กœ๊ทธ/์„ค์ • ๊ฒฝ๋กœ ํ™•์ธ ๋ฐ ์—ด๊ธฐ
[ ์ด์ „ ํ•  ์ผ(Todo)๋กœ ์ด๋™
] ๋‹ค์Œ ํ•  ์ผ(Todo)๋กœ ์ด๋™
y ์„ ํƒํ•œ ๋กœ๊ทธ ๋ณต์‚ฌ (Copy)
q ์•ฑ ์ข…๋ฃŒ

โš™๏ธ ์„ค์ • (Configuration) (New!)

Sonomemo v0.3.1๋ถ€ํ„ฐ๋Š” ์„ค์ • ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. (config.toml) ์‹คํ–‰๋งŒ ํ•˜๋ฉด ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง€๋ฏ€๋กœ, ์›ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜์„ธ์š”. l ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์„ค์ • ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋ฅผ ๋ฐ”๋กœ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽจ ํ…Œ๋งˆ ๋ฐ ๋‹จ์ถ•ํ‚ค ์„ค์ • ์˜ˆ์‹œ

# Sonomemo Configuration

[placeholders]
navigate = "ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๊ฐ์ข… ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์„ธ์š”..."
editing = "์˜ค๋Š˜์˜ ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณด์„ธ์š”..."

# ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ฒฝ๋กœ ์„ค์ • (v0.2.0+)
[data]
log_path = "logs"  # ์›ํ•˜๋Š” ํด๋”๋ช…์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (์˜ˆ: "C:/MyLogs" ๋˜๋Š” "data/memories")

# ํ‚ค ๋ฐ”์ธ๋”ฉ ์„ค์ • (๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ž…๋ ฅ)
[keybindings.navigate]
quit = ["q", "ctrl+q"]
tags = ["t"]
pomodoro = ["p"]

[keybindings.editing]
save = ["enter"]
newline = ["shift+enter"]
cancel = ["esc"]

# ํ…Œ๋งˆ ์ƒ‰์ƒ ์„ค์ • (์ƒ‰์ƒ๋ช… ๋˜๋Š” R,G,B)
[theme]
border_default = "Yellow"       # ๊ธฐ๋ณธ ํ…Œ๋‘๋ฆฌ
text_highlight = "100,60,0"     # ๊ฐ•์กฐ ๋ฐฐ๊ฒฝ์ƒ‰ (R,G,B)
todo_done = "Green"
todo_wip = "Red"
 mood = "LightRed"

Tip: examples/ ํด๋”์— ๋‹ค์–‘ํ•œ ํ…Œ๋งˆ ์ƒ˜ํ”Œ(Warm Sunshine, Ocean Blue ๋“ฑ)์ด ์ค€๋น„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค!

๐Ÿ› ๏ธ ๊ธฐ์—ฌํ•˜๊ธฐ (Contributing)

์•Œ์•„์„œ ์ž˜ ํ•ด์ฃผ์‹œ๋ฉด ์ œ๋ฏธ๋‚˜์ดํ•œํ…Œ ๋„˜๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License (LICENSE ํŒŒ์ผ์„ ํ™•์ธํ•˜์„ธ์š”)

Commit count: 0

cargo fmt