Compare commits

...

4 Commits

678 changed files with 66136 additions and 29 deletions

View File

@ -13,7 +13,7 @@ LICENSE = ""
default_target_type = "symbolic" default_target_type = "symbolic"
[base] [base]
depends = [ "default", "zsh", "spotify", "terminal", "local", "misc", "dev" ] depends = [ "default", "zsh", "spotify", "terminal", "local", "misc", "dev", "apps", "gtk" ]
[x11] [x11]
depends = [ "base", "awesome", "picom", "dunst", "rofi" ] depends = [ "base", "awesome", "picom", "dunst", "rofi" ]
@ -176,3 +176,11 @@ depends = [ "zsh", "tmux", "fish" ]
[dev.files] [dev.files]
"config/sqruff/" = "~/.config/sqruff/" "config/sqruff/" = "~/.config/sqruff/"
"config/asm-lsp/" = "~/.config/asm-lsp/"
[apps.files]
"config/Vencord/" = "~/.config/Vencord/"
[gtk.files]
"config/gtk-3.0/" = "~/.config/gtk-3.0/"
"config/gtk-4.0/" = "~/.config/gtk-4.0/"

0
config/HybridBar/scripts/change-active-workspace Executable file → Normal file
View File

0
config/HybridBar/scripts/get-active-workspace Executable file → Normal file
View File

0
config/HybridBar/scripts/get-window-title Executable file → Normal file
View File

0
config/HybridBar/scripts/get-workspaces Executable file → Normal file
View File

View File

