← Leaderboard

tamnguyenvan/screenarc

View on GitHub ↗
Internal84

Unique within the repo — the other 16% repeats across its own files.

Public60

Unique across all public code — a further 24% is its own but appears in other public repos too.

Tidy, but not new — the code doesn't repeat itself, yet a large share already exists across other public repos. A strong candidate for pulling from (or publishing as) a shared package.

Worth consolidating — in the code

Real, actionable duplication in this repo's source, most concrete first.

Longest identical blocks

The longest runs of identical consecutive lines copied between two files (indentation ignored) — the most concrete copy-paste. Lift the block into a shared function or module.

LinesFile AFile BCross-repo
17 tamnguyenvan/screenarc/src/components/editor/sidepanel/AudioSettings.tsx:17 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx:31 same repo
14 tamnguyenvan/screenarc/electron/main/features/screen-video-writer.ts:104 tamnguyenvan/screenarc/electron/main/features/system-audio-writer.ts:100 same repo
13 tamnguyenvan/screenarc/electron/main/features/build-recording-args.ts:35 tamnguyenvan/screenarc/electron/main/features/recording-manager.ts:395 same repo
12 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx:382 tamnguyenvan/screenarc/src/components/editor/sidepanel/FrameEffectsSettings.tsx:149 same repo
11 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettings.tsx:82 tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx:399 same repo
9 tamnguyenvan/screenarc/electron/main/types/index.ts:1 tamnguyenvan/screenarc/src/types/index.ts:90 same repo
9 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx:385 tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx:479 same repo
9 tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx:479 tamnguyenvan/screenarc/src/components/editor/sidepanel/FrameEffectsSettings.tsx:152 same repo
9 tamnguyenvan/screenarc/src/components/editor/timeline/SpeedRegionBlock.tsx:10 tamnguyenvan/screenarc/src/components/editor/timeline/ZoomRegionBlock.tsx:8 same repo
9 tamnguyenvan/screenarc/src/pages/RendererPage.tsx:60 tamnguyenvan/screenarc/src/store/slices/projectSlice.ts:147 same repo
8 tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx:136 tamnguyenvan/screenarc/src/store/slices/uiSlice.ts:10 same repo
8 tamnguyenvan/screenarc/src/components/editor/timeline/CutRegionBlock.tsx:10 tamnguyenvan/screenarc/src/components/editor/timeline/ZoomRegionBlock.tsx:9 same repo
8 tamnguyenvan/screenarc/src/components/editor/timeline/CutRegionBlock.tsx:10 tamnguyenvan/screenarc/src/components/editor/timeline/SpeedRegionBlock.tsx:11 same repo
7 tamnguyenvan/screenarc/electron/main/features/screen-video-writer.test.ts:47 tamnguyenvan/screenarc/electron/main/features/system-audio-writer.test.ts:48 same repo
7 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettingsPanel.tsx:141 tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx:496 same repo
7 tamnguyenvan/screenarc/src/lib/screen-capture.ts:183 tamnguyenvan/screenarc/src/lib/system-audio.ts:101 same repo
6 tamnguyenvan/screenarc/electron/main/features/build-mux-args.test.ts:25 tamnguyenvan/screenarc/electron/main/features/build-mux-args.ts:36 same repo
6 tamnguyenvan/screenarc/src/components/editor/PresetPreview.tsx:141 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx:404 same repo
6 tamnguyenvan/screenarc/src/components/editor/RegionSettingsPanel.tsx:129 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx:404 same repo
6 tamnguyenvan/screenarc/src/components/editor/RegionSettingsPanel.tsx:129 tamnguyenvan/screenarc/src/components/editor/sidepanel/AudioSettings.tsx:124 same repo

Top duplication hotspots

