diff --git a/config/fish/config.fish b/config/fish/config.fish index 1426cf4..4486bf1 100644 --- a/config/fish/config.fish +++ b/config/fish/config.fish @@ -34,20 +34,49 @@ function sesh-list sesh connect $session end -# Keybinding: Alt-s -if functions -q fish_vi_key_bindings - bind -M default \es sesh-sessions - bind -M insert \es sesh-sessions -else - bind \es sesh-sessions +function y + set tmp (mktemp -t "yazi-cwd.XXXXXX") + yazi $argv --cwd-file="$tmp" + if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] + builtin cd -- "$cwd" + end + rm -f -- "$tmp" end -# Keybinding: Alt-t +############### +# Keybindings # +############### + +# emacs + vim +set -g fish_key_bindings fish_hybrid_key_bindings + +bind -M default \cx\ce edit_command_buffer +bind -M insert \cx\ce edit_command_buffer +bind -M visual \cx\ce edit_command_buffer + +bind -M default \cp up-or-search +bind -M insert \cp up-or-search +bind -M visual \cp up-or-search +bind -M default \cn down-or-search +bind -M insert \cn down-or-search +bind -M visual \cn down-or-search + +## Sesh keybindings: keybinding: C-\ if functions -q fish_vi_key_bindings - bind -M default \et sesh-list - bind -M insert \et sesh-list + bind -M default \x1c sesh-list + bind -M insert \x1c sesh-list else - bind \et sesh-list + bind \x1c sesh-list end +# Keybinding: C-] +if functions -q fish_vi_key_bindings + bind -M default \c] sesh-sessions + bind -M insert \c] sesh-sessions +else + bind \c] sesh-sessions +end + + + alias vim "nvim" diff --git a/config/ghostty/config b/config/ghostty/config index f2505c4..654e181 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -8,8 +8,12 @@ gtk-adwaita = false font-family = Consolas font-size = 14 app-notifications = no-clipboard-copy -macos-option-as-alt = left theme = nightfox + +macos-option-as-alt = left + +keybind = alt+left=unbind +keybind = alt+right=unbind # theme = gruber-darker # theme = xcodelighthc # theme = zenburned diff --git a/config/home/.hammerspoon/keyboard/yabai.lua b/config/home/.hammerspoon/keyboard/yabai.lua index f38ed4e..7fef483 100644 --- a/config/home/.hammerspoon/keyboard/yabai.lua +++ b/config/home/.hammerspoon/keyboard/yabai.lua @@ -57,7 +57,7 @@ yabai_key { key = 'm', commands = { 'space --toggle mission-control' } } yabai_key { key = 'p', commands = { 'window --toggle pip' } } yabai_key { key = 'g', commands = { 'space --toggle padding', 'space --toggle gap' } } yabai_key { key = 'r', commands = { 'space --rotate 90' } } -yabai_key { key = 't', commands = { 'window --toggle float', 'window --grid 4:4:1:1:2:2' } } +yabai_key { key = 'space', commands = { 'window --toggle float', 'window --grid 4:4:1:1:2:2' } } yabai_key { key = "'", commands = { 'space --layout stack' } } yabai_key { key = ';', commands = { 'space --layout bsp' } } @@ -115,22 +115,22 @@ yabai_key { mods = { 'ctrl' }, key = 'h', message = 'Move space to left display' yabai_key { mods = { 'ctrl' }, key = 'l', message = 'Move space to right display', commands = { 'space --display east' } } -- create new space and move window to it -keymap.super { - key = 'n', - mods = { 'shift' }, - message = 'Create new space and move window', - fn = function() - os.execute(yabai_cmd .. ' -m space --create') - hs.timer.usleep(100000) -- 100ms - - local index = yabai_query('--spaces --display', '\'map(select(."is-native-fullscreen" == false))[-1].index\'') - - if index and index ~= '' then - os.execute(yabai_cmd .. ' -m window --space ' .. index) - os.execute(yabai_cmd .. ' -m space --focus ' .. index) - end - end, -} +-- keymap.super { +-- key = 'n', +-- mods = { 'shift' }, +-- message = 'Create new space and move window', +-- fn = function() +-- os.execute(yabai_cmd .. ' -m space --create') +-- hs.timer.usleep(100000) -- 100ms +-- +-- local index = yabai_query('--spaces --display', '\'map(select(."is-native-fullscreen" == false))[-1].index\'') +-- +-- if index and index ~= '' then +-- os.execute(yabai_cmd .. ' -m window --space ' .. index) +-- os.execute(yabai_cmd .. ' -m space --focus ' .. index) +-- end +-- end, +-- } -- split type - use insert direction to control next window placement -- yabai_key { key = 'v', commands = { 'window --insert east' } } @@ -191,3 +191,55 @@ resize_mode:bind({}, 'e', function() os.execute(yabai_cmd .. ' -m space --balance') resize_mode:exit() end) + +-- Toggle notes scratchpad +keymap.super { + key = 'n', + message = 'Toggle notes scratchpad', + fn = function() + local result = yabai_query('--windows', '\'.[] | select(.scratchpad == "notes") | .id\'') + + if result == '' then + local notes_dir = os.getenv 'HOME' .. '/NPersonal' + os.execute('/etc/profiles/per-user/rayandrew/bin/kitty --title notes --directory ' .. notes_dir .. ' &') + hs.timer.usleep(200000) + end + + -- Toggle the scratchpad + os.execute(yabai_cmd .. ' -m window --toggle notes') + end, +} + +keymap.super { + key = 't', + message = 'Toggle terminal scratchpad', + fn = function() + local result = yabai_query('--windows', '\'.[] | select(.scratchpad == "term") | .id\'') + + if result == '' then + local home_dir = os.getenv 'HOME' + os.execute('/etc/profiles/per-user/rayandrew/bin/kitty --title floaterm --directory ' .. home_dir .. ' &') + hs.timer.usleep(200000) + end + + -- Toggle the scratchpad + os.execute(yabai_cmd .. ' -m window --toggle term') + end, +} + +-- keymap.super { +-- key = 'e', +-- message = 'Toggle explorer scratchpad', +-- fn = function() +-- local result = yabai_query('--windows', '\'.[] | select(.scratchpad == "explorer") | .id\'') +-- +-- if result == '' then +-- local home_dir = os.getenv('HOME') +-- os.execute('/etc/profiles/per-user/rayandrew/bin/kitty -o close_on_child_death=yes --title explorer --directory ' .. home_dir .. ' -e yazi &') +-- hs.timer.usleep(200000) +-- end +-- +-- -- Toggle the scratchpad +-- os.execute(yabai_cmd .. ' -m window --toggle explorer') +-- end, +-- } diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf new file mode 100644 index 0000000..c7925e7 --- /dev/null +++ b/config/kitty/kitty.conf @@ -0,0 +1,31 @@ +modify_font cell_height 1.1 + +font_family Consolas +font_size 12.000000 + +close_on_child_death yes +confirm_os_window_close 0 +macos_option_as_alt yes + +background #062329 +foreground #d1b897 +# cursor-color #ffffff +# cursor-text #d1b897 +selection_background #0000ff +selection_foreground #d1b897 +color0 #062329 +# color1 #0b3335 +# color2 #0000ff +color3 #44b340 +color4 #8cde94 +color5 #d1b897 +color6 #c1d1e3 +color7 #ffffff +color8 #626880 +color9 #e67172 +color10 #8ec772 +color11 #d9ba73 +color12 #7b9ef0 +color13 #f2a4db +color14 #5abfb5 +color15 #b5bfe2 diff --git a/config/nvim/init.lua b/config/nvim/init.lua index d455c19..873b1a0 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -129,6 +129,7 @@ later(function() win_options = { winbar = '%!v:lua.get_oil_winbar()', }, + float = { padding = 2, max_width = 0, @@ -148,6 +149,7 @@ later(function() keymaps = { ['q'] = 'actions.close', [''] = 'actions.close', + ['D'] = 'dd', -- Emacs-like navigation (up/down) [''] = 'k', [''] = 'j', @@ -583,8 +585,9 @@ map('v', '', function() require('tmux').move_top() end, 'Move to top tmux p -- Terminal mode map('t', '', function() require('tmux').move_left() end, 'Move to left tmux pane') map('t', '', function() require('tmux').move_right() end, 'Move to right tmux pane') -map('t', '', function() require('tmux').move_bottom() end, 'Move to bottom tmux pane') -map('t', '', function() require('tmux').move_top() end, 'Move to top tmux pane') +-- C-j is Shift+Enter in terminal mode, so we avoid mapping it +-- map('t', '', function() require('tmux').move_bottom() end, 'Move to bottom tmux pane') +-- map('t', '', function() require('tmux').move_top() end, 'Move to top tmux pane') map('t', '', '', 'Unfocus terminal and return to editor') -- Auto commands diff --git a/config/nvim/lua/find-file.lua b/config/nvim/lua/find-file.lua index c91d5a2..a2b7e74 100644 --- a/config/nvim/lua/find-file.lua +++ b/config/nvim/lua/find-file.lua @@ -4,6 +4,7 @@ ---@field respect_gitignore? boolean Respect .gitignore files when listing matches (default: true) ---@field on_directory_enter? function Optional callback when entering a directory without selecting a file ---@field keymaps? FindFileKeymaps Keymap configuration +---@field strip_prefixes? string[] List of prefixes to strip from paths (e.g., "oil://") ---@class FindFileKeymaps ---@field next string Cycle to next candidate @@ -22,12 +23,16 @@ local M = {} +---@type string[] +local default_strip_prefixes = { 'oil://' } + ---@type FindFileConfig local config = { max_matches = 8, auto_cd = true, respect_gitignore = true, on_directory_enter = nil, + strip_prefixes = {}, keymaps = { next = '', prev = '', @@ -42,7 +47,33 @@ local config = { ---Setup emacs-find-file with custom configuration ---@param opts FindFileConfig|nil Configuration options -function M.setup(opts) config = vim.tbl_deep_extend('force', config, opts or {}) end +function M.setup(opts) + config = vim.tbl_deep_extend('force', config, opts or {}) + -- Merge user prefixes with defaults (user prefixes take priority by being checked first) + local merged = {} + local seen = {} + for _, prefix in ipairs(config.strip_prefixes or {}) do + if not seen[prefix] then + table.insert(merged, prefix) + seen[prefix] = true + end + end + for _, prefix in ipairs(default_strip_prefixes) do + if not seen[prefix] then + table.insert(merged, prefix) + seen[prefix] = true + end + end + config.strip_prefixes = merged +end + +---Get all prefixes to strip (merged config + defaults) +---@return string[] prefixes +local function get_strip_prefixes() + local prefixes = config.strip_prefixes or {} + if #prefixes > 0 then return prefixes end + return default_strip_prefixes +end ---Check if a path should be ignored based on gitignore ---@param path string Full path to check @@ -79,6 +110,14 @@ end ---@return string dir Directory path ---@return string filter Filter/filename component local function parse_path(input) + -- Strip configured prefixes + for _, prefix in ipairs(get_strip_prefixes()) do + if input:sub(1, #prefix) == prefix then + input = input:sub(#prefix + 1) + break + end + end + local expanded = vim.fn.expand(input) if expanded == '' or expanded == '~' then return vim.fn.expand '~', '' end @@ -131,9 +170,27 @@ local function get_matches(dir, filter, override_respect) return matches end +---Strip configured prefixes from a path +---@param path string Input path +---@return string path Path with prefix stripped +local function strip_prefix(path) + for _, prefix in ipairs(get_strip_prefixes()) do + if path:sub(1, #prefix) == prefix then + local stripped = path:sub(#prefix + 1) + -- Handle double slashes (e.g., oil:///path -> /path, not //path) + if stripped:sub(1, 2) == '//' then stripped = stripped:sub(2) end + return stripped + end + end + return path +end + ---Open emacs-style find-file interface starting from a specific path ---@param start_path string|nil Starting directory path function M.open_dir(start_path) + -- Strip any configured prefixes from start_path + if start_path then start_path = strip_prefix(start_path) end + local prev_win = vim.api.nvim_get_current_win() local input_buf = vim.api.nvim_create_buf(false, true) @@ -516,7 +573,7 @@ end ---Open emacs-style find-file interface from current buffer's directory function M.open() - local current_file = vim.api.nvim_buf_get_name(0) + local current_file = strip_prefix(vim.api.nvim_buf_get_name(0)) local start_dir if current_file == '' then @@ -527,7 +584,9 @@ function M.open() start_dir = vim.fn.fnamemodify(current_file, ':p:h') end - M.open_dir(start_dir .. '/') + -- Ensure single trailing slash + start_dir = start_dir:gsub('/+$', '') .. '/' + M.open_dir(start_dir) end return M diff --git a/config/sesh/sesh.toml b/config/sesh/sesh.toml index c70e98f..056b9c0 100644 --- a/config/sesh/sesh.toml +++ b/config/sesh/sesh.toml @@ -1,7 +1,7 @@ [[session]] name = "Downloads" path = "~/Downloads" -startup_command = "ls" +startup_command = "yazi" [[session]] name = "dotfiles" diff --git a/config/yabai/yabairc b/config/yabai/yabairc index fd24f27..ae154aa 100644 --- a/config/yabai/yabairc +++ b/config/yabai/yabairc @@ -33,16 +33,20 @@ yabai -m config active_window_border_color 0xff775759 yabai -m config normal_window_border_color 0xff555555 yabai -m config insert_feedback_color 0xffd75f5f -yabai -m rule --add app="^System Settings$" manage=off -yabai -m rule --add app="^Archive Utility$" manage=off -yabai -m rule --add app="^Wally$" manage=off -yabai -m rule --add app="^Pika$" manage=off -yabai -m rule --add app="^balenaEtcher$" manage=off -yabai -m rule --add app="^Creative Cloud$" manage=off -yabai -m rule --add app="^Logi Options$" manage=off -yabai -m rule --add app="^Alfred Preferences$" manage=off +yabai -m rule --add app="^(LuLu|Calculator|Software Update|Dictionary|VLC|System Preferences|System Settings|zoom.us|Photo Booth|Archive Utility|Python|LibreOffice|App Store|Steam|Alfred|Activity Monitor)$" manage=off +yabai -m rule --add label="Finder Dialogs" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off +# yabai -m rule --add label="Finder Main" app="^Finder$" manage=on layer=above +yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off +yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off +yabai -m rule --add label="Select file to save to" app="^Inkscape$" title="Select file to save to" manage=off yabai -m rule --add app="Raycast" manage=off -yabai -m rule --add app="^Music$" manage=off +yabai -m rule --add app="^Pika$" manage=off + +# Scratchpad +yabai -m rule --add app="kitty" title="notes" scratchpad="notes" grid="6:6:1:1:4:4" +yabai -m rule --add app="kitty" title="floaterm" scratchpad="term" grid="6:6:1:1:4:4" +yabai -m rule --add app="kitty$" title="explorer" scratchpad="explorer" grid="6:6:1:1:4:4" +# yabai -m rule --add app="Ghostty" title="notes" scratchpad="notes" grid="6:6:1:1:4:4" yabai-create-space diff --git a/config/yazi/.gitignore b/config/yazi/.gitignore new file mode 100644 index 0000000..5a02d10 --- /dev/null +++ b/config/yazi/.gitignore @@ -0,0 +1 @@ +plugins diff --git a/config/yazi/.luarc.json b/config/yazi/.luarc.json new file mode 100644 index 0000000..ec3a02b --- /dev/null +++ b/config/yazi/.luarc.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json", + "runtime.version": "Lua 5.4", + "workspace.library": [ + "~/.config/yazi/plugins/types.yazi/", + ], +} diff --git a/config/yazi/init.lua b/config/yazi/init.lua new file mode 100644 index 0000000..bad90f2 --- /dev/null +++ b/config/yazi/init.lua @@ -0,0 +1,3 @@ +require('full-border'):setup { + type = ui.Border.ROUNDED, +} diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml new file mode 100644 index 0000000..b9016cd --- /dev/null +++ b/config/yazi/keymap.toml @@ -0,0 +1,18 @@ +[[mgr.prepend_keymap]] +on = [ "c", "m" ] +run = "plugin chmod" +desc = "Chmod on selected files" + +[[mgr.prepend_keymap]] +on = "+" +run = "plugin zoom 1" +desc = "Zoom in hovered file" + +[[mgr.prepend_keymap]] +on = "_" +run = "plugin zoom -1" +desc = "Zoom out hovered file" + +[[plugin.prepend_previewers]] +mime = "image/{jpeg,png,webp}" +run = "zoom 5" diff --git a/config/yazi/package.toml b/config/yazi/package.toml new file mode 100644 index 0000000..0b7524e --- /dev/null +++ b/config/yazi/package.toml @@ -0,0 +1,22 @@ +[[plugin.deps]] +use = "yazi-rs/plugins:chmod" +rev = "eaf6920" +hash = "5b2eb0cc2050cec1e4de83cfa51a5b90" + +[[plugin.deps]] +use = "yazi-rs/plugins:zoom" +rev = "eaf6920" +hash = "9dee2bf990ea941ccf67df74bca45468" + +[[plugin.deps]] +use = "yazi-rs/plugins:types" +rev = "eaf6920" +hash = "1e047e1b13b5e3fc6ab1f5d0d04a14e2" + +[[plugin.deps]] +use = "yazi-rs/plugins:full-border" +rev = "eaf6920" +hash = "3996fc74044bc44144b323686f887e1" + +[flavor] +deps = [] diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml new file mode 100644 index 0000000..669881c --- /dev/null +++ b/config/yazi/yazi.toml @@ -0,0 +1,3 @@ +[preview] +max_width = 2000 +max_height = 3000 diff --git a/darwin/nix.nix b/darwin/nix.nix index 807a074..cb22204 100644 --- a/darwin/nix.nix +++ b/darwin/nix.nix @@ -72,6 +72,7 @@ "https://ghostty.cachix.org" "https://rayandrew.cachix.org" "https://devenv.cachix.org" + "https://yazi.cachix.org" ]; # allow building and pushing of laptop config from desktop trusted-users = [ user ]; @@ -80,6 +81,7 @@ "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns=" "rayandrew.cachix.org-1:kJnvdWgUyErPGaQWgh/yyu91szgRYD+V/WQ4Dbc4n9M=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" + "yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" ]; }; # // lib.optionalAttrs (config.nix.package.pname == "lix") { diff --git a/flake.lock b/flake.lock index d96e751..6e0f8e6 100644 --- a/flake.lock +++ b/flake.lock @@ -3,16 +3,16 @@ "brew-src": { "flake": false, "locked": { - "lastModified": 1758543057, - "narHash": "sha256-lw3V2jOGYphUFHYQ5oARcb6urlbNpUCLJy1qhsGdUmc=", + "lastModified": 1761551821, + "narHash": "sha256-N3Zj73TAxclhLGgADbPVwcVrhYIBKUgAxjfQuOXre6s=", "owner": "Homebrew", "repo": "brew", - "rev": "5b236456eb93133c2bd0d60ef35ed63f1c0712f6", + "rev": "8f6719274133c5bcc24c058c5a6bcbb3b0cd48b3", "type": "github" }, "original": { "owner": "Homebrew", - "ref": "4.6.12", + "ref": "4.6.19", "repo": "brew", "type": "github" } @@ -39,11 +39,11 @@ ] }, "locked": { - "lastModified": 1758287904, - "narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=", + "lastModified": 1764350888, + "narHash": "sha256-6Rp18zavTlnlZzcoLoBTJMBahL2FycVkw2rAEs3cQvo=", "owner": "nix-community", "repo": "disko", - "rev": "67ff9807dd148e704baadbd4fd783b54282ca627", + "rev": "2055a08fd0e2fd41318279a5355eb8a161accf26", "type": "github" }, "original": { @@ -71,11 +71,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -139,6 +139,24 @@ "type": "indirect" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "ghostty": { "inputs": { "flake-compat": "flake-compat", @@ -148,11 +166,11 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1760583877, - "narHash": "sha256-zbmESqyuNf6M4jno2+dvpXsorq1QHJNQtnNZ9LP2R3g=", + "lastModified": 1764339838, + "narHash": "sha256-JfC8yW84+cFTp6082MdXtCAc7I3h9P4tGJS2gCDraMs=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "5a9bd0e49ef11499eb0ccb63725cc882b93356e0", + "rev": "9baf37a9b2a1119c697b0eabf32391bfb41ef287", "type": "github" }, "original": { @@ -170,11 +188,11 @@ ] }, "locked": { - "lastModified": 1760392170, - "narHash": "sha256-WftxJgr2MeDDFK47fQKywzC72L2jRc/PWcyGdjaDzkw=", + "lastModified": 1763988335, + "narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "46d55f0aeb1d567a78223e69729734f3dca25a85", + "rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce", "type": "github" }, "original": { @@ -211,11 +229,11 @@ ] }, "locked": { - "lastModified": 1760500983, - "narHash": "sha256-zfY4F4CpeUjTGgecIJZ+M7vFpwLc0Gm9epM/iMQd4w8=", + "lastModified": 1764361670, + "narHash": "sha256-jgWzgpIaHbL3USIq0gihZeuy1lLf2YSfwvWEwnfAJUw=", "owner": "nix-community", "repo": "home-manager", - "rev": "c53e65ec92f38d30e3c14f8d628ab55d462947aa", + "rev": "780be8ef503a28939cf9dc7996b48ffb1a3e04c6", "type": "github" }, "original": { @@ -232,11 +250,11 @@ ] }, "locked": { - "lastModified": 1752603129, - "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", + "lastModified": 1762964643, + "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", "owner": "nix-community", "repo": "home-manager", - "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", + "rev": "827f2a23373a774a8805f84ca5344654c31f354b", "type": "github" }, "original": { @@ -248,11 +266,11 @@ "homebrew-brewsci-bio": { "flake": false, "locked": { - "lastModified": 1760374659, - "narHash": "sha256-j5cjB9AaDtpqiWCcp+VmgudQ274DepjkwGCb5yOG4+8=", + "lastModified": 1763952709, + "narHash": "sha256-i7o9P+nUUZ2PDhsvEmKpGUckZIAG8f24Rdhb/QJanOo=", "owner": "brewsci", "repo": "homebrew-bio", - "rev": "e5964fddfa4894549db328da95132229e0e74936", + "rev": "0507e238cfdfc79312a75c49a192f209ba94f509", "type": "github" }, "original": { @@ -264,11 +282,11 @@ "homebrew-cask": { "flake": false, "locked": { - "lastModified": 1760637639, - "narHash": "sha256-HOAVCudwyIXT6kS2toRsk5xBpcdFeFvJdwusBImi44U=", + "lastModified": 1764382036, + "narHash": "sha256-9OF4UOfrv4kjS2tECQ9/Qu3n+HlHDSok2MMsGnqP4OY=", "owner": "homebrew", "repo": "homebrew-cask", - "rev": "ae9776cc5e15c8f1e78286995b5ba4553a779171", + "rev": "e436b86c3cf7333b3b49bd8c7f1b6a010e387f32", "type": "github" }, "original": { @@ -280,11 +298,11 @@ "homebrew-core": { "flake": false, "locked": { - "lastModified": 1760638362, - "narHash": "sha256-ho+MbgGrQ9SNCb1nRAAJKG7R19UdAswpovh3pILV+74=", + "lastModified": 1764386794, + "narHash": "sha256-It4d3ZNkNZxDCIod/fyR/iWnBAT4Tk9lXoss8nvHUy8=", "owner": "homebrew", "repo": "homebrew-core", - "rev": "14dbbc218025ca2ea982493fefdd681a504fc3e1", + "rev": "12c8f61e4b72718005e6774cf85a526a176b537a", "type": "github" }, "original": { @@ -312,11 +330,11 @@ "homebrew-emacs-plus": { "flake": false, "locked": { - "lastModified": 1759655759, - "narHash": "sha256-YvrVSoT1wGraYPP5OtaULYiboKEjRWWOXqjlQs7iZVE=", + "lastModified": 1764008099, + "narHash": "sha256-8Mg5Su0WJGJ9hKqpr0r53iKuh6DHRuvfQqD0V4IN2Ck=", "owner": "d12frosted", "repo": "homebrew-emacs-plus", - "rev": "158df2e4f970e60ab9b3514a4ec64bf9dc985fcf", + "rev": "8c811e9931a213d78baa8e443244d31b7c8771c3", "type": "github" }, "original": { @@ -371,11 +389,11 @@ ] }, "locked": { - "lastModified": 1760338583, - "narHash": "sha256-IGwy02SH5K2hzIFrKMRsCmyvwOwWxrcquiv4DbKL1S4=", + "lastModified": 1764161084, + "narHash": "sha256-HN84sByg9FhJnojkGGDSrcjcbeioFWoNXfuyYfJ1kBE=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "9a9ab01072f78823ca627ae5e895e40d493c3ecf", + "rev": "e95de00a471d07435e0527ff4db092c84998698e", "type": "github" }, "original": { @@ -390,11 +408,11 @@ "brew-src": "brew-src" }, "locked": { - "lastModified": 1758598228, - "narHash": "sha256-qr60maXGbZ4FX5tejPRI3nr0bnRTnZ3AbbbfO6/6jq4=", + "lastModified": 1761927470, + "narHash": "sha256-KsFDGRGD8j1R6TvJ4HkebKsh3HXLY0XazanLrhO3wqE=", "owner": "zhaofengli", "repo": "nix-homebrew", - "rev": "f36e5db56e117f7df701ab152d0d2036ea85218c", + "rev": "3cae36b3a17b09a66435291619dce8cf2c4728ca", "type": "github" }, "original": { @@ -410,11 +428,11 @@ ] }, "locked": { - "lastModified": 1760241904, - "narHash": "sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw=", + "lastModified": 1763870992, + "narHash": "sha256-NPyc76Wxmv/vAsXJ8F+/8fXECHYcv2YGSqdiSHp/F/A=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa", + "rev": "d7423982c7a26586aa237d130b14c8b302c7a367", "type": "github" }, "original": { @@ -425,11 +443,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1760106635, - "narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=", + "lastModified": 1764328224, + "narHash": "sha256-hFyF1XQd+XrRx7WZCrGJp544dykexD8Q5SrJJZpEQYg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903", + "rev": "d62603a997438e19182af69d3ce7be07565ecad4", "type": "github" }, "original": { @@ -457,11 +475,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1760576526, - "narHash": "sha256-PdxUxGacfkSC8e+FBTuYEWHnkmWyVWdUWgzwh/LG6+M=", + "lastModified": 1764291786, + "narHash": "sha256-iPnM7g8x4kAcInIkO39JM9l/rnLaULxLOX5TCKZAeoc=", "owner": "bandithedoge", "repo": "nixpkgs-firefox-darwin", - "rev": "b6dbc82afbb2475690b5e98a277eca13adae6fd2", + "rev": "aa8cce83f55e8c70b730c2ea87465c9e7def6f77", "type": "github" }, "original": { @@ -517,11 +535,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1760524057, - "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", + "lastModified": 1764242076, + "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", + "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", "type": "github" }, "original": { @@ -547,6 +565,22 @@ "type": "github" } }, + "nixpkgs_7": { + "locked": { + "lastModified": 1763806073, + "narHash": "sha256-FHsEKDvfWpzdADWj99z7vBk4D716Ujdyveo5+A048aI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "878e468e02bfabeda08c79250f7ad583037f2227", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", @@ -568,9 +602,31 @@ "nixpkgs-firefox-darwin": "nixpkgs-firefox-darwin", "sops-nix": "sops-nix", "treefmt-nix": "treefmt-nix_2", + "yazi": "yazi", "zen-browser": "zen-browser" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "yazi", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763952169, + "narHash": "sha256-+PeDBD8P+NKauH+w7eO/QWCIp8Cx4mCfWnh9sJmy9CM=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "ab726555a9a72e6dc80649809147823a813fa95b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -578,11 +634,11 @@ ] }, "locked": { - "lastModified": 1760393368, - "narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=", + "lastModified": 1764021963, + "narHash": "sha256-1m84V2ROwNEbqeS9t37/mkry23GBhfMt8qb6aHHmjuc=", "owner": "Mic92", "repo": "sops-nix", - "rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437", + "rev": "c482a1c1bbe030be6688ed7dc84f7213f304f1ec", "type": "github" }, "original": { @@ -621,6 +677,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": "nixpkgs_4" @@ -646,11 +717,11 @@ ] }, "locked": { - "lastModified": 1760120816, - "narHash": "sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg=", + "lastModified": 1762938485, + "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "761ae7aff00907b607125b2f57338b74177697ed", + "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4", "type": "github" }, "original": { @@ -659,6 +730,26 @@ "type": "github" } }, + "yazi": { + "inputs": { + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_7", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1764381965, + "narHash": "sha256-kcDkRXkNaBnW4yGhv3LlHpu/ej2gXyCHcKwTescrwIw=", + "owner": "sxyazi", + "repo": "yazi", + "rev": "81ccdd8b645ebfa9471c2d8bb13a7c23abc0fe74", + "type": "github" + }, + "original": { + "owner": "sxyazi", + "repo": "yazi", + "type": "github" + } + }, "zen-browser": { "inputs": { "home-manager": "home-manager_2", @@ -667,11 +758,11 @@ ] }, "locked": { - "lastModified": 1760588585, - "narHash": "sha256-NufqXao2i6d7N1HFKp8hM8XAD8Q6s/zU2wNd065Ybus=", + "lastModified": 1764350280, + "narHash": "sha256-H8VpXvqEHll38N3YIaZUtqn7BSrq3SRfCL8idWvVRLw=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "5a651a6a3bb5c9bd694adbd2c34f55b4abff9a2c", + "rev": "504383097cbd6793aa62d1ec2d90d67ce7e4542e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 23c8695..983b31b 100644 --- a/flake.nix +++ b/flake.nix @@ -40,6 +40,9 @@ homebrew-brewsci-bio.flake = false; homebrew-valgrind.url = "github:LouisBrunner/homebrew-valgrind"; homebrew-valgrind.flake = false; + + # tools + yazi.url = "github:sxyazi/yazi"; }; outputs = diff --git a/home/default.nix b/home/default.nix index cd7e4c4..2a98b43 100644 --- a/home/default.nix +++ b/home/default.nix @@ -40,6 +40,7 @@ enableBashIntegration = config.programs.bash.enable; # enableFishIntegration = config.programs.fish.enable; enableZshIntegration = config.programs.zsh.enable; + nix-direnv.enable = true; }; gpg = { enable = true; diff --git a/home/git.nix b/home/git.nix index 568e136..46d411d 100644 --- a/home/git.nix +++ b/home/git.nix @@ -17,8 +17,17 @@ in lfs = { enable = true; }; - userEmail = "rs@rs.ht"; - userName = "Ray Andrew"; + settings = { + user = { + name = "Ray Andrew"; + email = "rs@rs.ht"; + }; + gpg.format = "ssh"; + core.editor = "emacs"; + credential.helper = "store --file ${home}/.git-credentials"; + pull.rebase = true; + github.user = user; + }; signing = { key = "${home}/.ssh/id_ed25519.pub"; signByDefault = true; @@ -29,13 +38,6 @@ in "*~" "*.swp" ]; - extraConfig = { - gpg.format = "ssh"; - core.editor = "emacs"; - credential.helper = "store --file ${home}/.git-credentials"; - pull.rebase = true; - github.user = user; - }; }; # programs.gh = { diff --git a/home/kitty.nix b/home/kitty.nix index 819ecf0..f1f23f7 100644 --- a/home/kitty.nix +++ b/home/kitty.nix @@ -2,6 +2,7 @@ config, pkgs, lib, + dots, ... }: { @@ -12,253 +13,10 @@ }; config = lib.mkIf config.custom.gui.kitty.enable { - programs.kitty = { - enable = true; - font = { - package = pkgs.vista-fonts; - name = "Consolas"; - size = 12.0; - }; - shellIntegration = { - enableBashIntegration = true; - }; - extraConfig = '' - modify_font cell_height 1.1 - # modify_font cell_width 95% - text_composition_strategy legacy + home.packages = with pkgs; [ + kitty + ]; - background #062329 - foreground #d1b897 - cursor-color #ffffff - cursor-text #d1b897 - selection_background #0000ff - selection_foreground #d1b897 - color0 #062329 - # color1 #0b3335 - # color2 #0000ff - color3 #44b340 - color4 #8cde94 - color5 #d1b897 - color6 #c1d1e3 - color7 #ffffff - color8 #626880 - color9 #e67172 - color10 #8ec772 - color11 #d9ba73 - color12 #7b9ef0 - color13 #f2a4db - color14 #5abfb5 - color15 #b5bfe2 - ''; - keybindings = { - # "CTRL+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x62\x1f"; - # "SHIFT+CTRL+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x63\x1f"; - # "CTRL+ALT+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x66\x1f"; - # "SHIFT+CTRL+ALT+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x67\x1f"; - # "CTRL+1" = "send_text all \x1b\x1f\x2b\x42\x1f"; - # "SHIFT+CTRL+1" = "send_text all \x1b\x1f\x2b\x43\x1f"; - # "CTRL+ALT+1" = "send_text all \x1b\x1f\x2b\x46\x1f"; - # "SHIFT+CTRL+ALT+1" = "send_text all \x1b\x1f\x2b\x47\x1f"; - # "CTRL+2" = "send_text all \x1b\x1f\x2c\x22\x1f"; - # "SHIFT+CTRL+2" = "send_text all \x1b\x1f\x2c\x23\x1f"; - # "CTRL+ALT+2" = "send_text all \x1b\x1f\x2c\x26\x1f"; - # "SHIFT+CTRL+ALT+2" = "send_text all \x1b\x1f\x2c\x27\x1f"; - # "CTRL+3" = "send_text all \x1b\x1f\x2c\x62\x1f"; - # "SHIFT+CTRL+3" = "send_text all \x1b\x1f\x2c\x63\x1f"; - # "CTRL+ALT+3" = "send_text all \x1b\x1f\x2c\x66\x1f"; - # "SHIFT+CTRL+ALT+3" = "send_text all \x1b\x1f\x2c\x67\x1f"; - # "CTRL+4" = "send_text all \x1b\x1f\x2d\x42\x1f"; - # "SHIFT+CTRL+4" = "send_text all \x1b\x1f\x2d\x43\x1f"; - # "CTRL+ALT+4" = "send_text all \x1b\x1f\x2d\x46\x1f"; - # "SHIFT+CTRL+ALT+4" = "send_text all \x1b\x1f\x2d\x47\x1f"; - # "CTRL+5" = "send_text all \x1b\x1f\x2e\x22\x1f"; - # "SHIFT+CTRL+5" = "send_text all \x1b\x1f\x2e\x23\x1f"; - # "CTRL+ALT+5" = "send_text all \x1b\x1f\x2e\x26\x1f"; - # "SHIFT+CTRL+ALT+5" = "send_text all \x1b\x1f\x2e\x27\x1f"; - # "CTRL+6" = "send_text all \x1b\x1f\x2e\x62\x1f"; - # "SHIFT+CTRL+6" = "send_text all \x1b\x1f\x2e\x63\x1f"; - # "CTRL+ALT+6" = "send_text all \x1b\x1f\x2e\x66\x1f"; - # "SHIFT+CTRL+ALT+6" = "send_text all \x1b\x1f\x2e\x67\x1f"; - # "CTRL+7" = "send_text all \x1b\x1f\x2f\x42\x1f"; - # "SHIFT+CTRL+7" = "send_text all \x1b\x1f\x2f\x43\x1f"; - # "CTRL+ALT+7" = "send_text all \x1b\x1f\x2f\x46\x1f"; - # "SHIFT+CTRL+ALT+7" = "send_text all \x1b\x1f\x2f\x47\x1f"; - # "CTRL+8" = "send_text all \x1b\x1f\x30\x22\x1f"; - # "SHIFT+CTRL+8" = "send_text all \x1b\x1f\x30\x23\x1f"; - # "CTRL+ALT+8" = "send_text all \x1b\x1f\x30\x26\x1f"; - # "SHIFT+CTRL+ALT+8" = "send_text all \x1b\x1f\x30\x27\x1f"; - # "CTRL+9" = "send_text all \x1b\x1f\x30\x62\x1f"; - # "SHIFT+CTRL+9" = "send_text all \x1b\x1f\x30\x63\x1f"; - # "CTRL+ALT+9" = "send_text all \x1b\x1f\x30\x66\x1f"; - # "SHIFT+CTRL+ALT+9" = "send_text all \x1b\x1f\x30\x67\x1f"; - # "CTRL+0" = "send_text all \x1b\x1f\x31\x42\x1f"; - # "SHIFT+CTRL+0" = "send_text all \x1b\x1f\x31\x43\x1f"; - # "CTRL+ALT+0" = "send_text all \x1b\x1f\x31\x46\x1f"; - # "SHIFT+CTRL+ALT+0" = "send_text all \x1b\x1f\x31\x47\x1f"; - # "CTRL+MINUS" = "send_text all \x1b\x1f\x32\x22\x1f"; - # "SHIFT+CTRL+MINUS" = "send_text all \x1b\x1f\x32\x23\x1f"; - # "CTRL+ALT+MINUS" = "send_text all \x1b\x1f\x32\x26\x1f"; - # "SHIFT+CTRL+ALT+MINUS" = "send_text all \x1b\x1f\x32\x27\x1f"; - # "CTRL+EQUAL" = "send_text all \x1b\x1f\x32\x62\x1f"; - # "SHIFT+CTRL+EQUAL" = "send_text all \x1b\x1f\x32\x63\x1f"; - # "CTRL+ALT+EQUAL" = "send_text all \x1b\x1f\x32\x66\x1f"; - # "SHIFT+CTRL+ALT+EQUAL" = "send_text all \x1b\x1f\x32\x67\x1f"; - # "SHIFT+BACKSPACE" = "send_text all \x1b\x1f\x33\x41\x1f"; - # "CTRL+BACKSPACE" = "send_text all \x1b\x1f\x33\x42\x1f"; - # "SHIFT+CTRL+BACKSPACE" = "send_text all \x1b\x1f\x33\x43\x1f"; - # "SHIFT+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x45\x1f"; - # "CTRL+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x46\x1f"; - # "SHIFT+CTRL+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x47\x1f"; - # "CTRL+TAB" = "send_text all \x1b\x1f\x34\x22\x1f"; - # "SHIFT+CTRL+TAB" = "send_text all \x1b\x1f\x34\x23\x1f"; - # "CTRL+ALT+TAB" = "send_text all \x1b\x1f\x34\x26\x1f"; - # "SHIFT+CTRL+ALT+TAB" = "send_text all \x1b\x1f\x34\x27\x1f"; - # "SHIFT+CTRL+Q" = "send_text all \x1b\x1f\x34\x63\x1f"; - # "SHIFT+CTRL+ALT+Q" = "send_text all \x1b\x1f\x34\x67\x1f"; - # "SHIFT+CTRL+W" = "send_text all \x1b\x1f\x35\x43\x1f"; - # "SHIFT+CTRL+ALT+W" = "send_text all \x1b\x1f\x35\x47\x1f"; - # "SHIFT+CTRL+E" = "send_text all \x1b\x1f\x36\x23\x1f"; - # "SHIFT+CTRL+ALT+E" = "send_text all \x1b\x1f\x36\x27\x1f"; - # "SHIFT+CTRL+R" = "send_text all \x1b\x1f\x36\x63\x1f"; - # "SHIFT+CTRL+ALT+R" = "send_text all \x1b\x1f\x36\x67\x1f"; - # "SHIFT+CTRL+T" = "send_text all \x1b\x1f\x37\x43\x1f"; - # "SHIFT+CTRL+ALT+T" = "send_text all \x1b\x1f\x37\x47\x1f"; - # "SHIFT+CTRL+Y" = "send_text all \x1b\x1f\x38\x23\x1f"; - # "SHIFT+CTRL+ALT+Y" = "send_text all \x1b\x1f\x38\x27\x1f"; - # "SHIFT+CTRL+U" = "send_text all \x1b\x1f\x38\x63\x1f"; - # "SHIFT+CTRL+ALT+U" = "send_text all \x1b\x1f\x38\x67\x1f"; - # "SHIFT+CTRL+I" = "send_text all \x1b\x1f\x39\x43\x1f"; - # "SHIFT+CTRL+ALT+I" = "send_text all \x1b\x1f\x39\x47\x1f"; - # "SHIFT+CTRL+O" = "send_text all \x1b\x1f\x3a\x23\x1f"; - # "SHIFT+CTRL+ALT+O" = "send_text all \x1b\x1f\x3a\x27\x1f"; - # "SHIFT+CTRL+P" = "send_text all \x1b\x1f\x3a\x63\x1f"; - # "SHIFT+CTRL+ALT+P" = "send_text all \x1b\x1f\x3a\x67\x1f"; - # "CTRL+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x42\x1f"; - # "SHIFT+CTRL+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x43\x1f"; - # "CTRL+ALT+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x46\x1f"; - # "SHIFT+CTRL+ALT+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x47\x1f"; - # "CTRL+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x22\x1f"; - # "SHIFT+CTRL+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x23\x1f"; - # "CTRL+ALT+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x26\x1f"; - # "SHIFT+CTRL+ALT+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x27\x1f"; - # "SHIFT+ENTER" = "send_text all \x1b\x1f\x3c\x61\x1f"; - # "CTRL+ENTER" = "send_text all \x1b\x1f\x3c\x62\x1f"; - # "SHIFT+CTRL+ENTER" = "send_text all \x1b\x1f\x3c\x63\x1f"; - # "SHIFT+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x65\x1f"; - # "CTRL+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x66\x1f"; - # "SHIFT+CTRL+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x67\x1f"; - # "SHIFT+CTRL+A" = "send_text all \x1b\x1f\x3e\x23\x1f"; - # "SHIFT+CTRL+ALT+A" = "send_text all \x1b\x1f\x3e\x27\x1f"; - # "SHIFT+CTRL+S" = "send_text all \x1b\x1f\x3e\x63\x1f"; - # "SHIFT+CTRL+ALT+S" = "send_text all \x1b\x1f\x3e\x67\x1f"; - # "SHIFT+CTRL+D" = "send_text all \x1b\x1f\x3f\x43\x1f"; - # "SHIFT+CTRL+ALT+D" = "send_text all \x1b\x1f\x3f\x47\x1f"; - # "SHIFT+CTRL+F" = "send_text all \x1b\x1f\x40\x23\x1f"; - # "SHIFT+CTRL+ALT+F" = "send_text all \x1b\x1f\x40\x27\x1f"; - # "SHIFT+CTRL+G" = "send_text all \x1b\x1f\x40\x63\x1f"; - # "CTRL+ALT+G" = "send_text all \x1b\x1f\x40\x66\x1f"; - # "SHIFT+CTRL+ALT+G" = "send_text all \x1b\x1f\x40\x67\x1f"; - # "SHIFT+CTRL+H" = "send_text all \x1b\x1f\x41\x43\x1f"; - # "SHIFT+CTRL+ALT+H" = "send_text all \x1b\x1f\x41\x47\x1f"; - # "SHIFT+CTRL+J" = "send_text all \x1b\x1f\x42\x23\x1f"; - # "SHIFT+CTRL+ALT+J" = "send_text all \x1b\x1f\x42\x27\x1f"; - # "SHIFT+CTRL+K" = "send_text all \x1b\x1f\x42\x63\x1f"; - # "SHIFT+CTRL+ALT+K" = "send_text all \x1b\x1f\x42\x67\x1f"; - # "SHIFT+CTRL+L" = "send_text all \x1b\x1f\x43\x43\x1f"; - # "SHIFT+CTRL+ALT+L" = "send_text all \x1b\x1f\x43\x47\x1f"; - # "CTRL+SEMICOLON" = "send_text all \x1b\x1f\x44\x22\x1f"; - # "SHIFT+CTRL+SEMICOLON" = "send_text all \x1b\x1f\x44\x23\x1f"; - # "CTRL+ALT+SEMICOLON" = "send_text all \x1b\x1f\x44\x26\x1f"; - # "SHIFT+CTRL+ALT+SEMICOLON" = "send_text all \x1b\x1f\x44\x27\x1f"; - # "CTRL+APOSTROPHE" = "send_text all \x1b\x1f\x44\x62\x1f"; - # "SHIFT+CTRL+APOSTROPHE" = "send_text all \x1b\x1f\x44\x63\x1f"; - # "CTRL+ALT+APOSTROPHE" = "send_text all \x1b\x1f\x44\x66\x1f"; - # "SHIFT+CTRL+ALT+APOSTROPHE" = "send_text all \x1b\x1f\x44\x67\x1f"; - # "CTRL+BACKSLASH" = "send_text all \x1b\x1f\x46\x22\x1f"; - # "SHIFT+CTRL+BACKSLASH" = "send_text all \x1b\x1f\x46\x23\x1f"; - # "CTRL+ALT+BACKSLASH" = "send_text all \x1b\x1f\x46\x26\x1f"; - # "SHIFT+CTRL+ALT+BACKSLASH" = "send_text all \x1b\x1f\x46\x27\x1f"; - # "SHIFT+CTRL+Z" = "send_text all \x1b\x1f\x46\x63\x1f"; - # "SHIFT+CTRL+ALT+Z" = "send_text all \x1b\x1f\x46\x67\x1f"; - # "SHIFT+CTRL+X" = "send_text all \x1b\x1f\x47\x43\x1f"; - # "SHIFT+CTRL+ALT+X" = "send_text all \x1b\x1f\x47\x47\x1f"; - # "SHIFT+CTRL+C" = "send_text all \x1b\x1f\x48\x23\x1f"; - # "SHIFT+CTRL+ALT+C" = "send_text all \x1b\x1f\x48\x27\x1f"; - # "SHIFT+CTRL+V" = "send_text all \x1b\x1f\x48\x63\x1f"; - # "SHIFT+CTRL+ALT+V" = "send_text all \x1b\x1f\x48\x67\x1f"; - # "SHIFT+CTRL+B" = "send_text all \x1b\x1f\x49\x43\x1f"; - # "SHIFT+CTRL+ALT+B" = "send_text all \x1b\x1f\x49\x47\x1f"; - # "SHIFT+CTRL+N" = "send_text all \x1b\x1f\x4a\x23\x1f"; - # "SHIFT+CTRL+ALT+N" = "send_text all \x1b\x1f\x4a\x27\x1f"; - # "SHIFT+CTRL+M" = "send_text all \x1b\x1f\x4a\x63\x1f"; - # "SHIFT+CTRL+ALT+M" = "send_text all \x1b\x1f\x4a\x67\x1f"; - # "CTRL+COMMA" = "send_text all \x1b\x1f\x4b\x42\x1f"; - # "SHIFT+CTRL+COMMA" = "send_text all \x1b\x1f\x4b\x43\x1f"; - # "CTRL+ALT+COMMA" = "send_text all \x1b\x1f\x4b\x46\x1f"; - # "SHIFT+CTRL+ALT+COMMA" = "send_text all \x1b\x1f\x4b\x47\x1f"; - # "CTRL+PERIOD" = "send_text all \x1b\x1f\x4c\x22\x1f"; # d - # "SHIFT+CTRL+PERIOD" = "send_text all \x1b\x1f\x4c\x23\x1f"; # d - # "CTRL+ALT+PERIOD" = "send_text all \x1b\x1f\x4c\x26\x1f"; # d - # "SHIFT+CTRL+ALT+PERIOD" = "send_text all \x1b\x1f\x4c\x27\x1f"; # d - # "CTRL+SLASH" = "send_text all \x1b\x1f\x4c\x62\x1f"; - # "SHIFT+CTRL+SLASH" = "send_text all \x1b\x1f\x4c\x63\x1f"; - # "CTRL+ALT+SLASH" = "send_text all \x1b\x1f\x4c\x66\x1f"; - # "SHIFT+CTRL+ALT+SLASH" = "send_text all \x1b\x1f\x4c\x67\x1f"; - # "CTRL+SPACE" = "send_text all \x1b\x1f\x50\x22\x1f"; - # "SHIFT+CTRL+SPACE" = "send_text all \x1b\x1f\x50\x23\x1f"; - # "CTRL+ALT+SPACE" = "send_text all \x1b\x1f\x50\x26\x1f"; - # "SHIFT+CTRL+ALT+SPACE" = "send_text all \x1b\x1f\x50\x27\x1f"; - # "MENU" = "send_text all \x1b\x1f\x52\x20\x1f"; - # "SHIFT+MENU" = "send_text all \x1b\x1f\x52\x21\x1f"; - # "CTRL+MENU" = "send_text all \x1b\x1f\x52\x22\x1f"; - # "SHIFT+CTRL+MENU" = "send_text all \x1b\x1f\x52\x23\x1f"; - # "ALT+MENU" = "send_text all \x1b\x1f\x52\x24\x1f"; - # "SHIFT+ALT+MENU" = "send_text all \x1b\x1f\x52\x25\x1f"; - # "CTRL+ALT+MENU" = "send_text all \x1b\x1f\x52\x26\x1f"; - # "SHIFT+CTRL+ALT+MENU" = "send_text all \x1b\x1f\x52\x27\x1f"; - # "SHIFT+CTRL+UP" = "send_text all \x1b\x1f\x53\x43\x1f"; - # "ALT+UP" = "send_text all \x1b\x1f\x53\x44\x1f"; - # "SHIFT+ALT+UP" = "send_text all \x1b\x1f\x53\x45\x1f"; - # "CTRL+ALT+UP" = "send_text all \x1b\x1f\x53\x46\x1f"; - # "SHIFT+CTRL+ALT+UP" = "send_text all \x1b\x1f\x53\x47\x1f"; - # "SHIFT+CTRL+DOWN" = "send_text all \x1b\x1f\x54\x23\x1f"; - # "ALT+DOWN" = "send_text all \x1b\x1f\x54\x24\x1f"; - # "SHIFT+ALT+DOWN" = "send_text all \x1b\x1f\x54\x25\x1f"; - # "CTRL+ALT+DOWN" = "send_text all \x1b\x1f\x54\x26\x1f"; - # "SHIFT+CTRL+ALT+DOWN" = "send_text all \x1b\x1f\x54\x27\x1f"; - # "SHIFT+CTRL+LEFT" = "send_text all \x1b\x1f\x54\x63\x1f"; - # "ALT+LEFT" = "send_text all \x1b\x1f\x54\x64\x1f"; - # "SHIFT+ALT+LEFT" = "send_text all \x1b\x1f\x54\x65\x1f"; - # "CTRL+ALT+LEFT" = "send_text all \x1b\x1f\x54\x66\x1f"; - # "SHIFT+CTRL+ALT+LEFT" = "send_text all \x1b\x1f\x54\x67\x1f"; - # "SHIFT+CTRL+RIGHT" = "send_text all \x1b\x1f\x55\x43\x1f"; - # "ALT+RIGHT" = "send_text all \x1b\x1f\x55\x44\x1f"; - # "SHIFT+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x45\x1f"; - # "CTRL+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x46\x1f"; - # "SHIFT+CTRL+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x47\x1f"; - # "SHIFT+CTRL+HOME" = "send_text all \x1b\x1f\x57\x43\x1f"; - # "ALT+HOME" = "send_text all \x1b\x1f\x57\x44\x1f"; - # "SHIFT+ALT+HOME" = "send_text all \x1b\x1f\x57\x45\x1f"; - # "CTRL+ALT+HOME" = "send_text all \x1b\x1f\x57\x46\x1f"; - # "SHIFT+CTRL+ALT+HOME" = "send_text all \x1b\x1f\x57\x47\x1f"; - # "SHIFT+CTRL+END" = "send_text all \x1b\x1f\x58\x23\x1f"; - # "ALT+END" = "send_text all \x1b\x1f\x58\x24\x1f"; - # "SHIFT+ALT+END" = "send_text all \x1b\x1f\x58\x25\x1f"; - # "CTRL+ALT+END" = "send_text all \x1b\x1f\x58\x26\x1f"; - # "SHIFT+CTRL+ALT+END" = "send_text all \x1b\x1f\x58\x27\x1f"; - # "SHIFT+PAGE_UP" = "send_text all \x1b\x1f\x58\x61\x1f"; - # "SHIFT+CTRL+PAGE_UP" = "send_text all \x1b\x1f\x58\x63\x1f"; - # "ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x64\x1f"; - # "SHIFT+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x65\x1f"; - # "CTRL+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x66\x1f"; - # "SHIFT+CTRL+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x67\x1f"; - # "SHIFT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x41\x1f"; - # "SHIFT+CTRL+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x43\x1f"; - # "ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x44\x1f"; - # "SHIFT+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x45\x1f"; - # "CTRL+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x46\x1f"; - # "SHIFT+CTRL+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x47\x1f"; - }; - }; + xdg.configFile."kitty".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/kitty"; }; } diff --git a/home/shell.nix b/home/shell.nix index f268a49..f708549 100644 --- a/home/shell.nix +++ b/home/shell.nix @@ -3,6 +3,7 @@ lib, pkgs, dots, + inputs, ... }: { @@ -51,7 +52,6 @@ openconnect fd ripgrep - yazi tree gnumake texinfo @@ -64,6 +64,10 @@ ppkgs.numpy ])) gum + (inputs.yazi.packages.${pkgs.stdenv.hostPlatform.system}.default.override { + _7zz = pkgs._7zz-rar; # Support for RAR extraction + }) + imagemagick ] ++ lib.optionals pkgs.stdenv.isDarwin [ coreutils ] ++ (lib.attrValues config.custom.shell.packages); @@ -99,5 +103,6 @@ }; xdg.configFile."sesh".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sesh"; + xdg.configFile."yazi".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/yazi"; }; } diff --git a/hosts/dango/default.nix b/hosts/dango/default.nix index 59d1f6d..1ff14f3 100644 --- a/hosts/dango/default.nix +++ b/hosts/dango/default.nix @@ -88,6 +88,7 @@ darwin.enable = true; ghostty.enable = true; hammerspoon.enable = true; + kitty.enable = true; }; }; } diff --git a/nixos/nix.nix b/nixos/nix.nix index 25fbc57..94b447e 100644 --- a/nixos/nix.nix +++ b/nixos/nix.nix @@ -82,18 +82,20 @@ "flakes" ]; substituters = [ - "https://hyprland.cachix.org" "https://nix-community.cachix.org" "https://ghostty.cachix.org" "https://rayandrew.cachix.org" + "https://devenv.cachix.org" + "https://yazi.cachix.org" ]; # allow building and pushing of laptop config from desktop trusted-users = [ user ]; trusted-public-keys = [ - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns=" "rayandrew.cachix.org-1:kJnvdWgUyErPGaQWgh/yyu91szgRYD+V/WQ4Dbc4n9M=" + "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" + "yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" ]; }; # // lib.optionalAttrs (config.nix.package.pname == "lix") {