1

Compare commits

...

4 Commits

11 changed files with 1336 additions and 608 deletions

View File

@ -16,6 +16,10 @@
modules = {
btop.cuda = true;
# This has been relocated here from the default config,
# because it forces en-US keyboard layout.
fcitx.enable = true;
hyprland = {
kb-layout = "us";
kb-variant = "altgr-intl";
@ -242,606 +246,5 @@
};
};
};
# This has been relocated here from the default config,
# because it forces en-US keyboard layout.
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5 = {
waylandFrontend = true;
addons = with pkgs; [
fcitx5-gtk
# fcitx5-configtool
catppuccin-fcitx5
libsForQt5.fcitx5-qt # QT5
libsForQt5.fcitx5-chinese-addons
qt6Packages.fcitx5-qt # QT6
qt6Packages.fcitx5-chinese-addons
];
settings = {
inputMethod = {
GroupOrder = {
"0" = "Default";
};
"Groups/0" = {
# Group Name
Name = "Default";
# Layout
"Default Layout" = "us";
# Default Input Method
DefaultIM = "pinyin";
};
"Groups/0/Items/0" = {
# Name
Name = "keyboard-us";
# Layout
# Layout=
};
"Groups/0/Items/1" = {
# Name
Name = "pinyin";
# Layout
# Layout=
};
};
globalOptions = {
Hotkey = {
# Enumerate when press trigger key repeatedly
EnumerateWithTriggerKeys = true;
# Temporally switch between first and current Input Method
# AltTriggerKeys=
# Enumerate Input Method Forward
# EnumerateForwardKeys=
# Enumerate Input Method Backward
# EnumerateBackwardKeys=
# Skip first input method while enumerating
EnumerateSkipFirst = false;
# Enumerate Input Method Group Forward
# EnumerateGroupForwardKeys=
# Enumerate Input Method Group Backward
# EnumerateGroupBackwardKeys=
# Activate Input Method
# ActivateKeys=
# Deactivate Input Method
# DeactivateKeys=
};
"Hotkey/TriggerKeys" = {
"0" = "Super+space";
};
"Hotkey/PrevPage" = {
"0" = "Up";
};
"Hotkey/NextPage" = {
"0" = "Down";
};
"Hotkey/PrevCandidate" = {
"0" = "Shift+Tab";
};
"Hotkey/NextCandidate" = {
"0" = "Tab";
};
"Hotkey/TogglePreedit" = {
"0" = "Control+Alt+P";
};
"Behavior" = {
# Active By Default
ActiveByDefault = false;
# Reset state on Focus In
resetStateWhenFocusIn = "No";
# Share Input State
ShareInputState = "All";
# Show preedit in application
PreeditEnabledByDefault = true;
# Show Input Method Information when switch input method
ShowInputMethodInformation = true;
# Show Input Method Information when changing focus
showInputMethodInformationWhenFocusIn = false;
# Show compact input method information
CompactInputMethodInformation = false;
# Show first input method information
ShowFirstInputMethodInformation = true;
# Default page size
DefaultPageSize = 5;
# Override Xkb Option
OverrideXkbOption = false;
# Custom Xkb Option
# CustomXkbOption=
# Force Enabled Addons
# EnabledAddons=
# Force Disabled Addons
# DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod = true;
# Allow input method in the password field
AllowInputMethodForPassword = false;
# Show preedit text when typing password
ShowPreeditForPassword = false;
# Interval of saving user data in minutes
AutoSavePeriod = 30;
};
};
addons = {
chttrans.globalSection = {
# Translate engine
Engine = "OpenCC";
# Toggle key
# Hotkey=
# Enabled Input Methods
# EnabledIM=
# OpenCC profile for Simplified to Traditional
# OpenCCS2TProfile=
# OpenCC profile for Traditional to Simplified
# OpenCCT2SProfile=
};
classicui.globalSection = {
# Vertical Candidate List
"Vertical Candidate List" = false;
# Use mouse wheel to go to prev or next page
WheelForPaging = true;
# Font
Font = "Sans 12";
# Menu Font
MenuFont = "Sans 12";
# Tray Font
TrayFont = "Sans Bold 10";
# Tray Label Outline Color
TrayOutlineColor = "#000000";
# Tray Label Text Color
TrayTextColor = "#ffffff";
# Prefer Text Icon
PreferTextIcon = false;
# Show Layout Name In Icon
ShowLayoutNameInIcon = true;
# Use input method language to display text
UseInputMethodLanguageToDisplayText = true;
# Theme
Theme = "catppuccin-latte-lavender";
# Dark Theme
DarkTheme = "catppuccin-mocha-lavender";
# Follow system light/dark color scheme
UseDarkTheme = true;
# Follow system accent color if it is supported by theme and desktop
UseAccentColor = true;
# Use Per Screen DPI on X11
PerScreenDPI = true;
# Force font DPI on Wayland
ForceWaylandDPI = 0;
# Enable fractional scale under Wayland
EnableFractionalScale = true;
};
clipboard.globalSection = {
# Trigger Key
# TriggerKey=
# Paste Primary
# PastePrimaryKey=
# Number of entries
"Number of entries" = 5;
};
cloudpinyin.globalSection = {
# Minimum Pinyin Length
MinimumPinyinLength = 4;
# Backend
Backend = "GoogleCN";
# Proxy
# Proxy=
};
cloudpinyin.sections = {
"Toggle Key" = {
"0" = "Control+Alt+Shift+C";
};
};
fullwidth.globalSection = {
# Toggle key
# Hotkey=
};
imselector.globalSection = {
# Trigger Key
# TriggerKey=
# Trigger Key for only current input context
# TriggerKeyLocal=
# Hotkey for switching to the N-th input method
# SwitchKey=
# Hotkey for switching to the N-th input method for only current input context
# SwitchKeyLocal=
};
keyboard.globalSection = {
# Page size
PageSize = 5;
# Enable emoji in hint
EnableEmoji = false;
# Enable emoji in quickphrase
EnableQuickPhraseEmoji = false;
# Choose key modifier
"Choose Modifier" = "Alt";
# Enable hint by default
EnableHintByDefault = false;
# Trigger hint mode for one time
# "One Time Hint Trigger"=
# Use new compose behavior
UseNewComposeBehavior = true;
# Type special characters with long press
EnableLongPress = false;
};
keyboard.sections = {
"PrevCandidate" = {
"0" = "Shift+Tab";
};
"NextCandidate" = {
"0" = "Tab";
};
"Hint Trigger" = {
"0" = "Control+Alt+H";
};
"LongPressBlocklist" = {
"0" = "konsole";
};
};
notifications.globalSection = {
# Hidden Notifications
# HiddenNotifications=
};
pinyin.globalSection = {
# Shuangpin Profile
ShuangpinProfile = "Ziranma";
# Show current shuangpin mode
ShowShuangpinMode = true;
# Page size
PageSize = 7;
# Enable Spell
SpellEnabled = false;
# Enable Symbols
SymbolsEnabled = true;
# Enable Chaizi
ChaiziEnabled = false;
# Enable Characters in Unicode CJK Extension B
ExtBEnabled = true;
# Enable Cloud Pinyin
CloudPinyinEnabled = true;
# Cloud Pinyin Index
CloudPinyinIndex = 2;
# Show animation when Cloud Pinyin is loading
CloudPinyinAnimation = true;
# Always show Cloud Pinyin place holder
KeepCloudPinyinPlaceHolder = false;
# Preedit Mode
PreeditMode = "Composing pinyin";
# Fix embedded preedit cursor at the beginning of the preedit
PreeditCursorPositionAtBeginning = true;
# Show complete pinyin in preedit
PinyinInPreedit = false;
# Enable Prediction
Prediction = false;
# Prediction Size
PredictionSize = 10;
# Action when switching input method
SwitchInputMethodBehavior = "Commit current preedit";
# Forget word
# ForgetWord=
# Select 2nd Candidate
# SecondCandidate=
# Select 3rd Candidate
# ThirdCandidate=
# Use Keypad as Selection key
UseKeypadAsSelection = false;
# Use BackSpace to cancel the selection
BackSpaceToUnselect = true;
# Number of Sentences
"Number of sentence" = 2;
# Prompt long word length when input length over (0 for disable)
LongWordLengthLimit = 4;
# Key to trigger quickphrase
# QuickPhraseKey=
# Use V to trigger quickphrase
VAsQuickphrase = false;
# FirstRun
FirstRun = false;
};
pinyin.sections = {
"PrevPage" = {
"0" = "Up";
};
"NextPage" = {
"0" = "Down";
};
"PrevCandidate" = {
"0" = "Shift+Tab";
};
"NextCandidate" = {
"0" = "Tab";
};
"CurrentCandidate" = {
"0" = "space";
"1" = "KP_Space";
};
"CommitRawInput" = {
"0" = "Return";
"1" = "KP_Enter";
"2" = "Control+Return";
"3" = "Control+KP_Enter";
"4" = "Shift+Return";
"5" = "Shift+KP_Enter";
"6" = "Control+Shift+Return";
"7" = "Control+Shift+KP_Enter";
};
"ChooseCharFromPhrase" = {
"0" = "bracketleft";
"1" = "bracketright";
};
"FilterByStroke" = {
"0" = "grave";
};
"QuickPhraseTriggerRegex" = {
"0" = ".(/|@)$";
"1" = "^(www|bbs|forum|mail|bbs)''.";
"2" = "^(http|https|ftp|telnet|mailto):";
};
"Fuzzy" = {
# ue -> ve
VE_UE = true;
# Common Typo
NG_GN = true;
# Inner Segment (xian -> xi'an)
Inner = true;
# Inner Segment for Short Pinyin (qie -> qi'e)
InnerShort = true;
# Match partial finals (e -> en, eng, ei)
PartialFinal = true;
# Match partial shuangpin if input length is longer than 4
PartialSp = false;
# u <-> v
V_U = false;
# an <-> ang
AN_ANG = false;
# en <-> eng
EN_ENG = false;
# ian <-> iang
IAN_IANG = false;
# in <-> ing
IN_ING = false;
# u <-> ou
U_OU = false;
# uan <-> uang
UAN_UANG = false;
# c <-> ch
C_CH = false;
# f <-> h
F_H = false;
# l <-> n
L_N = false;
# s <-> sh
S_SH = false;
# z <-> zh
Z_ZH = false;
# Correction Layout
Correction = "None";
};
};
punctuation.globalSection = {
# Toggle key
# Hotkey=
# Half width punctuation after latin letter or number
HalfWidthPuncAfterLetterOrNumber = true;
# Type paired punctuations together (e.g. Quote)
TypePairedPunctuationsTogether = false;
# Enabled
Enabled = true;
};
quickphrase.globalSection = {
# Trigger Key
# TriggerKey=
# Choose key modifier
"Choose Modifier" = "None";
# Enable Spell check
Spell = true;
# Fallback Spell check language
FallbackSpellLanguage = "en";
};
spell.sections = {
"ProviderOrder" = {
"0" = "Presage";
"1" = "Custom";
"2" = "Enchant";
};
};
table.globalSection = {
# Modify dictionary
# ModifyDictionaryKey=
# Forget word
# ForgetWord=
# Lookup pinyin
# LookupPinyinKey=
# Enable Prediction
Prediction = false;
# Prediction Size
PredictionSize = 10;
};
unicode.sections = {
"TriggerKey" = {
"0" = "Control+Alt+Shift+U";
};
"DirectUnicodeMode" = {
"0" = "Control+Shift+U";
};
};
waylandim.globalSection = {
# Detect current running application (Need restart)
DetectApplication = true;
};
xcb.globalSection = {
# Allow Overriding System XKB Settings
"Allow Overriding System XKB Settings" = true;
# Always set layout to be only group layout
AlwaysSetToGroupLayout = true;
};
};
};
};
};
};
}