SimilarityOverlapFile AFile BCross-repo
27% 198 tamnguyenvan/screenarc/src/lib/screen-capture.ts tamnguyenvan/screenarc/src/lib/system-audio.ts same repo
74% 192 tamnguyenvan/screenarc/electron/main/features/screen-video-writer.test.ts tamnguyenvan/screenarc/electron/main/features/system-audio-writer.test.ts same repo
22% 181 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx same repo
6% 148 tamnguyenvan/screenarc/electron/main/features/recording-manager.ts tamnguyenvan/screenarc/electron/main/ipc/handlers/desktop.ts same repo
72% 147 tamnguyenvan/screenarc/electron/main/features/screen-video-writer.ts tamnguyenvan/screenarc/electron/main/features/system-audio-writer.ts same repo
42% 125 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettingsPanel.tsx same repo
20% 121 tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/FrameEffectsSettings.tsx same repo
18% 118 tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/FrameEffectsSettings.tsx same repo
4% 116 tamnguyenvan/screenarc/electron/main/features/recording-manager.ts tamnguyenvan/screenarc/src/pages/RecorderPage.tsx same repo
12% 114 tamnguyenvan/screenarc/src/pages/RendererPage.tsx tamnguyenvan/screenarc/src/store/slices/projectSlice.ts same repo
19% 111 tamnguyenvan/screenarc/src/components/editor/sidepanel/AudioSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx same repo
16% 106 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettingsPanel.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx same repo
13% 85 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx same repo
33% 82 tamnguyenvan/screenarc/src/components/editor/timeline/SpeedRegionBlock.tsx tamnguyenvan/screenarc/src/components/editor/timeline/ZoomRegionBlock.tsx same repo
3% 82 tamnguyenvan/screenarc/electron/main/features/export-manager.ts tamnguyenvan/screenarc/electron/main/features/recording-manager.ts same repo
12% 77 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettingsPanel.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsx same repo
33% 75 tamnguyenvan/screenarc/src/components/editor/timeline/CutRegionBlock.tsx tamnguyenvan/screenarc/src/components/editor/timeline/ZoomRegionBlock.tsx same repo
11% 74 tamnguyenvan/screenarc/src/components/editor/sidepanel/AudioSettings.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsx same repo
18% 70 tamnguyenvan/screenarc/src/components/editor/sidepanel/AnimationSettingsPanel.tsx tamnguyenvan/screenarc/src/components/editor/sidepanel/AudioSettings.tsx same repo
8% 70 tamnguyenvan/screenarc/src/components/editor/ExportModal.tsx tamnguyenvan/screenarc/src/components/editor/PresetModal.tsx same repo

Duplicate declarations

The same function, variable, class, or type name declared in more than one file — a fast copy-paste signal. Consider extracting a shared definition.