@ -0,0 +1,27 @@
@import url(https://mwittrien.github.io/BetterDiscordAddons/Themes/ServerColumns/ServerColumns.css);
:root {
--columns: 1;
/* default: 3 (amount of servercolumns) */
--guildsize: 40;
/* default: 50 (serversize in pixel) */
--guildgap: 3;
/* default: 3 (top/bottom gap between servers in pixel) */
--aligndms: 2;
/* default: 0 (should DMs be aligned in columns: 0 = no, 1 = yes) */
}
@import url("https://mr-miner1.github.io/Better-Badges/src/badges.css");
:root {
--badge-size: 22px;
/*discord default = 18px, theme default = 22px;*/
--badge-margin: 1.5px;
/*discord default = 2px, theme default = 1.5px*/
--badges-everywhere-size: 15px;
/*default = 15px*/
--windows-hover: 0;
}

View File

@ -0,0 +1,871 @@
{
"notifyAboutUpdates": true,
"autoUpdate": true,
"autoUpdateNotification": true,
"useQuickCss": true,
"themeLinks": [
"@dark https://raw.githubusercontent.com/rose-pine/discord/refs/heads/main/dist/rose-pine.css",
"@light https://raw.githubusercontent.com/rose-pine/discord/refs/heads/main/dist/rose-pine-moon.css"
],
"enableReactDevtools": true,
"frameless": true,
"transparent": true,
"winCtrlQ": false,
"winNativeTitleBar": false,
"plugins": {
"MessageEventsAPI": {
"enabled": true
},
"CommandsAPI": {
"enabled": true
},
"MenuItemDeobfuscatorAPI": {
"enabled": true
},
"ContextMenuAPI": {
"enabled": true
},
"MessagePopoverAPI": {
"enabled": true
},
"MessageAccessoriesAPI": {
"enabled": true
},
"MessageDecorationsAPI": {
"enabled": true
},
"MemberListDecoratorsAPI": {
"enabled": true
},
"ServerListAPI": {
"enabled": true
},
"AlwaysTrust": {
"enabled": false
},
"AnonymiseFileNames": {
"enabled": false,
"method": 0,
"randomisedLength": 7,
"consistent": "image",
"anonymiseByDefault": true
},
"BANger": {
"enabled": false
},
"BetterGifAltText": {
"enabled": true
},
"BetterNotesBox": {
"enabled": false
},
"BetterRoleDot": {
"enabled": false,
"bothStyles": false
},
"BetterUploadButton": {
"enabled": false
},
"BlurNSFW": {
"enabled": true,
"blurAmount": 10
},
"CallTimer": {
"enabled": true,
"format": "stopwatch"
},
"ColorSighted": {
"enabled": false
},
"CrashHandler": {
"enabled": true
},
"Experiments": {
"enabled": true,
"enableIsStaff": false,
"forceStagingBanner": false,
"toolbarDevMenu": false
},
"FakeNitro": {
"enabled": true,
"enableEmojiBypass": true,
"enableStickerBypass": true,
"enableStreamQualityBypass": true,
"transformStickers": true,
"transformEmojis": true,
"transformCompoundSentence": false,
"emojiSize": 64,
"stickerSize": 256,
"useHyperLinks": true,
"hyperLinkText": "{{NAME}}",
"disableEmbedPermissionCheck": false
},
"FixInbox": {
"enabled": false
},
"ForceOwnerCrown": {
"enabled": true
},
"iLoveSpam": {
"enabled": false
},
"IgnoreActivities": {
"enabled": false
},
"InvisibleChat": {
"enabled": true,
"savedPasswords": "password, Password"
},
"LoadingQuotes": {
"enabled": true,
"replaceEvents": true,
"enableDiscordPresetQuotes": false,
"additionalQuotes": "",
"additionalQuotesDelimiter": "|",
"enablePluginPresetQuotes": true
},
"MemberCount": {
"enabled": true,
"memberList": true,
"toolTip": true
},
"MessageLinkEmbeds": {
"enabled": true,
"listMode": "blacklist",
"idList": "",
"automodEmbeds": "never"
},
"MessageLogger": {
"enabled": true,
"deleteStyle": "text",
"ignoreBots": false,
"ignoreSelf": false,
"ignoreUsers": "",
"ignoreChannels": "",
"ignoreGuilds": "",
"logEdits": true,
"logDeletes": true,
"collapseDeleted": false,
"inlineEdits": true
},
"NoBlockedMessages": {
"enabled": false
},
"NoDevtoolsWarning": {
"enabled": false
},
"NoF1": {
"enabled": false
},
"NoRPC": {
"enabled": false
},
"NoReplyMention": {
"enabled": false
},
"NoScreensharePreview": {
"enabled": false
},
"NoSystemBadge": {
"enabled": true
},
"NoUnblockToJump": {
"enabled": true
},
"NSFWGateBypass": {
"enabled": true
},
"PlainFolderIcon": {
"enabled": false
},
"PlatformIndicators": {
"enabled": true,
"colorMobileIndicator": true,
"list": true,
"badges": true,
"messages": true
},
"RevealAllSpoilers": {
"enabled": true
},
"ReverseImageSearch": {
"enabled": true
},
"richerCider": {
"enabled": false
},
"RoleColorEverywhere": {
"enabled": true,
"chatMentions": true,
"memberList": true,
"voiceUsers": true,
"reactorsList": true,
"colorChatMessages": false,
"pollResults": true
},
"ShikiCodeblocks": {
"enabled": true,
"theme": "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/rose-pine.json",
"tryHljs": "SECONDARY",
"useDevIcon": "COLOR",
"bgOpacity": 100
},
"ShowHiddenChannels": {
"enabled": true,
"showMode": 0,
"hideUnreads": true,
"defaultAllowedUsersAndRolesDropdownState": true
},
"SilentMessageToggle": {
"enabled": true,
"persistState": false
},
"SilentTyping": {
"enabled": true,
"showIcon": false,
"isEnabled": true,
"contextMenu": true
},
"SortFriendRequests": {
"enabled": true,
"showDates": false
},
"SpotifyControls": {
"enabled": true,
"hoverControls": false
},
"SpotifyCrack": {
"enabled": true,
"noSpotifyAutoPause": true,
"keepSpotifyActivityOnIdle": false
},
"StartupTimings": {
"enabled": true
},
"TimeBarAllActivities": {
"enabled": true,
"hideActivityDetailText": true,
"hideActivityTimerBadges": true
},
"TypingIndicator": {
"enabled": true,
"includeMutedChannels": false,
"includeBlockedUsers": false,
"includeCurrentChannel": true,
"indicatorMode": 3
},
"TypingTweaks": {
"enabled": true,
"alternativeFormatting": true,
"showRoleColors": true,
"showAvatars": true
},
"Unindent": {
"enabled": true
},
"ReactErrorDecoder": {
"enabled": true
},
"VoiceChatDoubleClick": {
"enabled": true
},
"ViewIcons": {
"enabled": true
},
"VolumeBooster": {
"enabled": true,
"multiplier": 5
},
"Webhook Tags": {
"enabled": false
},
"WhoReacted": {
"enabled": true
},
"Settings": {
"enabled": true,
"settingsLocation": "aboveActivity"
},
"ClearURLs": {
"enabled": true
},
"ConsoleShortcuts": {
"enabled": false
},
"CorruptMp4s": {
"enabled": false
},
"CustomRPC": {
"enabled": true,
"type": 0
},
"UrbanDictionary": {
"enabled": true
},
"F8Break": {
"enabled": true
},
"Fart2": {
"enabled": false
},
"FriendInvites": {
"enabled": false
},
"FxTwitter": {
"enabled": false
},
"KeepCurrentChannel": {
"enabled": true
},
"LastFMRichPresence": {
"enabled": false
},
"MessageClickActions": {
"enabled": false
},
"MessageTags": {
"enabled": false
},
"MoreCommands": {
"enabled": false
},
"MoreKaomoji": {
"enabled": true
},
"Moyai": {
"enabled": false,
"volume": 0.5,
"triggerWhenUnfocused": true,
"ignoreBots": true,
"quality": "Normal",
"ignoreBlocked": true
},
"NoCanaryMessageLinks": {
"enabled": false
},
"oneko": {
"enabled": false
},
"petpet": {
"enabled": false
},
"QuickMention": {
"enabled": true
},
"QuickReply": {
"enabled": true
},
"ReadAllNotificationsButton": {
"enabled": true
},
"ServerListIndicators": {
"enabled": false
},
"SpotifyShareCommands": {
"enabled": true
},
"UwUifier": {
"enabled": false
},
"VcNarrator": {
"enabled": false
},
"ViewRaw": {
"enabled": true,
"clickMethod": "Left"
},
"BadgeAPI": {
"enabled": true
},
"NoticesAPI": {
"enabled": true
},
"NoTrack": {
"enabled": true,
"disableAnalytics": true
},
"SupportHelper": {
"enabled": true
},
"AlwaysAnimate": {
"enabled": true
},
"SettingsStoreAPI": {
"enabled": true
},
"BetterFolders": {
"enabled": true,
"sidebar": true,
"sidebarAnim": true,
"closeAllFolders": true,
"closeAllHomeButton": false,
"closeOthers": true,
"forceOpen": true,
"showFolderIcon": 1,
"keepIcons": false
},
"FakeProfileThemes": {
"enabled": true,
"nitroFirst": true
},
"GameActivityToggle": {
"enabled": true,
"oldIcon": false
},
"GifPaste": {
"enabled": true
},
"ImageZoom": {
"enabled": true,
"saveZoomValues": true,
"preventCarouselFromClosingOnClick": true,
"invertScroll": true,
"zoom": 2.2,
"size": 300,
"zoomSpeed": 0.5,
"nearestNeighbour": false,
"square": false
},
"MoreUserTags": {
"enabled": true,
"tagSettings": {
"WEBHOOK": {
"text": "Webhook",
"showInChat": true,
"showInNotChat": true
},
"OWNER": {
"text": "Owner",
"showInChat": true,
"showInNotChat": true
},
"ADMINISTRATOR": {
"text": "Admin",
"showInChat": true,
"showInNotChat": true
},
"MODERATOR_STAFF": {
"text": "Staff",
"showInChat": true,
"showInNotChat": true
},
"MODERATOR": {
"text": "Mod",
"showInChat": true,
"showInNotChat": true
},
"VOICE_MODERATOR": {
"text": "VC Mod",
"showInChat": true,
"showInNotChat": true
},
"CHAT_MODERATOR": {
"text": "Chat Mod",
"showInChat": true,
"showInNotChat": true
}
}
},
"PinDMs": {
"enabled": true,
"pinOrder": 0,
"dmSectionCollapsed": false,
"canCollapseDmSection": false,
"userBasedCategoryList": {
"326694746494074880": []
}
},
"RelationshipNotifier": {
"enabled": true,
"offlineRemovals": true,
"groups": true,
"servers": true,
"friends": true,
"friendRequestCancels": true,
"notices": false
},
"ReviewDB": {
"enabled": true,
"notifyReviews": true,
"showWarning": true,
"hideBlockedUsers": true,
"reviewsDropdownState": true,
"hideTimestamps": false
},
"SendTimestamps": {
"enabled": false
},
"ShowMeYourName": {
"enabled": false
},
"UserVoiceShow": {
"enabled": true,
"showVoiceChannelSectionHeader": true,
"showInUserProfileModal": true,
"showInMemberList": true,
"showInMessages": true
},
"GreetStickerPicker": {
"enabled": true,
"greetMode": "Greet"
},
"Wikisearch": {
"enabled": false
},
"USRBG": {
"enabled": true,
"nitroFirst": false,
"voiceBackground": true
},
"PermissionsViewer": {
"enabled": true,
"permissionsSortOrder": 0,
"defaultPermissionsDropdownState": false
},
"ShowAllMessageButtons": {
"enabled": true
},
"ShowConnections": {
"enabled": true,
"iconSpacing": 1,
"iconSize": 32
},
"TextReplace": {
"enabled": false
},
"Translate": {
"enabled": false
},
"ValidUser": {
"enabled": false
},
"VencordToolbox": {
"enabled": true
},
"FavoriteEmojiFirst": {
"enabled": true
},
"NoPendingCount": {
"enabled": false
},
"NoProfileThemes": {
"enabled": true
},
"UnsuppressEmbeds": {
"enabled": false
},
"MutualGroupDMs": {
"enabled": true
},
"BiggerStreamPreview": {
"enabled": true
},
"OpenInApp": {
"enabled": false,
"spotify": true,
"steam": true,
"epic": true,
"tidal": true,
"itunes": true
},
"FavoriteGifSearch": {
"enabled": true,
"searchOption": "hostandpath"
},
"VoiceMessages": {
"enabled": true
},
"CopyUserURLs": {
"enabled": true
},
"FixSpotifyEmbeds": {
"enabled": true
},
"NormalizeMessageLinks": {
"enabled": false
},
"PreviewMessage": {
"enabled": true
},
"SecretRingToneEnabler": {
"enabled": true,
"onlySnow": false
},
"Dearrow": {
"enabled": true,
"hideButton": false,
"replaceElements": 0,
"dearrowByDefault": true
},
"PictureInPicture": {
"enabled": true
},
"ThemeAttributes": {
"enabled": true
},
"OnePingPerDM": {
"enabled": false,
"channelToAffect": "both_dms",
"allowMentions": false,
"allowEveryone": false
},
"PermissionFreeWill": {
"enabled": true,
"lockout": true,
"onboarding": true
},
"NoMosaic": {
"enabled": false
},
"NoTypingAnimation": {
"enabled": false
},
"ClientTheme": {
"enabled": false,
"color": "313338"
},
"FixImagesQuality": {
"enabled": true
},
"SuperReactionTweaks": {
"enabled": false
},
"Decor": {
"enabled": true
},
"NotificationVolume": {
"enabled": true,
"notificationVolume": 100
},
"XSOverlay": {
"enabled": false
},
"BetterGifPicker": {
"enabled": false
},
"FixCodeblockGap": {
"enabled": true
},
"FixYoutubeEmbeds": {
"enabled": true
},
"ChatInputButtonAPI": {
"enabled": true
},
"DisableCallIdle": {
"enabled": true
},
"NewGuildSettings": {
"enabled": true,
"guild": true,
"everyone": true,
"role": true,
"events": true,
"highlights": true,
"messages": 3,
"showAllChannels": true
},
"BetterRoleContext": {
"enabled": true
},
"ResurrectHome": {
"enabled": false
},
"BetterSettings": {
"enabled": true,
"disableFade": true,
"eagerLoad": true
},
"FriendsSince": {
"enabled": true
},
"OverrideForumDefaults": {
"enabled": true,
"defaultLayout": 1,
"defaultSortOrder": 0
},
"ShowHiddenThings": {
"enabled": true,
"showTimeouts": true,
"showInvitesPaused": true,
"showModView": true,
"disableDiscoveryFilters": true,
"disableDisallowedDiscoveryFilters": true
},
"BetterSessions": {
"enabled": true,
"backgroundCheck": false
},
"ImplicitRelationships": {
"enabled": true,
"sortByAffinity": true
},
"StreamerModeOnStream": {
"enabled": false
},
"UnlockedAvatarZoom": {
"enabled": true
},
"CtrlEnterSend": {
"enabled": false
},
"ImageLink": {
"enabled": false
},
"MessageLatency": {
"enabled": true,
"latency": 2,
"detectDiscordKotlin": true,
"showMillis": false
},
"NoServerEmojis": {
"enabled": false
},
"PauseInvitesForever": {
"enabled": true
},
"ReplyTimestamp": {
"enabled": true
},
"ShowTimeoutDuration": {
"enabled": true,
"displayStyle": "ssalggnikool"
},
"ValidReply": {
"enabled": false
},
"VoiceDownload": {
"enabled": true
},
"PartyMode": {
"enabled": false
},
"AutomodContext": {
"enabled": true
},
"CustomIdle": {
"enabled": false,
"idleTimeout": 10,
"remainInIdle": true
},
"NoDefaultHangStatus": {
"enabled": true
},
"ReplaceGoogleSearch": {
"enabled": true,
"customEngineURL": "https://www.startpage.com/sp/search?query=",
"customEngineName": "StartPage"
},
"MessageUpdaterAPI": {
"enabled": true
},
"DontRoundMyTimestamps": {
"enabled": false
},
"MaskedLinkPaste": {
"enabled": true
},
"Summaries": {
"enabled": false
},
"ServerInfo": {
"enabled": true
},
"AppleMusicRichPresence": {
"enabled": false
},
"CopyEmojiMarkdown": {
"enabled": false
},
"NoOnboardingDelay": {
"enabled": false
},
"UserSettingsAPI": {
"enabled": true
},
"ConsoleJanitor": {
"enabled": false
},
"MentionAvatars": {
"enabled": true,
"showAtSymbol": true
},
"YoutubeAdblock": {
"enabled": true
},
"AlwaysExpandRoles": {
"enabled": false
},
"CopyFileContents": {
"enabled": true
},
"NoMaskedUrlPaste": {
"enabled": true
},
"StickerPaste": {
"enabled": true
},
"AccountPanelServerProfile": {
"enabled": false
},
"FullSearchContext": {
"enabled": true
},
"UserMessagesPronouns": {
"enabled": true,
"pronounSource": 0,
"showInProfile": true,
"showSelf": true,
"showInMessages": true,
"pronounsFormat": "LOWERCASE"
},
"DynamicImageModalAPI": {
"enabled": true
},
"WebRichPresence (arRPC)": {
"enabled": true
},
"FullUserInChatbox": {
"enabled": true
},
"IrcColors": {
"enabled": true,
"memberListColors": true,
"lightness": 70,
"applyColorOnlyInDms": false,
"applyColorOnlyToUsersWithoutColor": false
},
"WebKeybinds": {
"enabled": true
},
"WebScreenShareFixes": {
"enabled": true
},
"WebContextMenus": {
"enabled": true,
"addBack": true
},
"HideMedia": {
"enabled": true
},
"ExpressionCloner": {
"enabled": true
}
},
"notifications": {
"timeout": 5000,
"position": "top-right",
"useNative": "never",
"logLimit": 50
},
"macosTranslucency": false,
"disableMinSize": false,
"cloud": {
"authenticated": true,
"url": "https://api.vencord.dev/",
"settingsSync": true,
"settingsSyncVersion": 1754940454935
},
"enabledThemes": [],
"eagerPatches": false
}

View File

@ -0,0 +1,28 @@
[default_config]
version = "0.10.0"
assembler = "gas"
instruction_set = "riscv"
[default_config.opts]
compiler = "zig"
compile_flags_txt = [
"cc",
"-x",
"assembler-with-cpp",
"-g",
"-Wall",
"-Wextra",
"-pedantic",
"-pedantic-errors",
"-std=c2y",
"-target",
"aarch64-linux-musl",
]
diagnostics = true
default_diagnostics = false
[project.opts]
compiler = "zig"
compile_flags_txt = [ ]
diagnostics = true
default_diagnostics = false

View File

@ -53,7 +53,7 @@ graph_symbol_proc = "default"
shown_boxes = "net proc cpu mem" shown_boxes = "net proc cpu mem"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 500 update_ms = 1000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
@ -151,7 +151,7 @@ custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user" #* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
disks_filter = "exclude=/boot" disks_filter = "exclude=/boot /var/cache/pacman/pkg /var/log /home"
#* Show graphs instead of meters for memory values. #* Show graphs instead of meters for memory values.
mem_graphs = True mem_graphs = True
@ -175,7 +175,7 @@ show_disks = True
only_physical = True only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical. #* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = False use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False zfs_hide_datasets = False

0
config/eww/scripts/change-active-workspace Executable file → Normal file
View File

0
config/eww/scripts/get-active-workspace Executable file → Normal file
View File

0
config/eww/scripts/get-window-title Executable file → Normal file
View File

0
config/eww/scripts/get-workspaces Executable file → Normal file
View File

0
config/eww/scripts/mem-ad Executable file → Normal file
View File

0
config/eww/scripts/memory Executable file → Normal file
View File

0
config/eww/scripts/music_info Executable file → Normal file
View File

0
config/eww/scripts/music_info.bak Executable file → Normal file
View File

0
config/eww/scripts/pop Executable file → Normal file
View File

0
config/eww/scripts/wifi Executable file → Normal file
View File

0
config/eww/scripts/workspace Executable file → Normal file
View File

View File

@ -1,4 +1,5 @@
[General] [General]
autoCloseIdleDaemon=true
contrastOpacity=188 contrastOpacity=188
drawColor=#ff0000 drawColor=#ff0000
drawThickness=3 drawThickness=3
@ -10,3 +11,4 @@ showMagnifier=true
squareMagnifier=true squareMagnifier=true
uiColor=#ffffff uiColor=#ffffff
uploadHistoryMax=25 uploadHistoryMax=25
useJpgForClipboard=true

0
config/git/check_email.sh Normal file → Executable file
View File

View File

@ -53,8 +53,6 @@
[rerere] [rerere]
enabled = true enabled = true
autoupdate = true autoupdate = true
[core]
excludesfile = ~/.gitignore
[rebase] [rebase]
autoSquash = true autoSquash = true
autoStash = true autoStash = true
@ -68,7 +66,7 @@
# untrackedCache = true # untrackedCache = true
[merge] [merge]
# (just 'diff3' if git version < 2.3) # (just 'diff3' if git version < 2.3)
# conflictstyle = zdiff3 conflictstyle = zdiff3
[pull] [pull]
# rebase = true # rebase = true
[log] [log]
@ -110,3 +108,6 @@
[include] # TODO: include only for my repos [include] # TODO: include only for my repos
path = ~/.config/git/key path = ~/.config/git/key
[maintenance]
repo = /home/kristofers/Nextcloud/repos/SoloVim
repo = /home/kristofers/Nextcloud/repos/maze-ascension

1
config/gtk-3.0/gtk-dark.css Symbolic link
View File

@ -0,0 +1 @@
../../local/share/themes/rose-pine-gtk/gtk-3.0/dist/gtk-dark.css

1
config/gtk-3.0/gtk.css Symbolic link
View File

@ -0,0 +1 @@
../../local/share/themes/rose-pine-gtk/gtk-3.0/dist/gtk.css

View File

@ -0,0 +1,20 @@
[Settings]
gtk-application-prefer-dark-theme=true
gtk-button-images=1
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=24
gtk-decoration-layout=icon:minimize,maximize,close
gtk-enable-animations=true
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-font-name=Noto Sans, 10
gtk-menu-images=1
gtk-primary-button-warps-slider=false
gtk-theme-name=rose-pine-gtk
gtk-icon-theme-name=rose-pine-icons
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-xft-antialias=1
gtk-xft-dpi=98304
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull

1
config/gtk-4.0/gtk.css Symbolic link
View File

@ -0,0 +1 @@
../../local/share/themes/gtk4/gtk4/rose-pine.css

View File

@ -0,0 +1,12 @@
[Settings]
gtk-application-prefer-dark-theme=true
gtk-cursor-theme-name=Premium
gtk-cursor-theme-size=24
gtk-decoration-layout=icon:minimize,maximize,close
gtk-enable-animations=true
gtk-font-name=Noto Sans, 10
gtk-icon-theme-name=rose-pine-icons
# gtk-modules=colorreload-gtk-module
gtk-primary-button-warps-slider=false
gtk-xft-dpi=98304
gtk-theme-name=rose-pine-gtk

View File

@ -380,7 +380,7 @@ bind = , PRINT, exec, hyprshot -m output
bind = SHIFT, PRINT, exec, hyprshot -m window bind = SHIFT, PRINT, exec, hyprshot -m window
bind = $mainMod ALT, P, exec, hyprpicker -a # colorpicker bind = $mainMod ALT, P, exec, hyprpicker -a # colorpicker
bind = SUPER, grave, hyprexpo:expo, toggle # can be: toggle, select, off/disable or on/enable # bind = SUPER, grave, hyprexpo:expo, toggle # can be: toggle, select, off/disable or on/enable
############################## ##############################
### WINDOWS AND WORKSPACES ### ### WINDOWS AND WORKSPACES ###

0
config/lf/cleaner Executable file → Normal file
View File

0
config/lf/lfrc Executable file → Normal file
View File

0
config/nsxiv/exec/image-info Executable file → Normal file
View File

0
config/nsxiv/exec/key-handler Executable file → Normal file
View File

0
config/nsxiv/exec/nsxiv-url Executable file → Normal file
View File

0
config/nsxiv/exec/thumb-info Executable file → Normal file
View File

0
config/nsxiv/exec/win-title Executable file → Normal file
View File

0
config/waybar/scripts/mediaplayer.py Normal file → Executable file
View File

2
config/x11/opt-apps Executable file → Normal file
View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
autostart="picom nextcloud transmission-daemon discord syncthing mullvad-vpn spotify-launcher kotatogram-desktop easyeffects" autostart="picom nextcloud transmission-daemon discord syncthing mullvad-vpn spotify-launcher kotatogram-desktop floorp"
for program in $autostart; do for program in $autostart; do
pidof -sx "$program" || "$program" & pidof -sx "$program" || "$program" &

View File

View File

@ -30,32 +30,32 @@ hash = "62251f94eb67648d42cdfcfb8be0fad2"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:git" use = "yazi-rs/plugins:git"
rev = "de53d90" rev = "d7588f6"
hash = "63b6c222bf2103b3023389dde5e2ecfe" hash = "63b6c222bf2103b3023389dde5e2ecfe"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:chmod" use = "yazi-rs/plugins:chmod"
rev = "de53d90" rev = "d7588f6"
hash = "1adc12c2b2b025411ab61eb8f0879574" hash = "1adc12c2b2b025411ab61eb8f0879574"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:full-border" use = "yazi-rs/plugins:full-border"
rev = "de53d90" rev = "d7588f6"
hash = "3996fc74044bc44144b323686f887e1" hash = "3996fc74044bc44144b323686f887e1"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:mount" use = "yazi-rs/plugins:mount"
rev = "de53d90" rev = "d7588f6"
hash = "f10a14e823382d90fab5b3ee54cb38fe" hash = "e1de3054c0d1a2d8dc6f007eadc0fa31"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:smart-filter" use = "yazi-rs/plugins:smart-filter"
rev = "de53d90" rev = "d7588f6"
hash = "e56b7abf3c06e8ce496eadcca168c093" hash = "e56b7abf3c06e8ce496eadcca168c093"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:diff" use = "yazi-rs/plugins:diff"
rev = "de53d90" rev = "d7588f6"
hash = "47865a70cade14a0b9b6bc6a54f16bdb" hash = "47865a70cade14a0b9b6bc6a54f16bdb"
[[plugin.deps]] [[plugin.deps]]

View File

@ -4,8 +4,8 @@ A mount manager for Yazi, providing disk mount, unmount, and eject functionality
Supported platforms: Supported platforms:
- Linux with [`udisksctl`](https://github.com/storaged-project/udisks) and [`lsblk`](https://github.com/util-linux/util-linux) - Linux with [`udisksctl`](https://github.com/storaged-project/udisks), `lsblk` and `eject` both provided by [`util-linux`](https://github.com/util-linux/util-linux)
- macOS with `diskutil` - macOS with `diskutil`, which is pre-installed
https://github.com/user-attachments/assets/c6f780ab-458b-420f-85cf-2fc45fcfe3a2 https://github.com/user-attachments/assets/c6f780ab-458b-420f-85cf-2fc45fcfe3a2
@ -40,7 +40,7 @@ Available keybindings:
## TODO ## TODO
- Custom keybindings - Custom keybindings
- Windows support (I don't have an Windows machine for testing, PRs welcome!) - Windows support (I don't use Windows myself, PRs welcome!)
- Support mount, unmount, and eject the entire disk - Support mount, unmount, and eject the entire disk
## License ## License

View File

@ -224,6 +224,7 @@ function M.split(src)
{ "^/dev/nvme%d+n%d+", "p%d+$" }, -- /dev/nvme0n1p1 { "^/dev/nvme%d+n%d+", "p%d+$" }, -- /dev/nvme0n1p1
{ "^/dev/mmcblk%d+", "p%d+$" }, -- /dev/mmcblk0p1 { "^/dev/mmcblk%d+", "p%d+$" }, -- /dev/mmcblk0p1
{ "^/dev/disk%d+", ".+$" }, -- /dev/disk1s1 { "^/dev/disk%d+", ".+$" }, -- /dev/disk1s1
{ "^/dev/sr%d+", ".+$" }, -- /dev/sr0
} }
for _, p in ipairs(pats) do for _, p in ipairs(pats) do
local main = src:match(p[1]) local main = src:match(p[1])
@ -274,7 +275,10 @@ function M.operate(type)
output, err = Command("diskutil"):arg({ type, active.src }):output() output, err = Command("diskutil"):arg({ type, active.src }):output()
end end
if ya.target_os() == "linux" then if ya.target_os() == "linux" then
if type == "eject" then if type == "eject" and active.src:match("^/dev/sr%d+") then
Command("udisksctl"):arg({ "unmount", "-b", active.src }):status()
output, err = Command("eject"):arg({ "--traytoggle", active.src }):output()
elseif type == "eject" then
Command("udisksctl"):arg({ "unmount", "-b", active.src }):status() Command("udisksctl"):arg({ "unmount", "-b", active.src }):status()
output, err = Command("udisksctl"):arg({ "power-off", "-b", active.src }):output() output, err = Command("udisksctl"):arg({ "power-off", "-b", active.src }):output()
else else