View File

@ -23,15 +23,12 @@
type = lib.types.listOf lib.types.str;
description = "Available wallpapers";
# Run eza -1 | sd ".png" "" | sd "^" "\"" | sd "\$" "\"" | sd "\"\"" "" | wl-copy
# Run eza -1 | sd ".jpg" "" | sd "^" "\"" | sd "\$" "\"" | sd "\"\"" "" | wl-copy
# in ~/NixFlake/wallpapers/
default = [
"Blade-Runner-Atari"
"Blade-Runner-Coca-Cola"
"Blade-Runner-Downwards"
"Blade-Runner-Upwards"
"City-Outlook"
"Cozy-Bedroom"
"Everest-Fishing"
"Foggy-Lake"
"Three-Bears"

View File

@ -25,7 +25,23 @@ in {
packages = with pkgs;
builtins.concatLists [
(lib.optionals neovim.neovide [neovide])
(lib.optionals neovim.neovide [
# TODO: Remove this after 0.15.1 hit nixpkgs
(neovide.overrideAttrs (finalAttrs: prevAttrs: {
version = "0.15.1";
src = fetchFromGitHub {
owner = "neovide";
repo = "neovide";
tag = finalAttrs.version;
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
};
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname src version;
hash = finalAttrs.cargoHash;
};
}))
])
[
(pkgs.ripgrep.override {withPCRE2 = true;})

View File

@ -41,6 +41,9 @@ in {
inherit (config.lib.formats.rasi) mkLiteral;
trans = "rgba(0, 0, 0, 0)";
paddingInner = "5px";
paddingOuter = "10px";
in {
"element-text,element-icon,mode-switcher" = {
background-color = mkLiteral "inherit";
@ -49,7 +52,7 @@ in {
"window" = {
height = "50%";
width = "50%";
width = "33%";
border = mkLiteral "2 solid 2 solid 2 solid 2 solid";
border-radius = 6;
border-color = mkLiteral color.hexS.accent;
@ -160,7 +163,7 @@ in {
wallpaper-menu = let
setWallpaperOnMonitor = name: monitor:
"hyprctl hyprpaper wallpaper "
+ "${monitor},${config.paths.nixflake}/wallpapers/${name}.png";
+ "${monitor},${config.paths.nixflake}/wallpapers/${name}.jpg";
setWallpaperOnMonitors = monitors: name: {
${name} =

View File

@ -0,0 +1,21 @@
{color}: let
mkIcon = name: text: fg: {
inherit name text fg;
};
in [
(mkIcon "Documents" "󰈙" color.hexS.accentHL)
(mkIcon "Downloads" "󰇚" color.hexS.accentHL)
(mkIcon "Games" "󰓓" color.hexS.accentHL)
(mkIcon "GitRepos" "" color.hexS.accentHL)
(mkIcon "Movies" "󰿎" color.hexS.accentHL)
(mkIcon "Music" "󰎄" color.hexS.accentHL)
(mkIcon "NixFlake" "" color.hexS.accentHL)
(mkIcon "Notes" "󰠮" color.hexS.accentHL)
(mkIcon "Pictures" "" color.hexS.accentHL)
(mkIcon "Projects" "󱃷" color.hexS.accentHL)
(mkIcon "Public" "󰒗" color.hexS.accentHL)
(mkIcon "Restic" "󰁯" color.hexS.accentHL)
(mkIcon "Shows" "󰿎" color.hexS.accentHL)
(mkIcon "Unity" "󰚯" color.hexS.accentHL)
(mkIcon "Videos" "" color.hexS.accentHL)
]

View File

@ -0,0 +1,459 @@
{color}: let
mkExt = name: text: fg: {
inherit name text fg;
};
in [
(mkExt "3gp" "" color.hexS.peach)
(mkExt "3mf" "󰆧" color.hexS.overlay1)
(mkExt "7z" "" color.hexS.peach)
(mkExt "aac" "" color.hexS.sapphire)
(mkExt "a" "" color.hexS.rosewater)
(mkExt "adb" "" color.hexS.teal)
(mkExt "ads" "" color.hexS.rosewater)
(mkExt "ai" "" color.hexS.yellow)
(mkExt "aif" "" color.hexS.sapphire)
(mkExt "aiff" "" color.hexS.sapphire)
(mkExt "android" "" color.hexS.green)
(mkExt "ape" "" color.hexS.sapphire)
(mkExt "apk" "" color.hexS.green)
(mkExt "apl" "" color.hexS.peach)
(mkExt "app" "" color.hexS.surface1)
(mkExt "applescript" "" color.hexS.overlay1)
(mkExt "asc" "󰦝" color.hexS.overlay0)
(mkExt "ass" "󰨖" color.hexS.yellow)
(mkExt "astro" "" color.hexS.red)
(mkExt "awk" "" color.hexS.surface2)
(mkExt "azcli" "" color.hexS.overlay0)
(mkExt "bak" "󰁯" color.hexS.overlay1)
(mkExt "bash" "" color.hexS.green)
(mkExt "bat" "" color.hexS.green)
(mkExt "bazel" "" color.hexS.green)
(mkExt "bib" "󱉟" color.hexS.yellow)
(mkExt "bicep" "" color.hexS.sapphire)
(mkExt "bicepparam" "" color.hexS.overlay1)
(mkExt "bin" "" color.hexS.surface1)
(mkExt "blade.php" "" color.hexS.red)
(mkExt "blend" "󰂫" color.hexS.peach)
(mkExt "blp" "󰺾" color.hexS.blue)
(mkExt "bmp" "" color.hexS.overlay1)
(mkExt "bqn" "" color.hexS.overlay0)
(mkExt "brep" "󰻫" color.hexS.green)
(mkExt "bz2" "" color.hexS.peach)
(mkExt "bz3" "" color.hexS.peach)
(mkExt "bz" "" color.hexS.peach)
(mkExt "bzl" "" color.hexS.green)
(mkExt "cache" "" color.hexS.rosewater)
(mkExt "cast" "" color.hexS.peach)
(mkExt "cbl" "" color.hexS.surface2)
(mkExt "cc" "" color.hexS.red)
(mkExt "ccm" "" color.hexS.red)
(mkExt "c" "" color.hexS.blue)
(mkExt "c++" "" color.hexS.red)
(mkExt "cfg" "" color.hexS.overlay1)
(mkExt "cjs" "" color.hexS.yellow)
(mkExt "cljc" "" color.hexS.green)
(mkExt "clj" "" color.hexS.green)
(mkExt "cljd" "" color.hexS.sapphire)
(mkExt "cljs" "" color.hexS.sapphire)
(mkExt "cmake" "" color.hexS.text)
(mkExt "cob" "" color.hexS.surface2)
(mkExt "cobol" "" color.hexS.surface2)
(mkExt "coffee" "" color.hexS.yellow)
(mkExt "🔥" "" color.hexS.peach)
(mkExt "conda" "" color.hexS.green)
(mkExt "conf" "" color.hexS.overlay1)
(mkExt "config.ru" "" color.hexS.surface0)
(mkExt "cow" "󰆚" color.hexS.peach)
(mkExt "cp" "" color.hexS.sapphire)
(mkExt "cpp" "" color.hexS.sapphire)
(mkExt "cppm" "" color.hexS.sapphire)
(mkExt "cpy" "" color.hexS.surface2)
(mkExt "cr" "" color.hexS.rosewater)
(mkExt "crdownload" "" color.hexS.teal)
(mkExt "cs" "󰌛" color.hexS.surface2)
(mkExt "csh" "" color.hexS.surface2)
(mkExt "cshtml" "󱦗" color.hexS.surface2)
(mkExt "cson" "" color.hexS.yellow)
(mkExt "csproj" "󰪮" color.hexS.surface2)
(mkExt "css" "" color.hexS.blue)
(mkExt "csv" "" color.hexS.green)
(mkExt "cts" "" color.hexS.sapphire)
(mkExt "cu" "" color.hexS.green)
(mkExt "cue" "󰲹" color.hexS.red)
(mkExt "cuh" "" color.hexS.overlay1)
(mkExt "cxx" "" color.hexS.sapphire)
(mkExt "cxxm" "" color.hexS.sapphire)
(mkExt "dart" "" color.hexS.surface2)
(mkExt "db" "" color.hexS.rosewater)
(mkExt "d" "" color.hexS.red)
(mkExt "dconf" "" color.hexS.rosewater)
(mkExt "desktop" "" color.hexS.surface1)
(mkExt "diff" "" color.hexS.surface1)
(mkExt "dll" "" color.hexS.crust)
(mkExt "doc" "󰈬" color.hexS.surface2)
(mkExt "Dockerfile" "󰡨" color.hexS.blue)
(mkExt "docx" "󰈬" color.hexS.surface2)
(mkExt "dot" "󱁉" color.hexS.surface2)
(mkExt "download" "" color.hexS.teal)
(mkExt "drl" "" color.hexS.maroon)
(mkExt "dropbox" "" color.hexS.overlay0)
(mkExt "d.ts" "" color.hexS.peach)
(mkExt "dump" "" color.hexS.rosewater)
(mkExt "dwg" "󰻫" color.hexS.green)
(mkExt "dxf" "󰻫" color.hexS.green)
(mkExt "ebook" "" color.hexS.peach)
(mkExt "ebuild" "" color.hexS.surface1)
(mkExt "edn" "" color.hexS.sapphire)
(mkExt "eex" "" color.hexS.overlay1)
(mkExt "ejs" "" color.hexS.yellow)
(mkExt "elc" "" color.hexS.overlay1)
(mkExt "el" "" color.hexS.overlay1)
(mkExt "elf" "" color.hexS.surface1)
(mkExt "elm" "" color.hexS.sapphire)
(mkExt "eln" "" color.hexS.overlay1)
(mkExt "env" "" color.hexS.yellow)
(mkExt "eot" "" color.hexS.rosewater)
(mkExt "epp" "" color.hexS.peach)
(mkExt "epub" "" color.hexS.peach)
(mkExt "erb" "" color.hexS.surface0)
(mkExt "erl" "" color.hexS.red)
(mkExt "ex" "" color.hexS.overlay1)
(mkExt "exe" "" color.hexS.surface1)
(mkExt "exs" "" color.hexS.overlay1)
(mkExt "f3d" "󰻫" color.hexS.green)
(mkExt "f90" "󱈚" color.hexS.surface2)
(mkExt "fbx" "󰆧" color.hexS.overlay1)
(mkExt "fcbak" "" color.hexS.red)
(mkExt "fcmacro" "" color.hexS.red)
(mkExt "fcmat" "" color.hexS.red)
(mkExt "f#" "" color.hexS.sapphire)
(mkExt "fcparam" "" color.hexS.red)
(mkExt "fcscript" "" color.hexS.red)
(mkExt "fcstd1" "" color.hexS.red)
(mkExt "fcstd" "" color.hexS.red)
(mkExt "fctb" "" color.hexS.red)
(mkExt "fctl" "" color.hexS.red)
(mkExt "fdmdownload" "" color.hexS.teal)
(mkExt "fish" "" color.hexS.surface2)
(mkExt "flac" "" color.hexS.overlay0)
(mkExt "flc" "" color.hexS.rosewater)
(mkExt "flf" "" color.hexS.rosewater)
(mkExt "fnl" "" color.hexS.yellow)
(mkExt "fodg" "" color.hexS.yellow)
(mkExt "fodp" "" color.hexS.peach)
(mkExt "fods" "" color.hexS.green)
(mkExt "fodt" "" color.hexS.sapphire)
(mkExt "fs" "" color.hexS.sapphire)
(mkExt "fsi" "" color.hexS.sapphire)
(mkExt "fsscript" "" color.hexS.sapphire)
(mkExt "fsx" "" color.hexS.sapphire)
(mkExt "gcode" "󰐫" color.hexS.overlay0)
(mkExt "gd" "" color.hexS.overlay1)
(mkExt "gemspec" "" color.hexS.surface0)
(mkExt "gif" "" color.hexS.overlay1)
(mkExt "git" "" color.hexS.peach)
(mkExt "glb" "" color.hexS.peach)
(mkExt "gleam" "" color.hexS.accentHL)
(mkExt "gnumakefile" "" color.hexS.overlay1)
(mkExt "go" "" color.hexS.sapphire)
(mkExt "godot" "" color.hexS.overlay1)
(mkExt "gpr" "" color.hexS.accent)
(mkExt "gql" "" color.hexS.red)
(mkExt "gradle" "" color.hexS.surface2)
(mkExt "graphql" "" color.hexS.red)
(mkExt "gresource" "" color.hexS.rosewater)
(mkExt "gv" "󱁉" color.hexS.surface2)
(mkExt "gz" "" color.hexS.peach)
(mkExt "haml" "" color.hexS.rosewater)
(mkExt "hbs" "" color.hexS.peach)
(mkExt "h" "" color.hexS.overlay1)
(mkExt "heex" "" color.hexS.overlay1)
(mkExt "hex" "" color.hexS.overlay0)
(mkExt "hh" "" color.hexS.overlay1)
(mkExt "hpp" "" color.hexS.overlay1)
(mkExt "hrl" "" color.hexS.red)
(mkExt "hs" "" color.hexS.overlay1)
(mkExt "htm" "" color.hexS.peach)
(mkExt "html" "" color.hexS.peach)
(mkExt "http" "" color.hexS.blue)
(mkExt "huff" "󰡘" color.hexS.surface2)
(mkExt "hurl" "" color.hexS.red)
(mkExt "hx" "" color.hexS.peach)
(mkExt "hxx" "" color.hexS.overlay1)
(mkExt "ical" "" color.hexS.surface0)
(mkExt "icalendar" "" color.hexS.surface0)
(mkExt "ico" "" color.hexS.yellow)
(mkExt "ics" "" color.hexS.surface0)
(mkExt "ifb" "" color.hexS.surface0)
(mkExt "ifc" "󰻫" color.hexS.green)
(mkExt "ige" "󰻫" color.hexS.green)
(mkExt "iges" "󰻫" color.hexS.green)
(mkExt "igs" "󰻫" color.hexS.green)
(mkExt "image" "" color.hexS.flamingo)
(mkExt "img" "" color.hexS.flamingo)
(mkExt "import" "" color.hexS.rosewater)
(mkExt "info" "" color.hexS.yellow)
(mkExt "ini" "" color.hexS.overlay1)
(mkExt "ino" "" color.hexS.sapphire)
(mkExt "ipynb" "" color.hexS.peach)
(mkExt "iso" "" color.hexS.flamingo)
(mkExt "ixx" "" color.hexS.sapphire)
(mkExt "java" "" color.hexS.red)
(mkExt "jl" "" color.hexS.overlay1)
(mkExt "jpeg" "" color.hexS.overlay1)
(mkExt "jpg" "" color.hexS.overlay1)
(mkExt "js" "" color.hexS.yellow)
(mkExt "json5" "" color.hexS.yellow)
(mkExt "jsonc" "" color.hexS.yellow)
(mkExt "json" "" color.hexS.yellow)
(mkExt "jsx" "" color.hexS.sapphire)
(mkExt "jwmrc" "" color.hexS.overlay0)
(mkExt "jxl" "" color.hexS.overlay1)
(mkExt "kbx" "󰯄" color.hexS.overlay0)
(mkExt "kdb" "" color.hexS.green)
(mkExt "kdbx" "" color.hexS.green)
(mkExt "kdenlive" "" color.hexS.blue)
(mkExt "kdenlivetitle" "" color.hexS.blue)
(mkExt "kicad_dru" "" color.hexS.rosewater)
(mkExt "kicad_mod" "" color.hexS.rosewater)
(mkExt "kicad_pcb" "" color.hexS.rosewater)
(mkExt "kicad_prl" "" color.hexS.rosewater)
(mkExt "kicad_pro" "" color.hexS.rosewater)
(mkExt "kicad_sch" "" color.hexS.rosewater)
(mkExt "kicad_sym" "" color.hexS.rosewater)
(mkExt "kicad_wks" "" color.hexS.rosewater)
(mkExt "ko" "" color.hexS.rosewater)
(mkExt "kpp" "" color.hexS.accent)
(mkExt "kra" "" color.hexS.accent)
(mkExt "krz" "" color.hexS.accent)
(mkExt "ksh" "" color.hexS.surface2)
(mkExt "kt" "" color.hexS.overlay0)
(mkExt "kts" "" color.hexS.overlay0)
(mkExt "lck" "" color.hexS.subtext1)
(mkExt "leex" "" color.hexS.overlay1)
(mkExt "less" "" color.hexS.surface1)
(mkExt "lff" "" color.hexS.rosewater)
(mkExt "lhs" "" color.hexS.overlay1)
(mkExt "lib" "" color.hexS.crust)
(mkExt "license" "" color.hexS.yellow)
(mkExt "liquid" "" color.hexS.green)
(mkExt "lock" "" color.hexS.subtext1)
(mkExt "log" "󰌱" color.hexS.text)
(mkExt "lrc" "󰨖" color.hexS.yellow)
(mkExt "luac" "" color.hexS.sapphire)
(mkExt "lua" "" color.hexS.sapphire)
(mkExt "luau" "" color.hexS.blue)
(mkExt "m3u8" "󰲹" color.hexS.red)
(mkExt "m3u" "󰲹" color.hexS.red)
(mkExt "m4a" "" color.hexS.sapphire)
(mkExt "m4v" "" color.hexS.peach)
(mkExt "magnet" "" color.hexS.surface1)
(mkExt "makefile" "" color.hexS.overlay1)
(mkExt "markdown" "" color.hexS.text)
(mkExt "material" "󰔉" color.hexS.red)
(mkExt "m" "" color.hexS.blue)
(mkExt "md5" "󰕥" color.hexS.overlay1)
(mkExt "md" "" color.hexS.text)
(mkExt "mdx" "" color.hexS.sapphire)
(mkExt "mint" "󰌪" color.hexS.green)
(mkExt "mjs" "" color.hexS.yellow)
(mkExt "mk" "" color.hexS.overlay1)
(mkExt "mkv" "" color.hexS.peach)
(mkExt "ml" "" color.hexS.peach)
(mkExt "mli" "" color.hexS.peach)
(mkExt "mm" "" color.hexS.sapphire)
(mkExt "mobi" "" color.hexS.peach)
(mkExt "mo" "" color.hexS.overlay1)
(mkExt "mojo" "" color.hexS.peach)
(mkExt "mov" "" color.hexS.peach)
(mkExt "mp3" "" color.hexS.sapphire)
(mkExt "mp4" "" color.hexS.peach)
(mkExt "mpp" "" color.hexS.sapphire)
(mkExt "msf" "" color.hexS.blue)
(mkExt "mts" "" color.hexS.sapphire)
(mkExt "mustache" "" color.hexS.peach)
(mkExt "nfo" "" color.hexS.yellow)
(mkExt "nim" "" color.hexS.yellow)
(mkExt "nix" "" color.hexS.sapphire)
(mkExt "nswag" "" color.hexS.green)
(mkExt "nu" ">" color.hexS.green)
(mkExt "obj" "󰆧" color.hexS.overlay1)
(mkExt "o" "" color.hexS.surface1)
(mkExt "odf" "" color.hexS.red)
(mkExt "odg" "" color.hexS.yellow)
(mkExt "odp" "" color.hexS.peach)
(mkExt "ods" "" color.hexS.green)
(mkExt "odt" "" color.hexS.sapphire)
(mkExt "ogg" "" color.hexS.overlay0)
(mkExt "opus" "" color.hexS.overlay0)
(mkExt "org" "" color.hexS.teal)
(mkExt "otf" "" color.hexS.rosewater)
(mkExt "out" "" color.hexS.surface1)
(mkExt "part" "" color.hexS.teal)
(mkExt "patch" "" color.hexS.surface1)
(mkExt "pck" "" color.hexS.overlay1)
(mkExt "pcm" "" color.hexS.overlay0)
(mkExt "pdf" "" color.hexS.surface2)
(mkExt "php" "" color.hexS.overlay1)
(mkExt "pl" "" color.hexS.sapphire)
(mkExt "pls" "󰲹" color.hexS.red)
(mkExt "ply" "󰆧" color.hexS.overlay1)
(mkExt "pm" "" color.hexS.sapphire)
(mkExt "png" "" color.hexS.overlay1)
(mkExt "po" "" color.hexS.sapphire)
(mkExt "pot" "" color.hexS.sapphire)
(mkExt "pp" "" color.hexS.peach)
(mkExt "ppt" "󰈧" color.hexS.red)
(mkExt "pptx" "󰈧" color.hexS.red)
(mkExt "prisma" "" color.hexS.overlay0)
(mkExt "pro" "" color.hexS.yellow)
(mkExt "ps1" "󰨊" color.hexS.overlay0)
(mkExt "psb" "" color.hexS.sapphire)
(mkExt "psd1" "󰨊" color.hexS.overlay1)
(mkExt "psd" "" color.hexS.sapphire)
(mkExt "psm1" "󰨊" color.hexS.overlay1)
(mkExt "pub" "󰷖" color.hexS.yellow)
(mkExt "pxd" "" color.hexS.blue)
(mkExt "pxi" "" color.hexS.blue)
(mkExt "pyc" "" color.hexS.yellow)
(mkExt "py" "" color.hexS.yellow)
(mkExt "pyd" "" color.hexS.yellow)
(mkExt "pyi" "" color.hexS.yellow)
(mkExt "pyo" "" color.hexS.yellow)
(mkExt "pyw" "" color.hexS.blue)
(mkExt "pyx" "" color.hexS.blue)
(mkExt "qm" "" color.hexS.sapphire)
(mkExt "qml" "" color.hexS.green)
(mkExt "qrc" "" color.hexS.green)
(mkExt "qss" "" color.hexS.green)
(mkExt "query" "" color.hexS.green)
(mkExt "rake" "" color.hexS.surface0)
(mkExt "rar" "" color.hexS.peach)
(mkExt "razor" "󱦘" color.hexS.surface2)
(mkExt "rb" "" color.hexS.surface0)
(mkExt "r" "󰟔" color.hexS.overlay0)
(mkExt "R" "󰟔" color.hexS.overlay0)
(mkExt "res" "" color.hexS.red)
(mkExt "resi" "" color.hexS.red)
(mkExt "rlib" "" color.hexS.peach)
(mkExt "rmd" "" color.hexS.sapphire)
(mkExt "rproj" "󰗆" color.hexS.green)
(mkExt "rs" "" color.hexS.peach)
(mkExt "rss" "" color.hexS.peach)
(mkExt "sass" "" color.hexS.red)
(mkExt "sbt" "" color.hexS.red)
(mkExt "scad" "" color.hexS.yellow)
(mkExt "scala" "" color.hexS.red)
(mkExt "sc" "" color.hexS.red)
(mkExt "scm" "󰘧" color.hexS.rosewater)
(mkExt "scss" "" color.hexS.red)
(mkExt "sha1" "󰕥" color.hexS.overlay1)
(mkExt "sha224" "󰕥" color.hexS.overlay1)
(mkExt "sha256" "󰕥" color.hexS.overlay1)
(mkExt "sha384" "󰕥" color.hexS.overlay1)
(mkExt "sha512" "󰕥" color.hexS.overlay1)
(mkExt "sh" "" color.hexS.surface2)
(mkExt "signature" "λ" color.hexS.peach)
(mkExt "sig" "λ" color.hexS.peach)
(mkExt "skp" "󰻫" color.hexS.green)
(mkExt "sldasm" "󰻫" color.hexS.green)
(mkExt "sldprt" "󰻫" color.hexS.green)
(mkExt "slim" "" color.hexS.peach)
(mkExt "sln" "" color.hexS.overlay0)
(mkExt "slvs" "󰻫" color.hexS.green)
(mkExt "sml" "λ" color.hexS.peach)
(mkExt "so" "" color.hexS.rosewater)
(mkExt "sol" "" color.hexS.sapphire)
(mkExt "spec.js" "" color.hexS.yellow)
(mkExt "spec.jsx" "" color.hexS.sapphire)
(mkExt "spec.ts" "" color.hexS.sapphire)
(mkExt "spec.tsx" "" color.hexS.surface2)
(mkExt "sql" "" color.hexS.rosewater)
(mkExt "sqlite3" "" color.hexS.rosewater)
(mkExt "sqlite" "" color.hexS.rosewater)
(mkExt "srt" "󰨖" color.hexS.yellow)
(mkExt "ssa" "󰨖" color.hexS.yellow)
(mkExt "ste" "󰻫" color.hexS.green)
(mkExt "step" "󰻫" color.hexS.green)
(mkExt "stl" "󰆧" color.hexS.overlay1)
(mkExt "stp" "󰻫" color.hexS.green)
(mkExt "strings" "" color.hexS.sapphire)
(mkExt "styl" "" color.hexS.green)
(mkExt "sub" "󰨖" color.hexS.yellow)
(mkExt "sublime" "" color.hexS.peach)
(mkExt "suo" "" color.hexS.overlay0)
(mkExt "sv" "󰍛" color.hexS.green)
(mkExt "svelte" "" color.hexS.peach)
(mkExt "svg" "󰜡" color.hexS.peach)
(mkExt "svh" "󰍛" color.hexS.green)
(mkExt "swift" "" color.hexS.peach)
(mkExt "tbc" "󰛓" color.hexS.surface2)
(mkExt "tcl" "󰛓" color.hexS.surface2)
(mkExt "t" "" color.hexS.sapphire)
(mkExt "templ" "" color.hexS.yellow)
(mkExt "terminal" "" color.hexS.green)
(mkExt "test.js" "" color.hexS.yellow)
(mkExt "test.jsx" "" color.hexS.sapphire)
(mkExt "test.ts" "" color.hexS.sapphire)
(mkExt "test.tsx" "" color.hexS.surface2)
(mkExt "tex" "" color.hexS.surface1)
(mkExt "tf" "" color.hexS.surface2)
(mkExt "tfvars" "" color.hexS.surface2)
(mkExt "tgz" "" color.hexS.peach)
(mkExt "tmux" "" color.hexS.green)
(mkExt "toml" "" color.hexS.surface2)
(mkExt "torrent" "" color.hexS.teal)
(mkExt "tres" "" color.hexS.overlay1)
(mkExt "tscn" "" color.hexS.overlay1)
(mkExt "ts" "" color.hexS.sapphire)
(mkExt "tsconfig" "" color.hexS.peach)
(mkExt "tsx" "" color.hexS.surface2)
(mkExt "ttf" "" color.hexS.rosewater)
(mkExt "twig" "" color.hexS.green)
(mkExt "txt" "󰈙" color.hexS.green)
(mkExt "txz" "" color.hexS.peach)
(mkExt "typ" "" color.hexS.sky)
(mkExt "typoscript" "" color.hexS.peach)
(mkExt "ui" "" color.hexS.overlay0)
(mkExt "vala" "" color.hexS.surface2)
(mkExt "v" "󰍛" color.hexS.green)
(mkExt "vh" "󰍛" color.hexS.green)
(mkExt "vhd" "󰍛" color.hexS.green)
(mkExt "vhdl" "󰍛" color.hexS.green)
(mkExt "vi" "" color.hexS.yellow)
(mkExt "vim" "" color.hexS.green)
(mkExt "vsh" "" color.hexS.overlay1)
(mkExt "vsix" "" color.hexS.overlay0)
(mkExt "vue" "" color.hexS.green)
(mkExt "wasm" "" color.hexS.surface2)
(mkExt "wav" "" color.hexS.sapphire)
(mkExt "webmanifest" "" color.hexS.yellow)
(mkExt "webm" "" color.hexS.peach)
(mkExt "webpack" "󰜫" color.hexS.sapphire)
(mkExt "webp" "" color.hexS.overlay1)
(mkExt "wma" "" color.hexS.sapphire)
(mkExt "woff2" "" color.hexS.rosewater)
(mkExt "woff" "" color.hexS.rosewater)
(mkExt "wrl" "󰆧" color.hexS.overlay1)
(mkExt "wrz" "󰆧" color.hexS.overlay1)
(mkExt "wvc" "" color.hexS.sapphire)
(mkExt "wv" "" color.hexS.sapphire)
(mkExt "xaml" "󰙳" color.hexS.surface2)
(mkExt "xcf" "" color.hexS.surface2)
(mkExt "x" "" color.hexS.blue)
(mkExt "xcplayground" "" color.hexS.peach)
(mkExt "xcstrings" "" color.hexS.sapphire)
(mkExt "xls" "󰈛" color.hexS.surface2)
(mkExt "xlsx" "󰈛" color.hexS.surface2)
(mkExt "xm" "" color.hexS.sapphire)
(mkExt "xml" "󰗀" color.hexS.peach)
(mkExt "xpi" "" color.hexS.peach)
(mkExt "xul" "" color.hexS.peach)
(mkExt "xz" "" color.hexS.peach)
(mkExt "yaml" "" color.hexS.overlay1)
(mkExt "yml" "" color.hexS.overlay1)
(mkExt "zig" "" color.hexS.peach)
(mkExt "zip" "" color.hexS.peach)
(mkExt "zsh" "" color.hexS.green)
(mkExt "zst" "" color.hexS.peach)
]

View File

@ -0,0 +1,182 @@
{color}: let
mkFile = name: icon: fg: {
inherit name icon fg;
};
in [
(mkFile "avif" "" color.hexS.overlay1)
(mkFile ".babelrc" "" color.hexS.yellow)
(mkFile ".bash_profile" "" color.hexS.green)
(mkFile ".bashrc" "" color.hexS.green)
(mkFile "brewfile" "" color.hexS.surface0)
(mkFile "bspwmrc" "" color.hexS.surface0)
(mkFile "build" "" color.hexS.green)
(mkFile "build.gradle" "" color.hexS.surface2)
(mkFile "build.zig.zon" "" color.hexS.peach)
(mkFile "bun.lockb" "" color.hexS.rosewater)
(mkFile "cantorrc" "" color.hexS.blue)
(mkFile "checkhealth" "󰓙" color.hexS.blue)
(mkFile ".clang-format" "" color.hexS.overlay1)
(mkFile ".clang-tidy" "" color.hexS.overlay1)
(mkFile "cmakelists.txt" "" color.hexS.text)
(mkFile "code_of_conduct" "" color.hexS.red)
(mkFile "code_of_conduct.md" "" color.hexS.red)
(mkFile ".codespellrc" "󰓆" color.hexS.green)
(mkFile "commit_editmsg" "" color.hexS.peach)
(mkFile "commitlint.config.js" "󰜘" color.hexS.teal)
(mkFile "commitlint.config.ts" "󰜘" color.hexS.teal)
(mkFile "compose.yaml" "󰡨" color.hexS.blue)
(mkFile "compose.yml" "󰡨" color.hexS.blue)
(mkFile ".condarc" "" color.hexS.green)
(mkFile "config" "" color.hexS.overlay1)
(mkFile "containerfile" "󰡨" color.hexS.blue)
(mkFile "copying" "" color.hexS.yellow)
(mkFile "copying.lesser" "" color.hexS.yellow)
(mkFile "docker-compose.yaml" "󰡨" color.hexS.blue)
(mkFile "docker-compose.yml" "󰡨" color.hexS.blue)
(mkFile "dockerfile" "󰡨" color.hexS.blue)
(mkFile ".dockerignore" "󰡨" color.hexS.blue)
(mkFile ".ds_store" "" color.hexS.surface1)
(mkFile ".editorconfig" "" color.hexS.rosewater)
(mkFile ".env" "" color.hexS.yellow)
(mkFile "eslint.config.cjs" "" color.hexS.surface2)
(mkFile "eslint.config.js" "" color.hexS.surface2)
(mkFile "eslint.config.mjs" "" color.hexS.surface2)
(mkFile "eslint.config.ts" "" color.hexS.surface2)
(mkFile ".eslintignore" "" color.hexS.surface2)
(mkFile ".eslintrc" "" color.hexS.surface2)
(mkFile "ext_typoscript_setup.txt" "" color.hexS.peach)
(mkFile "favicon.ico" "" color.hexS.yellow)
(mkFile "fp-info-cache" "" color.hexS.rosewater)
(mkFile "fp-lib-table" "" color.hexS.rosewater)
(mkFile "FreeCAD.conf" "" color.hexS.red)
(mkFile "gemfile$" "" color.hexS.surface0)
(mkFile ".gitattributes" "" color.hexS.peach)
(mkFile ".git-blame-ignore-revs" "" color.hexS.peach)
(mkFile ".gitconfig" "" color.hexS.peach)
(mkFile ".gitignore" "" color.hexS.peach)
(mkFile ".gitlab-ci.yml" "" color.hexS.peach)
(mkFile ".gitmodules" "" color.hexS.peach)
(mkFile "gnumakefile" "" color.hexS.overlay1)
(mkFile "go.mod" "" color.hexS.sapphire)
(mkFile "go.sum" "" color.hexS.sapphire)
(mkFile "go.work" "" color.hexS.sapphire)
(mkFile "gradle.properties" "" color.hexS.surface2)
(mkFile "gradlew" "" color.hexS.surface2)
(mkFile "gradle-wrapper.properties" "" color.hexS.surface2)
(mkFile "groovy" "" color.hexS.surface2)
(mkFile "gruntfile.babel.js" "" color.hexS.peach)
(mkFile "gruntfile.coffee" "" color.hexS.peach)
(mkFile "gruntfile.js" "" color.hexS.peach)
(mkFile "gruntfile.ts" "" color.hexS.peach)
(mkFile ".gtkrc-2.0" "" color.hexS.rosewater)
(mkFile "gtkrc" "" color.hexS.rosewater)
(mkFile "gulpfile.babel.js" "" color.hexS.red)
(mkFile "gulpfile.coffee" "" color.hexS.red)
(mkFile "gulpfile.js" "" color.hexS.red)
(mkFile "gulpfile.ts" "" color.hexS.red)
(mkFile ".gvimrc" "" color.hexS.green)
(mkFile "_gvimrc" "" color.hexS.green)
(mkFile "hypridle.conf" "" color.hexS.sapphire)
(mkFile "hyprland.conf" "" color.hexS.sapphire)
(mkFile "hyprlock.conf" "" color.hexS.sapphire)
(mkFile "hyprpaper.conf" "" color.hexS.sapphire)
(mkFile "i18n.config.js" "󰗊" color.hexS.overlay1)
(mkFile "i18n.config.ts" "󰗊" color.hexS.overlay1)
(mkFile "i3blocks.conf" "" color.hexS.rosewater)
(mkFile "i3status.conf" "" color.hexS.rosewater)
(mkFile "ionic.config.json" "" color.hexS.blue)
(mkFile ".justfile" "" color.hexS.overlay1)
(mkFile "justfile" "" color.hexS.overlay1)
(mkFile "kalgebrarc" "" color.hexS.blue)
(mkFile "kdeglobals" "" color.hexS.blue)
(mkFile "kdenlive-layoutsrc" "" color.hexS.blue)
(mkFile "kdenliverc" "" color.hexS.blue)
(mkFile "kritadisplayrc" "" color.hexS.accent)
(mkFile "kritarc" "" color.hexS.accent)
(mkFile "license" "" color.hexS.yellow)
(mkFile "license.md" "" color.hexS.yellow)
(mkFile ".luacheckrc" "" color.hexS.blue)
(mkFile ".luaurc" "" color.hexS.blue)
(mkFile "lxde-rc.xml" "" color.hexS.overlay2)
(mkFile "lxqt.conf" "" color.hexS.blue)
(mkFile ".mailmap" "󰊢" color.hexS.peach)
(mkFile "makefile" "" color.hexS.overlay1)
(mkFile "mix.lock" "" color.hexS.overlay1)
(mkFile "mpv.conf" "" color.hexS.accentText)
(mkFile ".nanorc" "" color.hexS.surface0)
(mkFile "node_modules" "" color.hexS.red)
(mkFile ".npmignore" "" color.hexS.red)
(mkFile ".npmrc" "" color.hexS.red)
(mkFile "nuxt.config.cjs" "󱄆" color.hexS.green)
(mkFile "nuxt.config.js" "󱄆" color.hexS.green)
(mkFile "nuxt.config.mjs" "󱄆" color.hexS.green)
(mkFile "nuxt.config.ts" "󱄆" color.hexS.green)
(mkFile ".nuxtrc" "󱄆" color.hexS.green)
(mkFile ".nvmrc" "" color.hexS.green)
(mkFile "package.json" "" color.hexS.red)
(mkFile "package-lock.json" "" color.hexS.surface0)
(mkFile "PKGBUILD" "" color.hexS.blue)
(mkFile "platformio.ini" "" color.hexS.peach)
(mkFile "pom.xml" "" color.hexS.surface0)
(mkFile ".pre-commit-config.yaml" "󰛢" color.hexS.peach)
(mkFile "prettier.config.cjs" "" color.hexS.blue)
(mkFile "prettier.config.js" "" color.hexS.blue)
(mkFile "prettier.config.mjs" "" color.hexS.blue)
(mkFile "prettier.config.ts" "" color.hexS.blue)
(mkFile ".prettierignore" "" color.hexS.blue)
(mkFile ".prettierrc.cjs" "" color.hexS.blue)
(mkFile ".prettierrc" "" color.hexS.blue)
(mkFile ".prettierrc.js" "" color.hexS.blue)
(mkFile ".prettierrc.json5" "" color.hexS.blue)
(mkFile ".prettierrc.json" "" color.hexS.blue)
(mkFile ".prettierrc.mjs" "" color.hexS.blue)
(mkFile ".prettierrc.toml" "" color.hexS.blue)
(mkFile ".prettierrc.yaml" "" color.hexS.blue)
(mkFile ".prettierrc.yml" "" color.hexS.blue)
(mkFile "procfile" "" color.hexS.overlay1)
(mkFile "PrusaSlicerGcodeViewer.ini" "" color.hexS.peach)
(mkFile "PrusaSlicer.ini" "" color.hexS.peach)
(mkFile ".pylintrc" "" color.hexS.overlay1)
(mkFile "py.typed" "" color.hexS.yellow)
(mkFile "QtProject.conf" "" color.hexS.green)
(mkFile "rakefile" "" color.hexS.surface0)
(mkFile "readme" "󰂺" color.hexS.rosewater)
(mkFile "readme.md" "󰂺" color.hexS.rosewater)
(mkFile "rmd" "" color.hexS.sapphire)
(mkFile "robots.txt" "󰚩" color.hexS.overlay0)
(mkFile "security" "󰒃" color.hexS.subtext1)
(mkFile "security.md" "󰒃" color.hexS.subtext1)
(mkFile "settings.gradle" "" color.hexS.surface2)
(mkFile ".settings.json" "" color.hexS.overlay0)
(mkFile ".SRCINFO" "󰣇" color.hexS.blue)
(mkFile "svelte.config.js" "" color.hexS.peach)
(mkFile "sxhkdrc" "" color.hexS.surface0)
(mkFile "sym-lib-table" "" color.hexS.rosewater)
(mkFile "tailwind.config.js" "󱏿" color.hexS.sapphire)
(mkFile "tailwind.config.mjs" "󱏿" color.hexS.sapphire)
(mkFile "tailwind.config.ts" "󱏿" color.hexS.sapphire)
(mkFile "tmux.conf" "" color.hexS.green)
(mkFile "tmux.conf.local" "" color.hexS.green)
(mkFile "tsconfig.json" "" color.hexS.sapphire)
(mkFile "unlicense" "" color.hexS.yellow)
(mkFile "vagrantfile$" "" color.hexS.overlay0)
(mkFile "vercel.json" "" color.hexS.rosewater)
(mkFile ".vimrc" "" color.hexS.green)
(mkFile "_vimrc" "" color.hexS.green)
(mkFile "vlcrc" "󰕼" color.hexS.peach)
(mkFile "webpack" "󰜫" color.hexS.sapphire)
(mkFile "weston.ini" "" color.hexS.yellow)
(mkFile "workspace" "" color.hexS.green)
(mkFile ".Xauthority" "" color.hexS.peach)
(mkFile ".xinitrc" "" color.hexS.peach)
(mkFile "xmobarrc" "" color.hexS.red)
(mkFile "xmobarrc.hs" "" color.hexS.red)
(mkFile "xmonad.hs" "" color.hexS.red)
(mkFile "xorg.conf" "" color.hexS.peach)
(mkFile ".Xresources" "" color.hexS.peach)
(mkFile ".xsession" "" color.hexS.peach)
(mkFile "xsettingsd.conf" "" color.hexS.peach)
(mkFile ".zprofile" "" color.hexS.green)
(mkFile ".zshenv" "" color.hexS.green)
(mkFile ".zshrc" "" color.hexS.green)
]

View File

@ -0,0 +1,25 @@
{
lib,
nixosConfig,
color,
}: let
mkFiletype = name: fg: {
inherit name fg;
};
mkFiletypes = names: fg: names |> mkFiletype fg;
in
lib.mkMerge [
[
(mkFiletype "*" color.hexS.text) # Files default
(mkFiletype "*/" color.hexS.lavender) # Directories default
(mkFiletype "application/*zip" color.hexS.accentHL)
(mkFiletype "application/x-(mkFiletypetarbzip*7z-compressedxzrar)" color.hexS.accentHL)
(mkFiletype "application/pdf" color.hexS.green)
]
(mkFiletypes nixosConfig.modules.mime.textTypes color.hexS.text)
(mkFiletypes nixosConfig.modules.mime.imageTypes color.hexS.teal)
(mkFiletypes nixosConfig.modules.mime.videoTypes color.hexS.yellow)
(mkFiletypes nixosConfig.modules.mime.audioTypes color.hexS.sky)
]

View File

@ -3,6 +3,7 @@
./bootloader
./desktopportal
./docker
./fcitx
./fonts
./impermanence
./mime

View File

@ -0,0 +1,614 @@
{
config,
lib,
mylib,
pkgs,
...
}: let
inherit (config.modules) fcitx;
in {
options.modules.fcitx = import ./options.nix {inherit lib mylib;};
config = lib.mkIf fcitx.enable {
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5 = {
waylandFrontend = true;
addons = with pkgs; [
fcitx5-gtk
# fcitx5-configtool
catppuccin-fcitx5
libsForQt5.fcitx5-qt # QT5
libsForQt5.fcitx5-chinese-addons
qt6Packages.fcitx5-qt # QT6
qt6Packages.fcitx5-chinese-addons
];
settings = {
inputMethod = {
GroupOrder = {
"0" = "Default";
};
"Groups/0" = {
# Group Name
Name = "Default";
# Layout
"Default Layout" = "us";
# Default Input Method
DefaultIM = "pinyin";
};
"Groups/0/Items/0" = {
# Name
Name = "keyboard-us";
# Layout
# Layout=
};
"Groups/0/Items/1" = {
# Name
Name = "pinyin";
# Layout
# Layout=
};
};
globalOptions = {
Hotkey = {
# Enumerate when press trigger key repeatedly
EnumerateWithTriggerKeys = true;
# Temporally switch between first and current Input Method
# AltTriggerKeys=
# Enumerate Input Method Forward
# EnumerateForwardKeys=
# Enumerate Input Method Backward
# EnumerateBackwardKeys=
# Skip first input method while enumerating
EnumerateSkipFirst = false;
# Enumerate Input Method Group Forward
# EnumerateGroupForwardKeys=
# Enumerate Input Method Group Backward
# EnumerateGroupBackwardKeys=
# Activate Input Method
# ActivateKeys=
# Deactivate Input Method
# DeactivateKeys=
};
"Hotkey/TriggerKeys" = {
"0" = "Super+space";
};
"Hotkey/PrevPage" = {
"0" = "Up";
};
"Hotkey/NextPage" = {
"0" = "Down";
};
"Hotkey/PrevCandidate" = {
"0" = "Shift+Tab";
};
"Hotkey/NextCandidate" = {
"0" = "Tab";
};
"Hotkey/TogglePreedit" = {
"0" = "Control+Alt+P";
};
"Behavior" = {
# Active By Default
ActiveByDefault = false;
# Reset state on Focus In
resetStateWhenFocusIn = "No";
# Share Input State
ShareInputState = "All";
# Show preedit in application
PreeditEnabledByDefault = true;
# Show Input Method Information when switch input method
ShowInputMethodInformation = true;
# Show Input Method Information when changing focus
showInputMethodInformationWhenFocusIn = false;
# Show compact input method information
CompactInputMethodInformation = false;
# Show first input method information
ShowFirstInputMethodInformation = true;
# Default page size
DefaultPageSize = 5;
# Override Xkb Option
OverrideXkbOption = false;
# Custom Xkb Option
# CustomXkbOption=
# Force Enabled Addons
# EnabledAddons=
# Force Disabled Addons
# DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod = true;
# Allow input method in the password field
AllowInputMethodForPassword = false;
# Show preedit text when typing password
ShowPreeditForPassword = false;
# Interval of saving user data in minutes
AutoSavePeriod = 30;
};
};
addons = {
chttrans.globalSection = {
# Translate engine
Engine = "OpenCC";
# Toggle key
# Hotkey=
# Enabled Input Methods
# EnabledIM=
# OpenCC profile for Simplified to Traditional
# OpenCCS2TProfile=
# OpenCC profile for Traditional to Simplified
# OpenCCT2SProfile=
};
classicui.globalSection = {
# Vertical Candidate List
"Vertical Candidate List" = false;
# Use mouse wheel to go to prev or next page
WheelForPaging = true;
# Font
Font = "Sans 12";
# Menu Font
MenuFont = "Sans 12";
# Tray Font
TrayFont = "Sans Bold 10";
# Tray Label Outline Color
TrayOutlineColor = "#000000";
# Tray Label Text Color
TrayTextColor = "#ffffff";
# Prefer Text Icon
PreferTextIcon = false;
# Show Layout Name In Icon
ShowLayoutNameInIcon = true;
# Use input method language to display text
UseInputMethodLanguageToDisplayText = true;
# Theme
Theme = "catppuccin-mocha-lavender";
# Dark Theme
DarkTheme = "catppuccin-mocha-lavender";
# Follow system light/dark color scheme
# NOTE: Doesn't work since I don't set up the environment
# so apps can detect if light/dark mode is used
UseDarkTheme = true;
# Follow system accent color if it is supported by theme and desktop
UseAccentColor = true;
# Use Per Screen DPI on X11
PerScreenDPI = true;
# Force font DPI on Wayland
ForceWaylandDPI = 0;
# Enable fractional scale under Wayland
EnableFractionalScale = true;
};
clipboard.globalSection = {
# Trigger Key
# TriggerKey=
# Paste Primary
# PastePrimaryKey=
# Number of entries
"Number of entries" = 5;
};
cloudpinyin.globalSection = {
# Minimum Pinyin Length
MinimumPinyinLength = 4;
# Backend
Backend = "GoogleCN";
# Proxy
# Proxy=
};
cloudpinyin.sections = {
"Toggle Key" = {
"0" = "Control+Alt+Shift+C";
};
};
fullwidth.globalSection = {
# Toggle key
# Hotkey=
};
imselector.globalSection = {
# Trigger Key
# TriggerKey=
# Trigger Key for only current input context
# TriggerKeyLocal=
# Hotkey for switching to the N-th input method
# SwitchKey=
# Hotkey for switching to the N-th input method for only current input context
# SwitchKeyLocal=
};
keyboard.globalSection = {
# Page size
PageSize = 5;
# Enable emoji in hint
EnableEmoji = false;
# Enable emoji in quickphrase
EnableQuickPhraseEmoji = false;
# Choose key modifier
"Choose Modifier" = "Alt";
# Enable hint by default
EnableHintByDefault = false;
# Trigger hint mode for one time
# "One Time Hint Trigger"=
# Use new compose behavior
UseNewComposeBehavior = true;
# Type special characters with long press
EnableLongPress = false;
};
keyboard.sections = {
"PrevCandidate" = {
"0" = "Shift+Tab";
};
"NextCandidate" = {
"0" = "Tab";
};
"Hint Trigger" = {
"0" = "Control+Alt+H";
};
"LongPressBlocklist" = {
"0" = "konsole";
};
};
notifications.globalSection = {
# Hidden Notifications
# HiddenNotifications=
};
pinyin.globalSection = {
# Shuangpin Profile
ShuangpinProfile = "Ziranma";
# Show current shuangpin mode
ShowShuangpinMode = true;
# Page size
PageSize = 7;
# Enable Spell
SpellEnabled = false;
# Enable Symbols
SymbolsEnabled = true;
# Enable Chaizi
ChaiziEnabled = false;
# Enable Characters in Unicode CJK Extension B
ExtBEnabled = true;
# Enable Cloud Pinyin
CloudPinyinEnabled = true;
# Cloud Pinyin Index
CloudPinyinIndex = 2;
# Show animation when Cloud Pinyin is loading
CloudPinyinAnimation = true;
# Always show Cloud Pinyin place holder
KeepCloudPinyinPlaceHolder = false;
# Preedit Mode
PreeditMode = "Composing pinyin";
# Fix embedded preedit cursor at the beginning of the preedit
PreeditCursorPositionAtBeginning = true;
# Show complete pinyin in preedit
PinyinInPreedit = false;
# Enable Prediction
Prediction = false;
# Prediction Size
PredictionSize = 10;
# Action when switching input method
SwitchInputMethodBehavior = "Commit current preedit";
# Forget word
# ForgetWord=
# Select 2nd Candidate
# SecondCandidate=
# Select 3rd Candidate
# ThirdCandidate=
# Use Keypad as Selection key
UseKeypadAsSelection = false;
# Use BackSpace to cancel the selection
BackSpaceToUnselect = true;
# Number of Sentences
"Number of sentence" = 2;
# Prompt long word length when input length over (0 for disable)
LongWordLengthLimit = 4;
# Key to trigger quickphrase
# QuickPhraseKey=
# Use V to trigger quickphrase
VAsQuickphrase = false;
# FirstRun
FirstRun = false;
};
pinyin.sections = {
"PrevPage" = {
"0" = "Up";
};
"NextPage" = {
"0" = "Down";
};
"PrevCandidate" = {
"0" = "Shift+Tab";
};
"NextCandidate" = {
"0" = "Tab";
};
"CurrentCandidate" = {
"0" = "space";
"1" = "KP_Space";
};
"CommitRawInput" = {
"0" = "Return";
"1" = "KP_Enter";
"2" = "Control+Return";
"3" = "Control+KP_Enter";
"4" = "Shift+Return";
"5" = "Shift+KP_Enter";
"6" = "Control+Shift+Return";
"7" = "Control+Shift+KP_Enter";
};
"ChooseCharFromPhrase" = {
"0" = "bracketleft";
"1" = "bracketright";
};
"FilterByStroke" = {
"0" = "grave";
};
"QuickPhraseTriggerRegex" = {
"0" = ".(/|@)$";
"1" = "^(www|bbs|forum|mail|bbs)''.";
"2" = "^(http|https|ftp|telnet|mailto):";
};
"Fuzzy" = {
# ue -> ve
VE_UE = true;
# Common Typo
NG_GN = true;
# Inner Segment (xian -> xi'an)
Inner = true;
# Inner Segment for Short Pinyin (qie -> qi'e)
InnerShort = true;
# Match partial finals (e -> en, eng, ei)
PartialFinal = true;
# Match partial shuangpin if input length is longer than 4
PartialSp = false;
# u <-> v
V_U = false;
# an <-> ang
AN_ANG = false;
# en <-> eng
EN_ENG = false;
# ian <-> iang
IAN_IANG = false;
# in <-> ing
IN_ING = false;
# u <-> ou
U_OU = false;
# uan <-> uang
UAN_UANG = false;
# c <-> ch
C_CH = false;
# f <-> h
F_H = false;
# l <-> n
L_N = false;
# s <-> sh
S_SH = false;
# z <-> zh
Z_ZH = false;
# Correction Layout
Correction = "None";
};
};
punctuation.globalSection = {
# Toggle key
# Hotkey=
# Half width punctuation after latin letter or number
HalfWidthPuncAfterLetterOrNumber = true;
# Type paired punctuations together (e.g. Quote)
TypePairedPunctuationsTogether = false;
# Enabled
Enabled = true;
};
quickphrase.globalSection = {
# Trigger Key
# TriggerKey=
# Choose key modifier
"Choose Modifier" = "None";
# Enable Spell check
Spell = true;
# Fallback Spell check language
FallbackSpellLanguage = "en";
};
spell.sections = {
"ProviderOrder" = {
"0" = "Presage";
"1" = "Custom";
"2" = "Enchant";
};
};
table.globalSection = {
# Modify dictionary
# ModifyDictionaryKey=
# Forget word
# ForgetWord=
# Lookup pinyin
# LookupPinyinKey=
# Enable Prediction
Prediction = false;
# Prediction Size
PredictionSize = 10;
};
unicode.sections = {
"TriggerKey" = {
"0" = "Control+Alt+Shift+U";
};
"DirectUnicodeMode" = {
"0" = "Control+Shift+U";
};
};
waylandim.globalSection = {
# Detect current running application (Need restart)
DetectApplication = true;
};
xcb.globalSection = {
# Allow Overriding System XKB Settings
"Allow Overriding System XKB Settings" = true;
# Always set layout to be only group layout
AlwaysSetToGroupLayout = true;
};
};
};
};
};
};
}

View File

@ -0,0 +1,7 @@
{
lib,
mylib,
...
}: {
enable = lib.mkEnableOption "Enable the fcitx5 input method";
}