FilesDeclarationWhere
5 type click tamnguyenvan/screenarc/electron/main/features/mouse-tracker.ts
tamnguyenvan/screenarc/electron/main/types/index.ts
tamnguyenvan/screenarc/src/lib/renderer.ts
+2 more
5 type cut tamnguyenvan/screenarc/src/components/editor/RegionSettingsPanel.tsx
tamnguyenvan/screenarc/src/components/editor/Timeline.tsx
tamnguyenvan/screenarc/src/hooks/useTimelineInteraction.ts
+2 more
5 type move tamnguyenvan/screenarc/electron/main/features/mouse-tracker.ts
tamnguyenvan/screenarc/src/components/editor/timeline/CutRegionBlock.tsx
tamnguyenvan/screenarc/src/components/editor/timeline/SpeedRegionBlock.tsx
+2 more
5 type zoom tamnguyenvan/screenarc/src/components/editor/RegionSettingsPanel.tsx
tamnguyenvan/screenarc/src/components/editor/Timeline.tsx
tamnguyenvan/screenarc/src/store/slices/projectSlice.ts
+2 more
4 type wallpaper tamnguyenvan/screenarc/src/components/editor/Preview.tsx
tamnguyenvan/screenarc/src/components/editor/sidepanel/BackgroundSettings.tsx
tamnguyenvan/screenarc/src/pages/RendererPage.tsx
+1 more
3 type CursorTheme tamnguyenvan/screenarc/electron/main/types/index.ts
tamnguyenvan/screenarc/electron/preload.ts
tamnguyenvan/screenarc/src/types/index.ts
3 type speed tamnguyenvan/screenarc/src/components/editor/Timeline.tsx
tamnguyenvan/screenarc/src/store/slices/timelineSlice.ts
tamnguyenvan/screenarc/src/types/index.ts
3 type warning tamnguyenvan/screenarc/electron/main/features/recording-manager.ts
tamnguyenvan/screenarc/electron/main/ipc/handlers/desktop.ts
tamnguyenvan/screenarc/src/pages/RecorderPage.tsx
2 type CursorFrame tamnguyenvan/screenarc/electron/main/types/index.ts
tamnguyenvan/screenarc/src/types/index.ts
2 type DisplayInfo tamnguyenvan/screenarc/electron/preload.ts
tamnguyenvan/screenarc/src/pages/RecorderPage.tsx
2 fn getCurrentCursorName tamnguyenvan/screenarc/electron/main/lib/macos-cursor-manager.ts
tamnguyenvan/screenarc/electron/main/lib/win-cursor-manager.ts
2 fn lerp tamnguyenvan/screenarc/src/lib/renderer.ts
tamnguyenvan/screenarc/src/lib/transform.ts
2 type MetaDataItem tamnguyenvan/screenarc/electron/main/types/index.ts
tamnguyenvan/screenarc/src/types/index.ts
2 class names tamnguyenvan/screenarc/src/components/ui/color-picker.tsx
tamnguyenvan/screenarc/src/components/ui/icons.tsx
2 fn prepareMacOSCursorBitmaps tamnguyenvan/screenarc/src/pages/RendererPage.tsx
tamnguyenvan/screenarc/src/store/slices/projectSlice.ts
2 fn prepareWindowsCursorBitmaps tamnguyenvan/screenarc/src/pages/RendererPage.tsx
tamnguyenvan/screenarc/src/store/slices/projectSlice.ts
2 type Preset tamnguyenvan/screenarc/electron/preload.ts
tamnguyenvan/screenarc/src/types/index.ts
2 type recordingGeometry tamnguyenvan/screenarc/electron/main/state.ts
tamnguyenvan/screenarc/src/types/index.ts
2 type RenderStartPayload tamnguyenvan/screenarc/electron/preload.ts
tamnguyenvan/screenarc/src/pages/RendererPage.tsx
2 fn that tamnguyenvan/screenarc/electron/main/features/recording-manager.ts
tamnguyenvan/screenarc/src/lib/easing.ts
2 type type tamnguyenvan/screenarc/electron/main/ipc/handlers/desktop.ts
tamnguyenvan/screenarc/src/components/ui/input.tsx
2 type window tamnguyenvan/screenarc/electron/electron-env.d.ts
tamnguyenvan/screenarc/electron/preload.ts

Docs & prose

Near-identical documentation — often translations (e.g. README.mdREADME_zh-CN.md) or mirrored guides. Usually intentional, not cleanup — listed separately so it doesn't inflate the code signal above.

Top duplication hotspots

SimilarityOverlapFile AFile BCross-repo
8% 41 tamnguyenvan/screenarc/CHANGELOG.md tamnguyenvan/screenarc/CODE_OF_CONDUCT.md same repo
4% 26 tamnguyenvan/screenarc/docs/development-plan.md tamnguyenvan/screenarc/docs/user-flow.md same repo
3% 26 tamnguyenvan/screenarc/docs/tech-stacks.md tamnguyenvan/screenarc/docs/user-flow.md same repo
3% 26 tamnguyenvan/screenarc/README.md tamnguyenvan/screenarc/docs/high-level-goals.md same repo
3% 25 tamnguyenvan/screenarc/CONTRIBUTING.md tamnguyenvan/screenarc/README.md same repo

Largest files

Largest files

LOCFileStatus
1233tamnguyenvan/screenarc/electron/main/features/recording-manager.tsindexed
710tamnguyenvan/screenarc/src/pages/RecorderPage.tsxindexed
541tamnguyenvan/screenarc/src/lib/renderer.tsindexed
502tamnguyenvan/screenarc/src/components/editor/sidepanel/CursorSettings.tsxindexed
470tamnguyenvan/screenarc/src/components/editor/Preview.tsxindexed
409tamnguyenvan/screenarc/src/components/editor/sidepanel/CameraSettings.tsxindexed
383tamnguyenvan/screenarc/electron/main/features/mouse-tracker.tsindexed
366tamnguyenvan/screenarc/src/components/editor/sidepanel/BackgroundSettings.tsxindexed
345tamnguyenvan/screenarc/src/index.cssindexed
339tamnguyenvan/screenarc/src/types/index.tsindexed