View File

@ -1,10 +1,13 @@
#!/bin/zsh #!/bin/zsh
# Import and execute startup file # Import and execute startup file
[ -f "$XDG_CONFIG_HOME/zsh/startup" ] && source "$XDG_CONFIG_HOME/zsh/startup" [ -f "$XDG_CONFIG_HOME/zsh/startup" ] && source "$XDG_CONFIG_HOME/zsh/startup"
fpath=("$XDG_CONFIG_HOME/zsh/zfunc/" $fpath) fpath=("$XDG_CONFIG_HOME/zsh/completions/" $fpath)
autoload -U compinit && compinit
# Add completions to search path # Add completions to search path
if [[ ":$FPATH:" != *":$XDG_CONFIG_HOME/zsh/completions:"* ]]; then export FPATH="$XDG_CONFIG_HOME/zsh/completions:$FPATH"; fi if [[ ":$FPATH:" != *":$XDG_CONFIG_HOME/zsh/completions:"* ]]; then
export FPATH="$XDG_CONFIG_HOME/zsh/completions:$FPATH"
fi
# Options # Options
setopt appendhistory # Immediately append history instead of overwriting setopt appendhistory # Immediately append history instead of overwriting
@ -167,11 +170,7 @@ bindkey -s '^n' '^uv .\n'
bindkey '^F' fzf_sesh_connect_widget bindkey '^F' fzf_sesh_connect_widget
eval "$(starship init zsh)" eval "$(starship init zsh)"
eval "$(fzf --zsh)"
eval "$(uv generate-shell-completion zsh)"
eval "$(uvx --generate-shell-completion zsh)"
eval "$(zoxide init zsh)" eval "$(zoxide init zsh)"
eval "$(fastanime completions)"
[[ -r ~/.local/share/zsh/plugins/znap/znap.zsh ]] || [[ -r ~/.local/share/zsh/plugins/znap/znap.zsh ]] ||
git clone --depth 1 -- \ git clone --depth 1 -- \
@ -189,6 +188,8 @@ autoload -U compinit && compinit
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath' zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
[ -f "$XDG_CONFIG_HOME/zsh/zoxide" ] && source "$XDG_CONFIG_HOME/zsh/zoxide" [ -f "$XDG_CONFIG_HOME/zsh/zoxide" ] && source "$XDG_CONFIG_HOME/zsh/zoxide"
if [[ ":$FPATH:" != *":$XDG_CONFIG_HOME/zsh/completions:"* ]]; then export FPATH="$XDG_CONFIG_HOME/zsh/completions:$FPATH"; fi
. "$HOME/.local/share/../bin/env" export PATH="$BUN_INSTALL/bin:$PATH"
# bun completions
[ -s "/home/kristofers/.bun/_bun" ] && source "/home/kristofers/.bun/_bun"

116
config/zsh/completions/_bat Normal file
View File

@ -0,0 +1,116 @@
#compdef bat
local curcontext="$curcontext" ret=1
local -a state state_descr line
typeset -A opt_args
(( $+functions[_bat_cache_subcommand] )) ||
_bat_cache_subcommand() {
local -a args
args=(
'(-b --build -c --clear)'{-b,--build}'[initialize or update the syntax/theme cache]'
'(-b --build -c --clear)'{-c,--clear}'[remove the cached syntax definitions and themes]'
--source='[specify directory to load syntaxes and themes from]:directory:_files -/'
--target='[specify directory to store the cached syntax and theme set in]:directory:_files -/'
--blank'[create completely new syntax and theme sets]'
--acknowledgements'[build acknowledgements.bin]'
'(: -)'{-h,--help}'[show help information]'
)
_arguments -S -s $args
}
(( $+functions[_bat_main] )) ||
_bat_main() {
local -a args
args=(
'(-A --show-all)'{-A,--show-all}'[show non-printable characters (space, tab, newline, ..)]'
--nonprintable-notation='[specify how to display non-printable characters when using --show-all]:notation:(caret unicode)'
\*{-p,--plain}'[show plain style (alias for `--style=plain`), repeat twice to disable automatic paging (alias for `--paging=never`)]'
'(-l --language)'{-l+,--language=}'[set the language for syntax highlighting]:language:->languages'
\*{-H+,--highlight-line=}'[highlight specified block of lines]:start\:end'
\*--file-name='[specify the name to display for a file]:name:_files'
'(-d --diff)'--diff'[only show lines that have been added/removed/modified]'
--diff-context='[specify lines of context around added/removed/modified lines when using `--diff`]:lines'
--tabs='[set the tab width]:tab width [4]'
--wrap='[specify the text-wrapping mode]:mode [auto]:(auto never character)'
'!(--wrap)'{-S,--chop-long-lines}
--terminal-width='[explicitly set the width of the terminal instead of determining it automatically]:width'
'(-n --number --diff --diff-context)'{-n,--number}'[show line numbers]'
--color='[specify when to use colors]:when:(auto never always)'
--italic-text='[use italics in output]:when:(always never)'
--decorations='[specify when to show the decorations]:when:(auto never always)'
--paging='[specify when to use the pager]:when:(auto never always)'
'(-m --map-syntax)'{-m+,--map-syntax=}'[map a glob pattern to an existing syntax name]: :->syntax-maps'
'(--theme)'--theme='[set the color theme for syntax highlighting]:theme:->theme_preferences'
'(--theme-dark)'--theme-dark='[set the color theme for syntax highlighting for dark backgrounds]:theme:->themes'
'(--theme-light)'--theme-light='[set the color theme for syntax highlighting for light backgrounds]:theme:->themes'
'(: --list-themes --list-languages -L)'--list-themes'[show all supported highlighting themes]'
--style='[comma-separated list of style elements to display]: : _values "style [default]"
default auto full plain changes header header-filename header-filesize grid rule numbers snip'
\*{-r+,--line-range=}'[only print the specified line range]:start\:end'
'(* -)'{-L,--list-languages}'[display all supported languages]'
-P'[disable paging]'
"--no-config[don't use the configuration file]"
"--no-custom-assets[don't load custom assets]"
'(--no-lessopen)'--lessopen'[enable the $LESSOPEN preprocessor]'
'(--lessopen)'--no-lessopen'[disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)]'
'(* -)'--config-dir"[show bat's configuration directory]"
'(* -)'--config-file'[show path to the configuration file]'
'(* -)'--generate-config-file'[generate a default configuration file]'
'(* -)'--cache-dir"[show bat's cache directory]"
'(* -)'{-h,--help}'[show help information]'
'(* -)'{-V,--version}'[show version information]'
'*: :{ _files || compadd cache }'
)
_arguments -S -s $args && ret=0
case "$state" in
syntax-maps)
if ! compset -P '*:'; then
_message -e patterns 'glob pattern:language'
return
fi
;& # fall-through
languages)
local IFS=$'\n'
local -a languages
languages=( $(bat --list-languages | awk -F':|,' '{ for (i = 1; i <= NF; ++i) printf("%s:%s\n", $i, $1) }') )
_describe 'language' languages && ret=0
;;
themes)
local -a themes expl
themes=(${(f)"$(_call_program themes bat --list-themes)"} )
_wanted themes expl 'theme' compadd -a themes && ret=0
;;
theme_preferences)
local -a themes expl
themes=(auto dark light auto:always auto:system ${(f)"$(_call_program themes bat --list-themes)"} )
_wanted themes expl 'theme' compadd -a themes && ret=0
;;
esac
return ret
}
case $words[2] in
cache)
## Completion of the 'cache' command itself is removed for better UX
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
shift words
(( CURRENT-- ))
curcontext="${curcontext%:*}-${words[1]}:"
_bat_cache_subcommand
;;
*)
_bat_main
;;
esac

1002
config/zsh/completions/_bun Normal file

File diff suppressed because it is too large Load Diff

2343
config/zsh/completions/_deno Normal file

File diff suppressed because it is too large Load Diff

189
config/zsh/completions/_dua Normal file
View File

@ -0,0 +1,189 @@
#compdef dua
autoload -U is-at-least
_dua() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" : \
'-t+[The amount of threads to use. Defaults to 0, indicating the amount of logical processors. Set to 1 to use only a single thread]:THREADS:_default' \
'--threads=[The amount of threads to use. Defaults to 0, indicating the amount of logical processors. Set to 1 to use only a single thread]:THREADS:_default' \
'-f+[The format with which to print byte counts]:FORMAT:(metric binary bytes gb gib mb mib)' \
'--format=[The format with which to print byte counts]:FORMAT:(metric binary bytes gb gib mb mib)' \
'*-i+[One or more absolute directories to ignore. Note that these are not ignored if they are passed as input path]:IGNORE_DIRS:_files' \
'*--ignore-dirs=[One or more absolute directories to ignore. Note that these are not ignored if they are passed as input path]:IGNORE_DIRS:_files' \
'--log-file=[Write a log file with debug information, including panics]:LOG_FILE:_files' \
'-A[Display apparent size instead of disk usage]' \
'--apparent-size[Display apparent size instead of disk usage]' \
'-l[Count hard-linked files each time they are seen]' \
'--count-hard-links[Count hard-linked files each time they are seen]' \
'-x[If set, we will not cross filesystems or traverse mount points]' \
'--stay-on-filesystem[If set, we will not cross filesystems or traverse mount points]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'-V[Print version]' \
'--version[Print version]' \
'::input -- One or more input files or directories. If unset, we will use all entries in the current working directory:_files' \
":: :_dua_commands" \
"*::: :->dua" \
&& ret=0
case $state in
(dua)
words=($line[2] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:dua-command-$line[2]:"
case $line[2] in
(interactive)
_arguments "${_arguments_options[@]}" : \
'-e[Do not check entries for presence when listing a directory to avoid slugging performance on slow filesystems]' \
'--no-entry-check[Do not check entries for presence when listing a directory to avoid slugging performance on slow filesystems]' \
'-h[Print help]' \
'--help[Print help]' \
'*::input -- One or more input files or directories. If unset, we will use all entries in the current working directory:_files' \
&& ret=0
;;
(i)
_arguments "${_arguments_options[@]}" : \
'-e[Do not check entries for presence when listing a directory to avoid slugging performance on slow filesystems]' \
'--no-entry-check[Do not check entries for presence when listing a directory to avoid slugging performance on slow filesystems]' \
'-h[Print help]' \
'--help[Print help]' \
'*::input -- One or more input files or directories. If unset, we will use all entries in the current working directory:_files' \
&& ret=0
;;
(aggregate)
_arguments "${_arguments_options[@]}" : \
'--stats[If set, print additional statistics about the file traversal to stderr]' \
'--no-sort[If set, paths will be printed in their order of occurrence on the command-line. Otherwise they are sorted by their size in bytes, ascending]' \
'--no-total[If set, no total column will be computed for multiple inputs]' \
'-h[Print help]' \
'--help[Print help]' \
'*::input -- One or more input files or directories. If unset, we will use all entries in the current working directory:_files' \
&& ret=0
;;
(a)
_arguments "${_arguments_options[@]}" : \
'--stats[If set, print additional statistics about the file traversal to stderr]' \
'--no-sort[If set, paths will be printed in their order of occurrence on the command-line. Otherwise they are sorted by their size in bytes, ascending]' \
'--no-total[If set, no total column will be computed for multiple inputs]' \
'-h[Print help]' \
'--help[Print help]' \
'*::input -- One or more input files or directories. If unset, we will use all entries in the current working directory:_files' \
&& ret=0
;;
(completions)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':shell -- The shell to generate a completions-script for:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_dua__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:dua-help-command-$line[1]:"
case $line[1] in
(interactive)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(aggregate)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(completions)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
}
(( $+functions[_dua_commands] )) ||
_dua_commands() {
local commands; commands=(
'interactive:Launch the terminal user interface' \
'i:Launch the terminal user interface' \
'aggregate:Aggregate the consumed space of one or more directories or files' \
'a:Aggregate the consumed space of one or more directories or files' \
'completions:Generate shell completions' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'dua commands' commands "$@"
}
(( $+functions[_dua__aggregate_commands] )) ||
_dua__aggregate_commands() {
local commands; commands=()
_describe -t commands 'dua aggregate commands' commands "$@"
}
(( $+functions[_dua__completions_commands] )) ||
_dua__completions_commands() {
local commands; commands=()
_describe -t commands 'dua completions commands' commands "$@"
}
(( $+functions[_dua__help_commands] )) ||
_dua__help_commands() {
local commands; commands=(
'interactive:Launch the terminal user interface' \
'aggregate:Aggregate the consumed space of one or more directories or files' \
'completions:Generate shell completions' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'dua help commands' commands "$@"
}
(( $+functions[_dua__help__aggregate_commands] )) ||
_dua__help__aggregate_commands() {
local commands; commands=()
_describe -t commands 'dua help aggregate commands' commands "$@"
}
(( $+functions[_dua__help__completions_commands] )) ||
_dua__help__completions_commands() {
local commands; commands=()
_describe -t commands 'dua help completions commands' commands "$@"
}
(( $+functions[_dua__help__help_commands] )) ||
_dua__help__help_commands() {
local commands; commands=()
_describe -t commands 'dua help help commands' commands "$@"
}
(( $+functions[_dua__help__interactive_commands] )) ||
_dua__help__interactive_commands() {
local commands; commands=()
_describe -t commands 'dua help interactive commands' commands "$@"
}
(( $+functions[_dua__interactive_commands] )) ||
_dua__interactive_commands() {
local commands; commands=()
_describe -t commands 'dua interactive commands' commands "$@"
}
if [ "$funcstack[1]" = "_dua" ]; then
_dua "$@"
else
compdef _dua dua
fi

View File

@ -0,0 +1,40 @@
#compdef fastanime
_fastanime_completion() {
local -a completions
local -a completions_with_descriptions
local -a response
(( ! $+commands[fastanime] )) && return 1
response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) _FASTANIME_COMPLETE=zsh_complete fastanime)}")
for type key descr in ${response}; do
if [[ "$type" == "plain" ]]; then
if [[ "$descr" == "_" ]]; then
completions+=("$key")
else
completions_with_descriptions+=("$key":"$descr")
fi
elif [[ "$type" == "dir" ]]; then
_path_files -/
elif [[ "$type" == "file" ]]; then
_path_files -f
fi
done
if [ -n "$completions_with_descriptions" ]; then
_describe -V unsorted completions_with_descriptions -U
fi
if [ -n "$completions" ]; then
compadd -U -V unsorted -a completions
fi
}
if [[ $zsh_eval_context[-1] == loadautofunc ]]; then
# autoload from fpath, call function directly
_fastanime_completion "$@"
else
# eval/source/. command, register function for later
compdef _fastanime_completion fastanime
fi

638
config/zsh/completions/_fzf Normal file
View File

@ -0,0 +1,638 @@
### key-bindings.zsh ###
# ____ ____
# / __/___ / __/
# / /_/_ / / /_
# / __/ / /_/ __/
# /_/ /___/_/ key-bindings.zsh
#
# - $FZF_TMUX_OPTS
# - $FZF_CTRL_T_COMMAND
# - $FZF_CTRL_T_OPTS
# - $FZF_CTRL_R_OPTS
# - $FZF_ALT_C_COMMAND
# - $FZF_ALT_C_OPTS
# Key bindings
# ------------
# The code at the top and the bottom of this file is the same as in completion.zsh.
# Refer to that file for explanation.
if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then
__fzf_key_bindings_options="options=(${(j: :)${(kv)options[@]}})"
else
() {
__fzf_key_bindings_options="setopt"
'local' '__fzf_opt'
for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do
if [[ -o "$__fzf_opt" ]]; then
__fzf_key_bindings_options+=" -o $__fzf_opt"
else
__fzf_key_bindings_options+=" +o $__fzf_opt"
fi
done
}
fi
'builtin' 'emulate' 'zsh' && 'builtin' 'setopt' 'no_aliases'
{
if [[ -o interactive ]]; then
#----BEGIN INCLUDE common.sh
# NOTE: Do not directly edit this section, which is copied from "common.sh".
# To modify it, one can edit "common.sh" and run "./update-common.sh" to apply
# the changes. See code comments in "common.sh" for the implementation details.
__fzf_defaults() {
printf '%s\n' "--height ${FZF_TMUX_HEIGHT:-40%} --min-height 20+ --bind=ctrl-z:ignore $1"
command cat "${FZF_DEFAULT_OPTS_FILE-}" 2> /dev/null
printf '%s\n' "${FZF_DEFAULT_OPTS-} $2"
}
__fzf_exec_awk() {
if [[ -z ${__fzf_awk-} ]]; then
__fzf_awk=awk
if [[ $OSTYPE == solaris* && -x /usr/xpg4/bin/awk ]]; then
__fzf_awk=/usr/xpg4/bin/awk
elif command -v mawk >/dev/null 2>&1; then
local n x y z d
IFS=' .' read -r n x y z d <<< $(command mawk -W version 2> /dev/null)
[[ $n == mawk ]] && (( d >= 20230302 && (x * 1000 + y) * 1000 + z >= 1003004 )) && __fzf_awk=mawk
fi
fi
LC_ALL=C exec "$__fzf_awk" "$@"
}
#----END INCLUDE
# CTRL-T - Paste the selected file path(s) into the command line
__fzf_select() {
setopt localoptions pipefail no_aliases 2> /dev/null
local item
FZF_DEFAULT_COMMAND=${FZF_CTRL_T_COMMAND:-} \
FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse --walker=file,dir,follow,hidden --scheme=path" "${FZF_CTRL_T_OPTS-} -m") \
FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd) "$@" < /dev/tty | while read -r item; do
echo -n -E "${(q)item} "
done
local ret=$?
echo
return $ret
}
__fzfcmd() {
[ -n "${TMUX_PANE-}" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "${FZF_TMUX_OPTS-}" ]; } &&
echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf"
}
fzf-file-widget() {
LBUFFER="${LBUFFER}$(__fzf_select)"
local ret=$?
zle reset-prompt
return $ret
}
if [[ "${FZF_CTRL_T_COMMAND-x}" != "" ]]; then
zle -N fzf-file-widget
bindkey -M emacs '^T' fzf-file-widget
bindkey -M vicmd '^T' fzf-file-widget
bindkey -M viins '^T' fzf-file-widget
fi
# ALT-C - cd into the selected directory
fzf-cd-widget() {
setopt localoptions pipefail no_aliases 2> /dev/null
local dir="$(
FZF_DEFAULT_COMMAND=${FZF_ALT_C_COMMAND:-} \
FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse --walker=dir,follow,hidden --scheme=path" "${FZF_ALT_C_OPTS-} +m") \
FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd) < /dev/tty)"
if [[ -z "$dir" ]]; then
zle redisplay
return 0
fi
zle push-line # Clear buffer. Auto-restored on next prompt.
BUFFER="builtin cd -- ${(q)dir:a}"
zle accept-line
local ret=$?
unset dir # ensure this doesn't end up appearing in prompt expansion
zle reset-prompt
return $ret
}
if [[ "${FZF_ALT_C_COMMAND-x}" != "" ]]; then
zle -N fzf-cd-widget
bindkey -M emacs '\ec' fzf-cd-widget
bindkey -M vicmd '\ec' fzf-cd-widget
bindkey -M viins '\ec' fzf-cd-widget
fi
# CTRL-R - Paste the selected command from history into the command line
fzf-history-widget() {
local selected
setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases noglob nobash_rematch 2> /dev/null
# Ensure the module is loaded if not already, and the required features, such
# as the associative 'history' array, which maps event numbers to full history
# lines, are set. Also, make sure Perl is installed for multi-line output.
if zmodload -F zsh/parameter p:{commands,history} 2>/dev/null && (( ${+commands[perl]} )); then
selected="$(printf '%s\t%s\000' "${(kv)history[@]}" |
perl -0 -ne 'if (!$seen{(/^\s*[0-9]+\**\t(.*)/s, $1)}++) { s/\n/\n\t/g; print; }' |
FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '\t↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m --read0") \
FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd))"
else
selected="$(fc -rl 1 | __fzf_exec_awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", cmd); if (!seen[cmd]++) print $0 }' |
FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '\t↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m") \
FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd))"
fi
local ret=$?
if [ -n "$selected" ]; then
if [[ $(__fzf_exec_awk '{print $1; exit}' <<< "$selected") =~ ^[1-9][0-9]* ]]; then
zle vi-fetch-history -n $MATCH
else # selected is a custom query, not from history
LBUFFER="$selected"
fi
fi
zle reset-prompt
return $ret
}
zle -N fzf-history-widget
bindkey -M emacs '^R' fzf-history-widget
bindkey -M vicmd '^R' fzf-history-widget
bindkey -M viins '^R' fzf-history-widget
fi
} always {
eval $__fzf_key_bindings_options
'unset' '__fzf_key_bindings_options'
}
### end: key-bindings.zsh ###
### completion.zsh ###
# ____ ____
# / __/___ / __/
# / /_/_ / / /_
# / __/ / /_/ __/
# /_/ /___/_/ completion.zsh
#
# - $FZF_TMUX (default: 0)
# - $FZF_TMUX_OPTS (default: empty)
# - $FZF_COMPLETION_TRIGGER (default: '**')
# - $FZF_COMPLETION_OPTS (default: empty)
# - $FZF_COMPLETION_PATH_OPTS (default: empty)
# - $FZF_COMPLETION_DIR_OPTS (default: empty)
# Both branches of the following `if` do the same thing -- define
# __fzf_completion_options such that `eval $__fzf_completion_options` sets
# all options to the same values they currently have. We'll do just that at
# the bottom of the file after changing options to what we prefer.
#
# IMPORTANT: Until we get to the `emulate` line, all words that *can* be quoted
# *must* be quoted in order to prevent alias expansion. In addition, code must
# be written in a way works with any set of zsh options. This is very tricky, so
# careful when you change it.
#
# Start by loading the builtin zsh/parameter module. It provides `options`
# associative array that stores current shell options.
if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then
# This is the fast branch and it gets taken on virtually all Zsh installations.
#
# ${(kv)options[@]} expands to array of keys (option names) and values ("on"
# or "off"). The subsequent expansion# with (j: :) flag joins all elements
# together separated by spaces. __fzf_completion_options ends up with a value
# like this: "options=(shwordsplit off aliases on ...)".
__fzf_completion_options="options=(${(j: :)${(kv)options[@]}})"
else
# This branch is much slower because it forks to get the names of all
# zsh options. It's possible to eliminate this fork but it's not worth the
# trouble because this branch gets taken only on very ancient or broken
# zsh installations.
() {
# That `()` above defines an anonymous function. This is essentially a scope
# for local parameters. We use it to avoid polluting global scope.
'local' '__fzf_opt'
__fzf_completion_options="setopt"
# `set -o` prints one line for every zsh option. Each line contains option
# name, some spaces, and then either "on" or "off". We just want option names.
# Expansion with (@f) flag splits a string into lines. The outer expansion
# removes spaces and everything that follow them on every line. __fzf_opt
# ends up iterating over option names: shwordsplit, aliases, etc.
for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do
if [[ -o "$__fzf_opt" ]]; then
# Option $__fzf_opt is currently on, so remember to set it back on.
__fzf_completion_options+=" -o $__fzf_opt"
else
# Option $__fzf_opt is currently off, so remember to set it back off.
__fzf_completion_options+=" +o $__fzf_opt"
fi
done
# The value of __fzf_completion_options here looks like this:
# "setopt +o shwordsplit -o aliases ..."
}
fi
# Enable the default zsh options (those marked with <Z> in `man zshoptions`)
# but without `aliases`. Aliases in functions are expanded when functions are
# defined, so if we disable aliases here, we'll be sure to have no pesky
# aliases in any of our functions. This way we won't need prefix every
# command with `command` or to quote every word to defend against global
# aliases. Note that `aliases` is not the only option that's important to
# control. There are several others that could wreck havoc if they are set
# to values we don't expect. With the following `emulate` command we
# sidestep this issue entirely.
'builtin' 'emulate' 'zsh' && 'builtin' 'setopt' 'no_aliases'
# This brace is the start of try-always block. The `always` part is like
# `finally` in lesser languages. We use it to *always* restore user options.
{
# The 'emulate' command should not be placed inside the interactive if check;
# placing it there fails to disable alias expansion. See #3731.
if [[ -o interactive ]]; then
# To use custom commands instead of find, override _fzf_compgen_{path,dir}
#
# _fzf_compgen_path() {
# echo "$1"
# command find -L "$1" \
# -name .git -prune -o -name .hg -prune -o -name .svn -prune -o \( -type d -o -type f -o -type l \) \
# -a -not -path "$1" -print 2> /dev/null | sed 's@^\./@@'
# }
#
# _fzf_compgen_dir() {
# command find -L "$1" \
# -name .git -prune -o -name .hg -prune -o -name .svn -prune -o -type d \
# -a -not -path "$1" -print 2> /dev/null | sed 's@^\./@@'
# }
###########################################################
#----BEGIN INCLUDE common.sh
# NOTE: Do not directly edit this section, which is copied from "common.sh".
# To modify it, one can edit "common.sh" and run "./update-common.sh" to apply
# the changes. See code comments in "common.sh" for the implementation details.
__fzf_defaults() {
printf '%s\n' "--height ${FZF_TMUX_HEIGHT:-40%} --min-height 20+ --bind=ctrl-z:ignore $1"
command cat "${FZF_DEFAULT_OPTS_FILE-}" 2> /dev/null
printf '%s\n' "${FZF_DEFAULT_OPTS-} $2"
}
__fzf_exec_awk() {
if [[ -z ${__fzf_awk-} ]]; then
__fzf_awk=awk
if [[ $OSTYPE == solaris* && -x /usr/xpg4/bin/awk ]]; then
__fzf_awk=/usr/xpg4/bin/awk
elif command -v mawk >/dev/null 2>&1; then
local n x y z d
IFS=' .' read -r n x y z d <<< $(command mawk -W version 2> /dev/null)
[[ $n == mawk ]] && (( d >= 20230302 && (x * 1000 + y) * 1000 + z >= 1003004 )) && __fzf_awk=mawk
fi
fi
LC_ALL=C exec "$__fzf_awk" "$@"
}
#----END INCLUDE
__fzf_comprun() {
if [[ "$(type _fzf_comprun 2>&1)" =~ function ]]; then
_fzf_comprun "$@"
elif [ -n "${TMUX_PANE-}" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "${FZF_TMUX_OPTS-}" ]; }; then
shift
if [ -n "${FZF_TMUX_OPTS-}" ]; then
fzf-tmux ${(Q)${(Z+n+)FZF_TMUX_OPTS}} -- "$@"
else
fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%} -- "$@"
fi
else
shift
fzf "$@"
fi
}
# Extract the name of the command. e.g. ls; foo=1 ssh **<tab>
__fzf_extract_command() {
# Control completion with the "compstate" parameter, insert and list nothing
compstate[insert]=
compstate[list]=
cmd_word="${(Q)words[1]}"
}
__fzf_generic_path_completion() {
local base lbuf compgen fzf_opts suffix tail dir leftover matches
base=$1
lbuf=$2
compgen=$3
fzf_opts=$4
suffix=$5
tail=$6
setopt localoptions nonomatch
if [[ $base = *'$('* ]] || [[ $base = *'<('* ]] || [[ $base = *'>('* ]] || [[ $base = *':='* ]] || [[ $base = *'`'* ]]; then
return
fi
eval "base=$base" 2> /dev/null || return
[[ $base = *"/"* ]] && dir="$base"
while [ 1 ]; do
if [[ -z "$dir" || -d ${dir} ]]; then
leftover=${base/#"$dir"}
leftover=${leftover/#\/}
[ -z "$dir" ] && dir='.'
[ "$dir" != "/" ] && dir="${dir/%\//}"
matches=$(
export FZF_DEFAULT_OPTS
FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse --scheme=path" "${FZF_COMPLETION_OPTS-}")
unset FZF_DEFAULT_COMMAND FZF_DEFAULT_OPTS_FILE
if declare -f "$compgen" > /dev/null; then
eval "$compgen $(printf %q "$dir")" | __fzf_comprun "$cmd_word" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover"
else
if [[ $compgen =~ dir ]]; then
walker=dir,follow
rest=${FZF_COMPLETION_DIR_OPTS-}
else
walker=file,dir,follow,hidden
rest=${FZF_COMPLETION_PATH_OPTS-}
fi
__fzf_comprun "$cmd_word" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" --walker "$walker" --walker-root="$dir" ${(Q)${(Z+n+)rest}} < /dev/tty
fi | while read -r item; do
item="${item%$suffix}$suffix"
echo -n -E "${(q)item} "
done
)
matches=${matches% }
if [ -n "$matches" ]; then
LBUFFER="$lbuf$matches$tail"
fi
zle reset-prompt
break
fi
dir=$(dirname "$dir")
dir=${dir%/}/
done
}
_fzf_path_completion() {
__fzf_generic_path_completion "$1" "$2" _fzf_compgen_path \
"-m" "" " "
}
_fzf_dir_completion() {
__fzf_generic_path_completion "$1" "$2" _fzf_compgen_dir \
"" "/" ""
}
_fzf_feed_fifo() {
command rm -f "$1"
mkfifo "$1"
cat <&0 > "$1" &|
}
_fzf_complete() {
setopt localoptions ksh_arrays
# Split arguments around --
local args rest str_arg i sep
args=("$@")
sep=
for i in {0..${#args[@]}}; do
if [[ "${args[$i]-}" = -- ]]; then
sep=$i
break
fi
done
if [[ -n "$sep" ]]; then
str_arg=
rest=("${args[@]:$((sep + 1)):${#args[@]}}")
args=("${args[@]:0:$sep}")
else
str_arg=$1
args=()
shift
rest=("$@")
fi
local fifo lbuf matches post
fifo="${TMPDIR:-/tmp}/fzf-complete-fifo-$$"
lbuf=${rest[0]}
post="${funcstack[1]}_post"
type $post > /dev/null 2>&1 || post=cat
_fzf_feed_fifo "$fifo"
matches=$(
FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse" "${FZF_COMPLETION_OPTS-} $str_arg") \
FZF_DEFAULT_OPTS_FILE='' \
__fzf_comprun "$cmd_word" "${args[@]}" -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ')
if [ -n "$matches" ]; then
LBUFFER="$lbuf$matches"
fi
command rm -f "$fifo"
}
# To use custom hostname lists, override __fzf_list_hosts.
# The function is expected to print hostnames, one per line as well as in the
# desired sorting and with any duplicates removed, to standard output.
if ! declare -f __fzf_list_hosts > /dev/null; then
__fzf_list_hosts() {
command sort -u \
<(
# Note: To make the pathname expansion of "~/.ssh/config.d/*" work
# properly, we need to adjust the related shell options. We need to
# unset "NO_GLOB" (or reset "GLOB"), which disable the pathname
# expansion totally. We need to unset "DOT_GLOB" and set "CASE_GLOB"
# to avoid matching unwanted files. We need to set "NULL_GLOB" to
# avoid attempting to read the literal filename '~/.ssh/config.d/*'
# when no matching is found.
setopt GLOB NO_DOT_GLOB CASE_GLOB NO_NOMATCH NULL_GLOB
__fzf_exec_awk '
# Note: mawk <= 1.3.3-20090705 does not support the POSIX brackets of
# the form [[:blank:]], and Ubuntu 18.04 LTS still uses this
# 16-year-old mawk unfortunately. We need to use [ \t] instead.
match(tolower($0), /^[ \t]*host(name)?[ \t]*[ \t=]/) {
$0 = substr($0, RLENGTH + 1) # Remove "Host(name)?=?"
sub(/#.*/, "")
for (i = 1; i <= NF; i++)
if ($i !~ /[*?%]/)
print $i
}
' ~/.ssh/config ~/.ssh/config.d/* /etc/ssh/ssh_config 2> /dev/null
) \
<(
__fzf_exec_awk -F ',' '
match($0, /^[][a-zA-Z0-9.,:-]+/) {
$0 = substr($0, 1, RLENGTH)
gsub(/[][]|:[^,]*/, "")
for (i = 1; i <= NF; i++)
print $i
}
' ~/.ssh/known_hosts 2> /dev/null
) \
<(
__fzf_exec_awk '
{
sub(/#.*/, "")
for (i = 2; i <= NF; i++)
if ($i != "0.0.0.0")
print $i
}
' /etc/hosts 2> /dev/null
)
}
fi
_fzf_complete_telnet() {
_fzf_complete +m -- "$@" < <(__fzf_list_hosts)
}
# The first and the only argument is the LBUFFER without the current word that contains the trigger.
# The current word without the trigger is in the $prefix variable passed from the caller.
_fzf_complete_ssh() {
local -a tokens
tokens=(${(z)1})
case ${tokens[-1]} in
-i|-F|-E)
_fzf_path_completion "$prefix" "$1"
;;
*)
local user
[[ $prefix =~ @ ]] && user="${prefix%%@*}@"
_fzf_complete +m -- "$@" < <(__fzf_list_hosts | __fzf_exec_awk -v user="$user" '{print user $0}')
;;
esac
}
_fzf_complete_export() {
_fzf_complete -m -- "$@" < <(
declare -xp | sed 's/=.*//' | sed 's/.* //'
)
}
_fzf_complete_unset() {
_fzf_complete -m -- "$@" < <(
declare -xp | sed 's/=.*//' | sed 's/.* //'
)
}
_fzf_complete_unalias() {
_fzf_complete +m -- "$@" < <(
alias | sed 's/=.*//'
)
}
_fzf_complete_kill() {
local transformer
transformer='
if [[ $FZF_KEY =~ ctrl|alt|shift ]] && [[ -n $FZF_NTH ]]; then
nths=( ${FZF_NTH//,/ } )
new_nths=()
found=0
for nth in ${nths[@]}; do
if [[ $nth = $FZF_CLICK_HEADER_NTH ]]; then
found=1
else
new_nths+=($nth)
fi
done
[[ $found = 0 ]] && new_nths+=($FZF_CLICK_HEADER_NTH)
new_nths=${new_nths[*]}
new_nths=${new_nths// /,}
echo "change-nth($new_nths)+change-prompt($new_nths> )"
else
if [[ $FZF_NTH = $FZF_CLICK_HEADER_NTH ]]; then
echo "change-nth()+change-prompt(> )"
else
echo "change-nth($FZF_CLICK_HEADER_NTH)+change-prompt($FZF_CLICK_HEADER_WORD> )"
fi
fi
'
_fzf_complete -m --header-lines=1 --no-preview --wrap --color fg:dim,nth:regular \
--bind "click-header:transform:$transformer" -- "$@" < <(
command ps -eo user,pid,ppid,start,time,command 2> /dev/null ||
command ps -eo user,pid,ppid,time,args 2> /dev/null || # For BusyBox
command ps --everyone --full --windows # For cygwin
)
}
_fzf_complete_kill_post() {
__fzf_exec_awk '{print $2}'
}
fzf-completion() {
local tokens prefix trigger tail matches lbuf d_cmds cursor_pos cmd_word
setopt localoptions noshwordsplit noksh_arrays noposixbuiltins
# http://zsh.sourceforge.net/FAQ/zshfaq03.html
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
tokens=(${(z)LBUFFER})
if [ ${#tokens} -lt 1 ]; then
zle ${fzf_default_completion:-expand-or-complete}
return
fi
# Explicitly allow for empty trigger.
trigger=${FZF_COMPLETION_TRIGGER-'**'}
[[ -z $trigger && ${LBUFFER[-1]} == ' ' ]] && tokens+=("")
# When the trigger starts with ';', it becomes a separate token
if [[ ${LBUFFER} = *"${tokens[-2]-}${tokens[-1]}" ]]; then
tokens[-2]="${tokens[-2]-}${tokens[-1]}"
tokens=(${tokens[0,-2]})
fi
lbuf=$LBUFFER
tail=${LBUFFER:$(( ${#LBUFFER} - ${#trigger} ))}
# Trigger sequence given
if [ ${#tokens} -gt 1 -a "$tail" = "$trigger" ]; then
d_cmds=(${=FZF_COMPLETION_DIR_COMMANDS-cd pushd rmdir})
{
cursor_pos=$CURSOR
# Move the cursor before the trigger to preserve word array elements when
# trigger chars like ';' or '`' would otherwise reset the 'words' array.
CURSOR=$((cursor_pos - ${#trigger} - 1))
# Check if at least one completion system (old or new) is active.
# If at least one user-defined completion widget is detected, nothing will
# be completed if neither the old nor the new completion system is enabled.
# In such cases, the 'zsh/compctl' module is loaded as a fallback.
if ! zmodload -F zsh/parameter p:functions 2>/dev/null || ! (( ${+functions[compdef]} )); then
zmodload -F zsh/compctl 2>/dev/null
fi
# Create a completion widget to access the 'words' array (man zshcompwid)
zle -C __fzf_extract_command .complete-word __fzf_extract_command
zle __fzf_extract_command
} always {
CURSOR=$cursor_pos
# Delete the completion widget
zle -D __fzf_extract_command 2>/dev/null
}
[ -z "$trigger" ] && prefix=${tokens[-1]} || prefix=${tokens[-1]:0:-${#trigger}}
if [[ $prefix = *'$('* ]] || [[ $prefix = *'<('* ]] || [[ $prefix = *'>('* ]] || [[ $prefix = *':='* ]] || [[ $prefix = *'`'* ]]; then
return
fi
[ -n "${tokens[-1]}" ] && lbuf=${lbuf:0:-${#tokens[-1]}}
if eval "noglob type _fzf_complete_${cmd_word} >/dev/null"; then
prefix="$prefix" eval _fzf_complete_${cmd_word} ${(q)lbuf}
zle reset-prompt
elif [ ${d_cmds[(i)$cmd_word]} -le ${#d_cmds} ]; then
_fzf_dir_completion "$prefix" "$lbuf"
else
_fzf_path_completion "$prefix" "$lbuf"
fi
# Fall back to default completion
else
zle ${fzf_default_completion:-expand-or-complete}
fi
}
[ -z "$fzf_default_completion" ] && {
binding=$(bindkey '^I')
[[ $binding =~ 'undefined-key' ]] || fzf_default_completion=$binding[(s: :w)2]
unset binding
}
# Normal widget
zle -N fzf-completion
bindkey '^I' fzf-completion
fi
} always {
# Restore the original options.
eval $__fzf_completion_options
'unset' '__fzf_completion_options'
}
### end: completion.zsh ###

View File

@ -0,0 +1,635 @@
#compdef sqlx
autoload -U is-at-least
_sqlx() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_sqlx_commands" \
"*::: :->sqlx-cli" \
&& ret=0
case $state in
(sqlx-cli)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-command-$line[1]:"
case $line[1] in
(database)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_sqlx__database_commands" \
"*::: :->database" \
&& ret=0
case $state in
(database)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-database-command-$line[1]:"
case $line[1] in
(create)
_arguments "${_arguments_options[@]}" : \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(drop)
_arguments "${_arguments_options[@]}" : \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'-y[Automatic confirmation. Without this option, you will be prompted before dropping your database]' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-f[PostgreSQL only\: force drops the database]' \
'--force[PostgreSQL only\: force drops the database]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(reset)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'-y[Automatic confirmation. Without this option, you will be prompted before dropping your database]' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-f[PostgreSQL only\: force drops the database]' \
'--force[PostgreSQL only\: force drops the database]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(setup)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_sqlx__database__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-database-help-command-$line[1]:"
case $line[1] in
(create)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(drop)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(reset)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(setup)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(prepare)
_arguments "${_arguments_options[@]}" : \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'--check[Run in '\''check'\'' mode. Exits with 0 if the query metadata is up-to-date. Exits with 1 if the query metadata needs updating]' \
'--all[Prepare query macros in dependencies that exist outside the current crate or workspace]' \
'--workspace[Generate a single workspace-level \`.sqlx\` folder]' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::args -- Arguments to be passed to `cargo rustc ...`:_default' \
&& ret=0
;;
(migrate)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_sqlx__migrate_commands" \
"*::: :->migrate" \
&& ret=0
case $state in
(migrate)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-migrate-command-$line[1]:"
case $line[1] in
(add)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'-r[If true, creates a pair of up and down migration files with same version else creates a single sql file]' \
'-t[If set, use timestamp versioning for the new migration. Conflicts with \`--sequential\`]' \
'--timestamp[If set, use timestamp versioning for the new migration. Conflicts with \`--sequential\`]' \
'(-t --timestamp)-s[If set, use sequential versioning for the new migration. Conflicts with \`--timestamp\`]' \
'(-t --timestamp)--sequential[If set, use sequential versioning for the new migration. Conflicts with \`--timestamp\`]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
':description:_default' \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'--target-version=[Apply migrations up to the specified version. If unspecified, apply all pending migrations. If already at the target version, then no-op]:TARGET_VERSION:_default' \
'--dry-run[List all the migrations to be run without applying]' \
'--ignore-missing[Ignore applied migrations that are missing in the resolved migrations]' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(revert)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'--target-version=[Revert migrations down to the specified version. If unspecified, revert only the last migration. Set to 0 to revert all migrations. If already at the target version, then no-op]:TARGET_VERSION:_default' \
'--dry-run[List the migration to be reverted without applying]' \
'--ignore-missing[Ignore applied migrations that are missing in the resolved migrations]' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'-D+[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--database-url=[Location of the DB, by default will be read from the DATABASE_URL env var or \`.env\` files]:DATABASE_URL:_default' \
'--connect-timeout=[The maximum time, in seconds, to try connecting to the database server before returning an error]:CONNECT_TIMEOUT:_default' \
'--no-dotenv[Do not automatically load \`.env\` files]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(build-script)
_arguments "${_arguments_options[@]}" : \
'--source=[Path to folder containing migrations]:SOURCE:_default' \
'--force[Overwrite the build script if it already exists]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_sqlx__migrate__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-migrate-help-command-$line[1]:"
case $line[1] in
(add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revert)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(build-script)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(completions)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':shell:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_sqlx__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-help-command-$line[1]:"
case $line[1] in
(database)
_arguments "${_arguments_options[@]}" : \
":: :_sqlx__help__database_commands" \
"*::: :->database" \
&& ret=0
case $state in
(database)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-help-database-command-$line[1]:"
case $line[1] in
(create)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(drop)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(reset)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(setup)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(prepare)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(migrate)
_arguments "${_arguments_options[@]}" : \
":: :_sqlx__help__migrate_commands" \
"*::: :->migrate" \
&& ret=0
case $state in
(migrate)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:sqlx-help-migrate-command-$line[1]:"
case $line[1] in
(add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revert)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(build-script)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(completions)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
}
(( $+functions[_sqlx_commands] )) ||
_sqlx_commands() {
local commands; commands=(
'database:Group of commands for creating and dropping your database' \
'prepare:Generate query metadata to support offline compile-time verification' \
'migrate:Group of commands for creating and running migrations' \
'completions:Generate shell completions for the specified shell' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'sqlx commands' commands "$@"
}
(( $+functions[_sqlx__completions_commands] )) ||
_sqlx__completions_commands() {
local commands; commands=()
_describe -t commands 'sqlx completions commands' commands "$@"
}
(( $+functions[_sqlx__database_commands] )) ||
_sqlx__database_commands() {
local commands; commands=(
'create:Creates the database specified in your DATABASE_URL' \
'drop:Drops the database specified in your DATABASE_URL' \
'reset:Drops the database specified in your DATABASE_URL, re-creates it, and runs any pending migrations' \
'setup:Creates the database specified in your DATABASE_URL and runs any pending migrations' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'sqlx database commands' commands "$@"
}
(( $+functions[_sqlx__database__create_commands] )) ||
_sqlx__database__create_commands() {
local commands; commands=()
_describe -t commands 'sqlx database create commands' commands "$@"
}
(( $+functions[_sqlx__database__drop_commands] )) ||
_sqlx__database__drop_commands() {
local commands; commands=()
_describe -t commands 'sqlx database drop commands' commands "$@"
}
(( $+functions[_sqlx__database__help_commands] )) ||
_sqlx__database__help_commands() {
local commands; commands=(
'create:Creates the database specified in your DATABASE_URL' \
'drop:Drops the database specified in your DATABASE_URL' \
'reset:Drops the database specified in your DATABASE_URL, re-creates it, and runs any pending migrations' \
'setup:Creates the database specified in your DATABASE_URL and runs any pending migrations' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'sqlx database help commands' commands "$@"
}
(( $+functions[_sqlx__database__help__create_commands] )) ||
_sqlx__database__help__create_commands() {
local commands; commands=()
_describe -t commands 'sqlx database help create commands' commands "$@"
}
(( $+functions[_sqlx__database__help__drop_commands] )) ||
_sqlx__database__help__drop_commands() {
local commands; commands=()
_describe -t commands 'sqlx database help drop commands' commands "$@"
}
(( $+functions[_sqlx__database__help__help_commands] )) ||
_sqlx__database__help__help_commands() {
local commands; commands=()
_describe -t commands 'sqlx database help help commands' commands "$@"
}
(( $+functions[_sqlx__database__help__reset_commands] )) ||
_sqlx__database__help__reset_commands() {
local commands; commands=()
_describe -t commands 'sqlx database help reset commands' commands "$@"
}
(( $+functions[_sqlx__database__help__setup_commands] )) ||
_sqlx__database__help__setup_commands() {
local commands; commands=()
_describe -t commands 'sqlx database help setup commands' commands "$@"
}
(( $+functions[_sqlx__database__reset_commands] )) ||
_sqlx__database__reset_commands() {
local commands; commands=()
_describe -t commands 'sqlx database reset commands' commands "$@"
}
(( $+functions[_sqlx__database__setup_commands] )) ||
_sqlx__database__setup_commands() {
local commands; commands=()
_describe -t commands 'sqlx database setup commands' commands "$@"
}
(( $+functions[_sqlx__help_commands] )) ||
_sqlx__help_commands() {
local commands; commands=(
'database:Group of commands for creating and dropping your database' \
'prepare:Generate query metadata to support offline compile-time verification' \
'migrate:Group of commands for creating and running migrations' \
'completions:Generate shell completions for the specified shell' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'sqlx help commands' commands "$@"
}
(( $+functions[_sqlx__help__completions_commands] )) ||
_sqlx__help__completions_commands() {
local commands; commands=()
_describe -t commands 'sqlx help completions commands' commands "$@"
}
(( $+functions[_sqlx__help__database_commands] )) ||
_sqlx__help__database_commands() {
local commands; commands=(
'create:Creates the database specified in your DATABASE_URL' \
'drop:Drops the database specified in your DATABASE_URL' \
'reset:Drops the database specified in your DATABASE_URL, re-creates it, and runs any pending migrations' \
'setup:Creates the database specified in your DATABASE_URL and runs any pending migrations' \
)
_describe -t commands 'sqlx help database commands' commands "$@"
}
(( $+functions[_sqlx__help__database__create_commands] )) ||
_sqlx__help__database__create_commands() {
local commands; commands=()
_describe -t commands 'sqlx help database create commands' commands "$@"
}
(( $+functions[_sqlx__help__database__drop_commands] )) ||
_sqlx__help__database__drop_commands() {
local commands; commands=()
_describe -t commands 'sqlx help database drop commands' commands "$@"
}
(( $+functions[_sqlx__help__database__reset_commands] )) ||
_sqlx__help__database__reset_commands() {
local commands; commands=()
_describe -t commands 'sqlx help database reset commands' commands "$@"
}
(( $+functions[_sqlx__help__database__setup_commands] )) ||
_sqlx__help__database__setup_commands() {
local commands; commands=()
_describe -t commands 'sqlx help database setup commands' commands "$@"
}
(( $+functions[_sqlx__help__help_commands] )) ||
_sqlx__help__help_commands() {
local commands; commands=()
_describe -t commands 'sqlx help help commands' commands "$@"
}
(( $+functions[_sqlx__help__migrate_commands] )) ||
_sqlx__help__migrate_commands() {
local commands; commands=(
'add:Create a new migration with the given description' \
'run:Run all pending migrations' \
'revert:Revert the latest migration with a down file' \
'info:List all available migrations' \
'build-script:Generate a \`build.rs\` to trigger recompilation when a new migration is added' \
)
_describe -t commands 'sqlx help migrate commands' commands "$@"
}
(( $+functions[_sqlx__help__migrate__add_commands] )) ||
_sqlx__help__migrate__add_commands() {
local commands; commands=()
_describe -t commands 'sqlx help migrate add commands' commands "$@"
}
(( $+functions[_sqlx__help__migrate__build-script_commands] )) ||
_sqlx__help__migrate__build-script_commands() {
local commands; commands=()
_describe -t commands 'sqlx help migrate build-script commands' commands "$@"
}
(( $+functions[_sqlx__help__migrate__info_commands] )) ||
_sqlx__help__migrate__info_commands() {
local commands; commands=()
_describe -t commands 'sqlx help migrate info commands' commands "$@"
}
(( $+functions[_sqlx__help__migrate__revert_commands] )) ||
_sqlx__help__migrate__revert_commands() {
local commands; commands=()
_describe -t commands 'sqlx help migrate revert commands' commands "$@"
}
(( $+functions[_sqlx__help__migrate__run_commands] )) ||
_sqlx__help__migrate__run_commands() {
local commands; commands=()
_describe -t commands 'sqlx help migrate run commands' commands "$@"
}
(( $+functions[_sqlx__help__prepare_commands] )) ||
_sqlx__help__prepare_commands() {
local commands; commands=()
_describe -t commands 'sqlx help prepare commands' commands "$@"
}
(( $+functions[_sqlx__migrate_commands] )) ||
_sqlx__migrate_commands() {
local commands; commands=(
'add:Create a new migration with the given description' \
'run:Run all pending migrations' \
'revert:Revert the latest migration with a down file' \
'info:List all available migrations' \
'build-script:Generate a \`build.rs\` to trigger recompilation when a new migration is added' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'sqlx migrate commands' commands "$@"
}
(( $+functions[_sqlx__migrate__add_commands] )) ||
_sqlx__migrate__add_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate add commands' commands "$@"
}
(( $+functions[_sqlx__migrate__build-script_commands] )) ||
_sqlx__migrate__build-script_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate build-script commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help_commands] )) ||
_sqlx__migrate__help_commands() {
local commands; commands=(
'add:Create a new migration with the given description' \
'run:Run all pending migrations' \
'revert:Revert the latest migration with a down file' \
'info:List all available migrations' \
'build-script:Generate a \`build.rs\` to trigger recompilation when a new migration is added' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'sqlx migrate help commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help__add_commands] )) ||
_sqlx__migrate__help__add_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate help add commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help__build-script_commands] )) ||
_sqlx__migrate__help__build-script_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate help build-script commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help__help_commands] )) ||
_sqlx__migrate__help__help_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate help help commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help__info_commands] )) ||
_sqlx__migrate__help__info_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate help info commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help__revert_commands] )) ||
_sqlx__migrate__help__revert_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate help revert commands' commands "$@"
}
(( $+functions[_sqlx__migrate__help__run_commands] )) ||
_sqlx__migrate__help__run_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate help run commands' commands "$@"
}
(( $+functions[_sqlx__migrate__info_commands] )) ||
_sqlx__migrate__info_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate info commands' commands "$@"
}
(( $+functions[_sqlx__migrate__revert_commands] )) ||
_sqlx__migrate__revert_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate revert commands' commands "$@"
}
(( $+functions[_sqlx__migrate__run_commands] )) ||
_sqlx__migrate__run_commands() {
local commands; commands=()
_describe -t commands 'sqlx migrate run commands' commands "$@"
}
(( $+functions[_sqlx__prepare_commands] )) ||
_sqlx__prepare_commands() {
local commands; commands=()
_describe -t commands 'sqlx prepare commands' commands "$@"
}
if [ "$funcstack[1]" = "_sqlx" ]; then
_sqlx "$@"
else
compdef _sqlx sqlx
fi

4940
config/zsh/completions/_uv Normal file

File diff suppressed because it is too large Load Diff

146
config/zsh/completions/_uvx Normal file
View File

@ -0,0 +1,146 @@
#compdef uvx
autoload -U is-at-least
_uvx() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" : \
'--from=[Use the given package to provide the command]:FROM:_default' \
'*-w+[Run with the given packages installed]:WITH:_default' \
'*--with=[Run with the given packages installed]:WITH:_default' \
'*--with-editable=[Run with the given packages installed in editable mode]:WITH_EDITABLE:_default' \
'*--with-requirements=[Run with all packages listed in the given \`requirements.txt\` files]:WITH_REQUIREMENTS:_default' \
'*-c+[Constrain versions using the given requirements files]:CONSTRAINTS:_default' \
'*--constraints=[Constrain versions using the given requirements files]:CONSTRAINTS:_default' \
'*-b+[Constrain build dependencies using the given requirements files when building source distributions]:BUILD_CONSTRAINTS:_default' \
'*--build-constraints=[Constrain build dependencies using the given requirements files when building source distributions]:BUILD_CONSTRAINTS:_default' \
'*--overrides=[Override versions using the given requirements files]:OVERRIDES:_default' \
'*--env-file=[Load environment variables from a \`.env\` file]:ENV_FILE:_files' \
'*--index=[The URLs to use when resolving dependencies, in addition to the default index]:INDEX:_default' \
'--default-index=[The URL of the default package index (by default\: <https\://pypi.org/simple>)]:DEFAULT_INDEX:_default' \
'-i+[(Deprecated\: use \`--default-index\` instead) The URL of the Python package index (by default\: <https\://pypi.org/simple>)]:INDEX_URL:_default' \
'--index-url=[(Deprecated\: use \`--default-index\` instead) The URL of the Python package index (by default\: <https\://pypi.org/simple>)]:INDEX_URL:_default' \
'*--extra-index-url=[(Deprecated\: use \`--index\` instead) Extra URLs of package indexes to use, in addition to \`--index-url\`]:EXTRA_INDEX_URL:_default' \
'*-f+[Locations to search for candidate distributions, in addition to those found in the registry indexes]:FIND_LINKS:_default' \
'*--find-links=[Locations to search for candidate distributions, in addition to those found in the registry indexes]:FIND_LINKS:_default' \
'*-P+[Allow upgrades for a specific package, ignoring pinned versions in any existing output file. Implies \`--refresh-package\`]:UPGRADE_PACKAGE:_default' \
'*--upgrade-package=[Allow upgrades for a specific package, ignoring pinned versions in any existing output file. Implies \`--refresh-package\`]:UPGRADE_PACKAGE:_default' \
'*--reinstall-package=[Reinstall a specific package, regardless of whether it'\''s already installed. Implies \`--refresh-package\`]:REINSTALL_PACKAGE:_default' \
'--index-strategy=[The strategy to use when resolving against multiple index URLs]:INDEX_STRATEGY:((first-index\:"Only use results from the first index that returns a match for a given package name"
unsafe-first-match\:"Search for every package name across all indexes, exhausting the versions from the first index before moving on to the next"
unsafe-best-match\:"Search for every package name across all indexes, preferring the "best" version found. If a package version is in multiple indexes, only look at the entry for the first index"))' \
'--keyring-provider=[Attempt to use \`keyring\` for authentication for index URLs]:KEYRING_PROVIDER:((disabled\:"Do not use keyring for credential lookup"
subprocess\:"Use the \`keyring\` command for credential lookup"))' \
'--resolution=[The strategy to use when selecting between the different compatible versions for a given package requirement]:RESOLUTION:((highest\:"Resolve the highest compatible version of each package"
lowest\:"Resolve the lowest compatible version of each package"
lowest-direct\:"Resolve the lowest compatible version of any direct dependencies, and the highest compatible version of any transitive dependencies"))' \
'--prerelease=[The strategy to use when considering pre-release versions]:PRERELEASE:((disallow\:"Disallow all pre-release versions"
allow\:"Allow all pre-release versions"
if-necessary\:"Allow pre-release versions if all versions of a package are pre-release"
explicit\:"Allow pre-release versions for first-party packages with explicit pre-release markers in their version requirements"
if-necessary-or-explicit\:"Allow pre-release versions if all versions of a package are pre-release, or if the package has an explicit pre-release marker in its version requirements"))' \
'--fork-strategy=[The strategy to use when selecting multiple versions of a given package across Python versions and platforms]:FORK_STRATEGY:((fewest\:"Optimize for selecting the fewest number of versions for each package. Older versions may be preferred if they are compatible with a wider range of supported Python versions or platforms"
requires-python\:"Optimize for selecting latest supported version of each package, for each supported Python version"))' \
'*-C+[Settings to pass to the PEP 517 build backend, specified as \`KEY=VALUE\` pairs]:CONFIG_SETTING:_default' \
'*--config-setting=[Settings to pass to the PEP 517 build backend, specified as \`KEY=VALUE\` pairs]:CONFIG_SETTING:_default' \
'*--config-settings-package=[Settings to pass to the PEP 517 build backend for a specific package, specified as \`PACKAGE\:KEY=VALUE\` pairs]:CONFIG_SETTINGS_PACKAGE:_default' \
'*--no-build-isolation-package=[Disable isolation when building source distributions for a specific package]:NO_BUILD_ISOLATION_PACKAGE:_default' \
'--exclude-newer=[Limit candidate packages to those that were uploaded prior to the given date]:EXCLUDE_NEWER:_default' \
'*--exclude-newer-package=[Limit candidate packages for specific packages to those that were uploaded prior to the given date]:EXCLUDE_NEWER_PACKAGE:_default' \
'--link-mode=[The method to use when installing packages from the global cache]:LINK_MODE:((clone\:"Clone (i.e., copy-on-write) packages from the wheel into the \`site-packages\` directory"
copy\:"Copy packages from the wheel into the \`site-packages\` directory"
hardlink\:"Hard link packages from the wheel into the \`site-packages\` directory"
symlink\:"Symbolically link packages from the wheel into the \`site-packages\` directory"))' \
'*--no-build-package=[Don'\''t build source distributions for a specific package]:NO_BUILD_PACKAGE:_default' \
'*--no-binary-package=[Don'\''t install pre-built wheels for a specific package]:NO_BINARY_PACKAGE:_default' \
'*--refresh-package=[Refresh cached data for a specific package]:REFRESH_PACKAGE:_default' \
'-p+[The Python interpreter to use to build the run environment.]:PYTHON:_default' \
'--python=[The Python interpreter to use to build the run environment.]:PYTHON:_default' \
'--generate-shell-completion=[]:GENERATE_SHELL_COMPLETION:(bash elvish fish nushell powershell zsh)' \
'--cache-dir=[Path to the cache directory]:CACHE_DIR:_files' \
'--python-preference=[]:PYTHON_PREFERENCE:((only-managed\:"Only use managed Python installations; never use system Python installations"
managed\:"Prefer managed Python installations over system Python installations"
system\:"Prefer system Python installations over managed Python installations"
only-system\:"Only use system Python installations; never use managed Python installations"))' \
'--python-fetch=[Deprecated version of \[\`Self\:\:python_downloads\`\]]:PYTHON_FETCH:((automatic\:"Automatically download managed Python installations when needed"
manual\:"Do not automatically download managed Python installations; require explicit installation"
never\:"Do not ever allow Python downloads"))' \
'(--no-color)--color=[Control the use of color in output]:COLOR_CHOICE:((auto\:"Enables colored output only when the output is going to a terminal or TTY with support"
always\:"Enables colored output regardless of the detected environment"
never\:"Disables colored output"))' \
'*--allow-insecure-host=[Allow insecure connections to a host]:ALLOW_INSECURE_HOST:_default' \
'*--preview-features=[Enable experimental preview features]:PREVIEW_FEATURES:_default' \
'--directory=[Change to the given directory prior to running the command]:DIRECTORY:_files' \
'--project=[Run the command within the given project directory]:PROJECT:_files' \
'--config-file=[The path to a \`uv.toml\` file to use for configuration]:CONFIG_FILE:_files' \
'--isolated[Run the tool in an isolated virtual environment, ignoring any already-installed tools]' \
'--no-env-file[Avoid reading environment variables from a \`.env\` file]' \
'--no-index[Ignore the registry index (e.g., PyPI), instead relying on direct URL dependencies and those provided via \`--find-links\`]' \
'-U[Allow package upgrades, ignoring pinned versions in any existing output file. Implies \`--refresh\`]' \
'--upgrade[Allow package upgrades, ignoring pinned versions in any existing output file. Implies \`--refresh\`]' \
'--no-upgrade[]' \
'--reinstall[Reinstall all packages, regardless of whether they'\''re already installed. Implies \`--refresh\`]' \
'--no-reinstall[]' \
'--pre[]' \
'--no-build-isolation[Disable isolation when building source distributions]' \
'--build-isolation[]' \
'--compile-bytecode[Compile Python files to bytecode after installation]' \
'--no-compile-bytecode[]' \
'--no-sources[Ignore the \`tool.uv.sources\` table when resolving dependencies. Used to lock against the standards-compliant, publishable package metadata, as opposed to using any workspace, Git, URL, or local path sources]' \
'--no-build[Don'\''t build source distributions]' \
'--build[]' \
'--no-binary[Don'\''t install pre-built wheels]' \
'--binary[]' \
'(--offline)--refresh[Refresh all cached data]' \
'(--offline)--no-refresh[]' \
'--show-resolution[Whether to show resolver and installer output from any environment modifications]' \
'-V[Display the uvx version]' \
'--version[Display the uvx version]' \
'-n[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'--no-cache[Avoid reading from or writing to the cache, instead using a temporary directory for the duration of the operation]' \
'(--python-preference)--managed-python[Require use of uv-managed Python versions]' \
'(--python-preference)--no-managed-python[Disable use of uv-managed Python versions]' \
'--allow-python-downloads[Allow automatically downloading Python when required. \[env\: "UV_PYTHON_DOWNLOADS=auto"\]]' \
'--no-python-downloads[Disable automatic downloads of Python. \[env\: "UV_PYTHON_DOWNLOADS=never"\]]' \
'(-v --verbose)*-q[Use quiet output]' \
'(-v --verbose)*--quiet[Use quiet output]' \
'(-q --quiet)*-v[Use verbose output]' \
'(-q --quiet)*--verbose[Use verbose output]' \
'(--color)--no-color[Disable colors]' \
'--native-tls[Whether to load TLS certificates from the platform'\''s native certificate store]' \
'--no-native-tls[]' \
'--offline[Disable network access]' \
'--no-offline[]' \
'--preview[Whether to enable all experimental preview features]' \
'--no-preview[]' \
'--show-settings[Show the resolved settings for the current command]' \
'--no-progress[Hide all progress outputs]' \
'--no-installer-metadata[Skip writing \`uv\` installer metadata files (e.g., \`INSTALLER\`, \`REQUESTED\`, and \`direct_url.json\`) to site-packages \`.dist-info\` directories]' \
'--no-config[Avoid discovering configuration files (\`pyproject.toml\`, \`uv.toml\`)]' \
'-h[Display the concise help for this command]' \
'--help[Display the concise help for this command]' \
"*::external_command:_default" \
&& ret=0
}
(( $+functions[_uvx_commands] )) ||
_uvx_commands() {
local commands; commands=()
_describe -t commands 'uvx commands' commands "$@"
}
if [ "$funcstack[1]" = "_uvx" ]; then
_uvx "$@"
else
compdef _uvx uvx
fi

0
dotter Executable file → Normal file
View File

0
dotter.arm Executable file → Normal file
View File

0
dotter.exe Executable file → Normal file
View File

0
local/bin/ani-skip.bak Normal file → Executable file
View File

0
local/bin/get-spotify-id Normal file → Executable file
View File

0
local/share/fonts/jetbrainsmono/AUTHORS.txt Normal file → Executable file
View File

BIN
local/share/themes/gtk4/._gtk4 Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,43 @@
@define-color accent_bg_color #907aa9;
@define-color accent_fg_color #faf4ed;
@define-color accent_color #907aa9;
@define-color destructive_bg_color #b4637a;
@define-color destructive_fg_color #faf4ed;
@define-color destructive_color #b4637a;
@define-color success_bg_color #56949f;
@define-color success_fg_color #575279;
@define-color success_color #56949f;
@define-color warning_bg_color #ea9d34;
@define-color warning_fg_color #575279;
@define-color warning_color #ea9d34;
@define-color error_bg_color #b4637a;
@define-color error_fg_color #575279;
@define-color error_color #b4637a;
@define-color window_bg_color #faf4ed;
@define-color window_fg_color #575279;
@define-color view_bg_color #f2e9e1;
@define-color view_fg_color #575279;
@define-color headerbar_bg_color #faf4ed;
@define-color headerbar_fg_color #575279;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color #faf4ed;
@define-color card_bg_color #fffaf3;
@define-color card_fg_color #575279;
@define-color card_shade_color #fffaf3;
@define-color popover_bg_color #f2e9e1;
@define-color popover_fg_color #575279;
@define-color sidebar_backdrop_color #f2e9e1;
@define-color sidebar_bg_color #f2e9e1;
@define-color sidebar_fg_color #575279;

View File

@ -0,0 +1,43 @@
@define-color accent_bg_color #c4a7e7;
@define-color accent_fg_color #232136;
@define-color accent_color #c4a7e7;
@define-color destructive_bg_color #eb6f92;
@define-color destructive_fg_color #232136;
@define-color destructive_color #eb6f92;
@define-color success_bg_color #9ccfd8;
@define-color success_fg_color #e0def4;
@define-color success_color #9ccfd8;
@define-color warning_bg_color #f6c177;
@define-color warning_fg_color #e0def4;
@define-color warning_color #f6c177;
@define-color error_bg_color #eb6f92;
@define-color error_fg_color #e0def4;
@define-color error_color #eb6f92;
@define-color window_bg_color #232136;
@define-color window_fg_color #e0def4;
@define-color view_bg_color #393552;
@define-color view_fg_color #e0def4;
@define-color headerbar_bg_color #232136;
@define-color headerbar_fg_color #e0def4;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color #232136;
@define-color card_bg_color #2a273f;
@define-color card_fg_color #e0def4;
@define-color card_shade_color #2a273f;
@define-color popover_bg_color #393552;
@define-color popover_fg_color #e0def4;
@define-color sidebar_backdrop_color #393552;
@define-color sidebar_bg_color #393552;
@define-color sidebar_fg_color #e0def4;

View File

@ -0,0 +1,43 @@
@define-color accent_bg_color #c4a7e7;
@define-color accent_fg_color #191724;
@define-color accent_color #c4a7e7;
@define-color destructive_bg_color #eb6f92;
@define-color destructive_fg_color #191724;
@define-color destructive_color #eb6f92;
@define-color success_bg_color #9ccfd8;
@define-color success_fg_color #e0def4;
@define-color success_color #9ccfd8;
@define-color warning_bg_color #f6c177;
@define-color warning_fg_color #e0def4;
@define-color warning_color #f6c177;
@define-color error_bg_color #eb6f92;
@define-color error_fg_color #e0def4;
@define-color error_color #eb6f92;
@define-color window_bg_color #191724;
@define-color window_fg_color #e0def4;
@define-color view_bg_color #26233a;
@define-color view_fg_color #e0def4;
@define-color headerbar_bg_color #191724;
@define-color headerbar_fg_color #e0def4;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color #191724;
@define-color card_bg_color #1f1d2e;
@define-color card_fg_color #e0def4;
@define-color card_shade_color #1f1d2e;
@define-color popover_bg_color #26233a;
@define-color popover_fg_color #e0def4;
@define-color sidebar_backdrop_color #26233A;
@define-color sidebar_bg_color #26233A;
@define-color sidebar_fg_color #e0def4;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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