diff options
author | grm@eyesin.space <grm@eyesin.space> | 2025-09-02 23:04:24 +0000 |
---|---|---|
committer | grm@eyesin.space <grm@eyesin.space> | 2025-09-02 23:04:24 +0000 |
commit | 47ef05ab310bb466300e93d1459370450414fbc4 (patch) | |
tree | 808f155d2871f831af743509de982c4c9789357c /home | |
download | nixos-config-47ef05ab310bb466300e93d1459370450414fbc4.tar.gz nixos-config-47ef05ab310bb466300e93d1459370450414fbc4.tar.bz2 nixos-config-47ef05ab310bb466300e93d1459370450414fbc4.zip |
Diffstat (limited to 'home')
-rw-r--r-- | home/core/default.nix | 66 | ||||
-rw-r--r-- | home/core/fzf.nix | 6 | ||||
-rw-r--r-- | home/core/git.nix | 32 | ||||
-rw-r--r-- | home/core/keychain.nix | 14 | ||||
-rw-r--r-- | home/core/starship.nix | 23 | ||||
-rw-r--r-- | home/core/tmux.nix | 22 | ||||
-rw-r--r-- | home/core/zsh.nix | 89 | ||||
-rw-r--r-- | home/default.nix | 16 | ||||
-rw-r--r-- | home/desktop/alacritty.nix | 34 | ||||
-rw-r--r-- | home/desktop/default.nix | 34 | ||||
-rw-r--r-- | home/desktop/games.nix | 6 | ||||
-rw-r--r-- | home/desktop/ghostty.nix | 10 | ||||
-rw-r--r-- | home/desktop/internet.nix | 13 | ||||
-rw-r--r-- | home/desktop/multimedia.nix | 33 | ||||
-rw-r--r-- | home/desktop/productivity.nix | 15 | ||||
-rw-r--r-- | home/dev/ai.nix | 9 | ||||
-rw-r--r-- | home/dev/db.nix | 13 | ||||
-rw-r--r-- | home/dev/default.nix | 39 | ||||
-rw-r--r-- | home/dev/direnv.nix | 6 | ||||
-rw-r--r-- | home/dev/docker.nix | 9 | ||||
-rw-r--r-- | home/dev/go.nix | 15 | ||||
-rw-r--r-- | home/dev/js.nix | 5 | ||||
-rw-r--r-- | home/dev/k8s.nix | 19 | ||||
-rw-r--r-- | home/dev/k9s.nix | 182 | ||||
-rw-r--r-- | home/dev/neovim.nix | 82 | ||||
-rw-r--r-- | home/dev/php.nix | 53 | ||||
-rw-r--r-- | home/dev/virt-manager.nix | 8 | ||||
-rw-r--r-- | home/dev/zed-editor.nix | 76 |
28 files changed, 929 insertions, 0 deletions
diff --git a/home/core/default.nix b/home/core/default.nix new file mode 100644 index 0000000..575bef0 --- /dev/null +++ b/home/core/default.nix @@ -0,0 +1,66 @@ +{pkgs, ...}: { + imports = [ + ./fzf.nix + ./git.nix + ./keychain.nix + ./starship.nix + ./tmux.nix + ./zsh.nix + ]; + + programs = { + atuin = { + enable = true; + settings = { + enter_accept = false; + }; + flags = [ + "--disable-up-arrow" + ]; + }; + nix-index.enable = true; + zoxide = { + enable = true; + options = [ + "--cmd cd" + ]; + }; + }; + + home.packages = with pkgs; [ + bat + btop + comma + dnsutils + dogdns + dua + duf + exfatprogs + eza + fd + fortune + gocryptfs + htop + inetutils + jnv + jq + iperf + lm_sensors + ncdu + nmap + ntfy-sh + nvd + pwgen + rclone + restic + ripgrep + sshfs + tldr + unzip + unrar + wget + wol + zip + zstd + ]; +} diff --git a/home/core/fzf.nix b/home/core/fzf.nix new file mode 100644 index 0000000..2278cef --- /dev/null +++ b/home/core/fzf.nix @@ -0,0 +1,6 @@ +{ + programs.fzf = { + enable = true; + defaultCommand = "rg --files --no-ignore-vcs --hidden"; + }; +} diff --git a/home/core/git.nix b/home/core/git.nix new file mode 100644 index 0000000..89ed25c --- /dev/null +++ b/home/core/git.nix @@ -0,0 +1,32 @@ +{ + programs.git = { + enable = true; + userName = "Anastasis Grammenos"; + userEmail = "anastasis@learnworlds.com"; + aliases = { + retag = "!f() { git tag -f -a \"$1\" -m \"$1\" && git push origin \"$1\" -f; }; f"; + deltag = "!f() { git tag -d \"$1\" && git push --delete origin \"$1\"; }; f"; + }; + extraConfig = { + init = { + defaultBranch = "main"; + }; + diff = { + colorMoved = "zebra"; + #tool = "nvim -d"; + }; + fetch = { + prune = true; + }; + log = { + date = "iso8601"; + }; + #merge = { + # tool = "nvimdiff"; + #}; + pull = { + rebase = false; + }; + }; + }; +} diff --git a/home/core/keychain.nix b/home/core/keychain.nix new file mode 100644 index 0000000..2dcced1 --- /dev/null +++ b/home/core/keychain.nix @@ -0,0 +1,14 @@ +{ + programs.keychain = { + enable = true; + keys = [ + "github_ed25519" + "id_ed25519" + "id_rsa" + ]; + extraFlags = [ + "--quiet" + "--timeout 120" + ]; + }; +} diff --git a/home/core/starship.nix b/home/core/starship.nix new file mode 100644 index 0000000..8465f54 --- /dev/null +++ b/home/core/starship.nix @@ -0,0 +1,23 @@ +{ + programs.starship = { + enable = true; + + settings = { + directory = { + truncate_to_repo = false; + truncation_symbol = "…"; + }; + + command_timeout = 2000; + + gcloud = { + disabled = true; + }; + + kubernetes = { + disabled = false; + format = "[$symbol$context(/$namespace)]($style) in "; + }; + }; + }; +} diff --git a/home/core/tmux.nix b/home/core/tmux.nix new file mode 100644 index 0000000..6f591b8 --- /dev/null +++ b/home/core/tmux.nix @@ -0,0 +1,22 @@ +{ + programs.tmux = { + enable = true; + keyMode = "vi"; + historyLimit = 5000; + mouse = true; + terminal = "screen-256color"; + extraConfig = '' + set -as terminal-features ",*:RGB" + set-option -g status-style fg=yellow,bg=black + set-window-option -g window-status-style fg=brightblue,bg=default + set-window-option -g window-status-current-style fg=brightred,bg=default + set-option -g pane-border-style fg=black + set-option -g pane-active-border-style fg=brightgreen + set-option -g message-style fg=brightred,bg=black + set-option -g display-panes-active-colour blue + set-option -g display-panes-colour brightred + set-window-option -g clock-mode-colour green + set-window-option -g window-status-bell-style fg=black,bg=red + ''; + }; +} diff --git a/home/core/zsh.nix b/home/core/zsh.nix new file mode 100644 index 0000000..e95ac5c --- /dev/null +++ b/home/core/zsh.nix @@ -0,0 +1,89 @@ +{pkgs, ...}: { + home.sessionVariables = { + ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=60"; + NTFY_TOPIC = "generic"; + }; + + programs.zsh = { + enable = true; + autosuggestion.enable = true; + autocd = true; + oh-my-zsh = { + enable = true; + plugins = [ + "docker" + "docker-compose" + "git" + "golang" + "kubectl" + "nmap" + "vi-mode" + ]; + }; + + initContent = '' + # run getnixindexdb first + source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh + + function getnixindexdb { + local _index="index-$(uname -m | sed 's/^arm64$/aarch64/')-$(uname | tr A-Z a-z)" + local _cache=~/.cache/nix-index + local _file=''${_cache}/files + test -d ''${_cache} || mkdir -p ''${_cache} + curl -s -L -R -o ''${_file} -z ''${_file} \ + "https://github.com/Mic92/nix-index-database/releases/latest/download/''${_index}" + } + + function kwide { + kubectl $@ -o wide + } + + function ktail { + local _app=$1; shift + kubectl logs --prefix -f -l app=''${_app} $@ | \ + grep -E -v 'health|metrics' + } + + function weather { + local _city=Cholargos + [[ "$1" ]] && _city="$1" + curl -s "https://wttr.in/''${_city}?format=3" + } + + function rsb { + local _rsb=$HOME/.rsbackup + if [[ -z "$1" ]]; then + echo "available options: $(cd ''${_rsb}; echo *)" + return 2 + fi + cd "''${_rsb}/$1" + } + + echo -e "\n$(fortune -s)" + ''; + + shellAliases = { + ls = "eza --header --git --icons --long"; + l = "ls"; + la = "ls -a"; + cp = "nocorrect cp -i"; + rm = "nocorrect rm -i"; + mv = "nocorrect mv -i"; + df = "df -h"; + dmesg = "sudo dmesg -HTP"; + dpss = "docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}'"; + du = "du -hsc"; + gti = "git"; + gdet = "git deltag"; + gret = "git retag"; + mkdir = "nocorrect mkdir"; + whatsmyip = "dig -4 +short myip.opendns.com @resolver1.opendns.com"; + whatsmyip-curl = "curl -4 -s https://ifconfig.co"; + kns = "kubens"; + kctx = "kubectx"; + kingtail = "kubectl logs -f -n default daemonsets.apps/nginx-ingress-nginx-controller"; + lwdc = "docker-compose -f docker-compose.yml -f extra/account.yml -f extra/adminer.yml -f extra/website.yml -f extra/marketplace.yml -f extra/cameraman.yml -f extra/pubsub-emulator.yml -f extra/cloner.yml -f extra/lwdemomaker.yml -f extra/iplocate.yml -f extra/mailpit.yml -f docker-compose.override.yml"; + lwdctail = "lwdc logs --no-log-prefix --no-color -f"; + }; + }; +} diff --git a/home/default.nix b/home/default.nix new file mode 100644 index 0000000..df80943 --- /dev/null +++ b/home/default.nix @@ -0,0 +1,16 @@ +{ config, pkgs, lib, ... }: +{ + home.username = "grm"; + home.homeDirectory = lib.mkForce "/home/grm"; + + programs.home-manager.enable = true; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "23.05"; # Please read the comment before changing. +} diff --git a/home/desktop/alacritty.nix b/home/desktop/alacritty.nix new file mode 100644 index 0000000..6c31e68 --- /dev/null +++ b/home/desktop/alacritty.nix @@ -0,0 +1,34 @@ +{ + programs.alacritty = { + enable = true; + settings = { + colors = { + primary = { + background = "0x002b36"; + foreground = "0x839496"; + }; + normal = { + black = "0x073642"; + red = "0xdc322f"; + green = "0x859900"; + yellow = "0xb58900"; + blue = "0x268bd2"; + magenta = "0xd33682"; + cyan = "0x2aa198"; + white = "0xeee8d5"; + }; + + bright = { + black = "0x002b36"; + red = "0xcb4b16"; + green = "0x586e75"; + yellow = "0x657b83"; + blue = "0x839496"; + magenta = "0x6c71c4"; + cyan = "0x93a1a1"; + white = "0xfdf6e3"; + }; + }; + }; + }; +} diff --git a/home/desktop/default.nix b/home/desktop/default.nix new file mode 100644 index 0000000..1012454 --- /dev/null +++ b/home/desktop/default.nix @@ -0,0 +1,34 @@ +{ + config, + pkgs, + ... +}: { + imports = [ + ./alacritty.nix + ./games.nix + ./ghostty.nix + ./internet.nix + ./multimedia.nix + ./productivity.nix + ]; + + home.sessionVariables.NIXOS_OZONE_WL = "1"; + + home.packages = with pkgs; [ + wl-clipboard + xorg.xhost + ]; + + home.file.pw-pa-conf = { + text = '' + pulse.properties = { + server.address = [ + "unix:native" + "unix:/tmp/pulseaudio.socket" + ] + } + ''; + + target = "${config.xdg.configHome}/pipewire/pipewire-pulse.conf.d/socket.conf"; + }; +} diff --git a/home/desktop/games.nix b/home/desktop/games.nix new file mode 100644 index 0000000..eb0bc4a --- /dev/null +++ b/home/desktop/games.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + protonup-qt + steam-run + ]; +} diff --git a/home/desktop/ghostty.nix b/home/desktop/ghostty.nix new file mode 100644 index 0000000..7de8af8 --- /dev/null +++ b/home/desktop/ghostty.nix @@ -0,0 +1,10 @@ +{ + programs.ghostty = { + enable = true; + enableZshIntegration = true; + settings = { + theme = "Solarized Dark - Patched"; + font-size = 12; + }; + }; +} diff --git a/home/desktop/internet.nix b/home/desktop/internet.nix new file mode 100644 index 0000000..9c7f3e8 --- /dev/null +++ b/home/desktop/internet.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + discord + firefox + google-chrome + monolith + nextcloud-client + signal-desktop + slack + transmission_3-qt + yt-dlp + ]; +} diff --git a/home/desktop/multimedia.nix b/home/desktop/multimedia.nix new file mode 100644 index 0000000..bbb7fc2 --- /dev/null +++ b/home/desktop/multimedia.nix @@ -0,0 +1,33 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + audacity + curtail + darktable + feishin + ffmpeg + gimp3 + glaxnimate + handbrake + imagemagick + inkscape + jellyfin-media-player + mousai + obs-studio + picard + scribus + tidal-dl + vhs + vlc + ]; + + programs.mpv = { + enable = true; + config = { + gpu-context = "wayland"; + hwdec = "auto-safe"; + profile = "gpu-hq"; + ytdl-format = "bestvideo+bestaudio"; + vo = "gpu"; + }; + }; +} diff --git a/home/desktop/productivity.nix b/home/desktop/productivity.nix new file mode 100644 index 0000000..b972b43 --- /dev/null +++ b/home/desktop/productivity.nix @@ -0,0 +1,15 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + bitwarden + bitwarden-cli + calibre + fastfetch + gnome-frog + hunspell + libreoffice-qt + obsidian + pdfcpu + tradingview + trezor-suite + ]; +} diff --git a/home/dev/ai.nix b/home/dev/ai.nix new file mode 100644 index 0000000..da7d9e0 --- /dev/null +++ b/home/dev/ai.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + claude-code + codex + fabric-ai + gemini-cli + warp-terminal + ]; +} diff --git a/home/dev/db.nix b/home/dev/db.nix new file mode 100644 index 0000000..bf7398a --- /dev/null +++ b/home/dev/db.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + dbgate + go-migrate + mongodb-compass + mongodb-tools + mongosh + mycli + pg_activity + pgcli + sqlite + ]; +} diff --git a/home/dev/default.nix b/home/dev/default.nix new file mode 100644 index 0000000..e1c9a5c --- /dev/null +++ b/home/dev/default.nix @@ -0,0 +1,39 @@ +{pkgs, ...}: { + imports = [ + ./ai.nix + ./db.nix + ./direnv.nix + ./docker.nix + ./go.nix + ./js.nix + ./k8s.nix + ./neovim.nix + ./php.nix + ./virt-manager.nix + ./zed-editor.nix + ]; + + home.packages = with pkgs; [ + backblaze-b2 + ddosify + dos2unix + fx + gh + glab + glow + go-task + graphviz + httpie + hyperfine + jd-diff-patch + just + mkcert + nfpm + nssTools + scc + speedtest-go + testssl + upx + yq + ]; +} diff --git a/home/dev/direnv.nix b/home/dev/direnv.nix new file mode 100644 index 0000000..2b51c9d --- /dev/null +++ b/home/dev/direnv.nix @@ -0,0 +1,6 @@ +{ + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; +} diff --git a/home/dev/docker.nix b/home/dev/docker.nix new file mode 100644 index 0000000..dfb8054 --- /dev/null +++ b/home/dev/docker.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + diffoci + dive + docker-buildx + docker-compose + docker-ls + ]; +} diff --git a/home/dev/go.nix b/home/dev/go.nix new file mode 100644 index 0000000..0b27b06 --- /dev/null +++ b/home/dev/go.nix @@ -0,0 +1,15 @@ +{pkgs, ...}: { + programs.go = { + enable = true; + }; + + home.packages = with pkgs; [ + delve + gdlv + gofumpt + golangci-lint + gopls + gotools + go-tools + ]; +} diff --git a/home/dev/js.nix b/home/dev/js.nix new file mode 100644 index 0000000..fed6dd9 --- /dev/null +++ b/home/dev/js.nix @@ -0,0 +1,5 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + bun + ]; +} diff --git a/home/dev/k8s.nix b/home/dev/k8s.nix new file mode 100644 index 0000000..457e43b --- /dev/null +++ b/home/dev/k8s.nix @@ -0,0 +1,19 @@ +{pkgs, ...}: { + imports = [ + ./k9s.nix + ]; + + home.packages = with pkgs; [ + (google-cloud-sdk.withExtraComponents [google-cloud-sdk.components.gke-gcloud-auth-plugin]) + helmfile + kubectl + kubectx + kubent + stern + (wrapHelm kubernetes-helm { + plugins = with pkgs.kubernetes-helmPlugins; [ + helm-diff + ]; + }) + ]; +} diff --git a/home/dev/k9s.nix b/home/dev/k9s.nix new file mode 100644 index 0000000..6c90e92 --- /dev/null +++ b/home/dev/k9s.nix @@ -0,0 +1,182 @@ +{ + programs.k9s = { + enable = true; + + views = { + "v1/pods" = { + sortColumn = "NAME:asc"; + columns = [ + "NAME" + "VERSION:.metadata.labels.version" + "READY" + "STATUS" + "RESTARTS" + "CPU" + "MEM" + "PF" + "IP" + "NODE|W" + "AGE" + "LAST RESTART|W" + "%CPU/R|H" + "%CPU/L|H" + "%MEM/R|H" + "%MEM/L|H" + "CPU/RL|H" + "MEM/RL|H" + "SERVICE-ACCOUNT|H" + "NOMINATED NODE|H" + "READINESS GATES|H" + "QOS|H" + "LABELS|H" + "VALID|H" + ]; + }; + }; + + plugins = { + stern = { + shortCut = "Ctrl-L"; + confirm = false; + description = "Logs <Stern>"; + scopes = [ "pods" ]; + command = "stern"; + background = false; + args = [ + "--tail" + "50" + "$FILTER" + "-n" + "$NAMESPACE" + "--context" + "$CONTEXT" + ]; + }; + }; + + settings = { + k9s = { + skipLatestRevCheck = true; + ui = { + logoless = true; + enableMouse = true; + skin = "solarized"; + }; + }; + }; + + skins = { + solarized = { + foreground = "#839495"; + background = "#002833"; + "current_line" = "#003440"; + selection = "#003440"; + comment = "#6272a4"; + cyan = "#2aa197"; + green = "#859901"; + orange = "#cb4a16"; + magenta = "#d33582"; + blue = "#2aa198"; + red = "#dc312e"; + k9s = { + body = { + fgColor = "#839495"; + bgColor = "#002833"; + logoColor = "#2aa198"; + }; + prompt = { + fgColor = "#839495"; + bgColor = "#002833"; + suggestColor = "#cb4a16"; + }; + info = { + fgColor = "#d33582"; + sectionColor = "#839495"; + }; + dialog = { + fgColor = "#839495"; + bgColor = "#002833"; + buttonFgColor = "#839495"; + buttonBgColor = "#d33582"; + buttonFocusFgColor = "white"; + buttonFocusBgColor = "#2aa197"; + labelFgColor = "#cb4a16"; + fieldFgColor = "#839495"; + }; + frame = { + border = { + fgColor = "#003440"; + focusColor = "#003440"; + }; + menu = { + fgColor = "#839495"; + keyColor = "#d33582"; + numKeyColor = "#d33582"; + }; + crumbs = { + fgColor = "#839495"; + bgColor = "#003440"; + activeColor = "#003440"; + }; + status = { + newColor = "#2aa197"; + modifyColor = "#2aa198"; + addColor = "#859901"; + errorColor = "#dc312e"; + highlightColor = "#cb4a16"; + killColor = "#6272a4"; + completedColor = "#6272a4"; + }; + title = { + fgColor = "#839495"; + bgColor = "#003440"; + highlightColor = "#cb4a16"; + counterColor = "#2aa198"; + filterColor = "#d33582"; + }; + }; + views = { + charts = { + bgColor = "default"; + defaultDialColors = ["#2aa198" "#dc312e"]; + defaultChartColors = ["#2aa198" "#dc312e"]; + }; + table = { + fgColor = "#839495"; + bgColor = "#002833"; + cursorFgColor = "#003440"; + cursorBgColor = "#003440"; + header = { + fgColor = "#839495"; + bgColor = "#002833"; + sorterColor = "#2aa197"; + }; + }; + xray = { + fgColor = "#839495"; + bgColor = "#002833"; + cursorColor = "#003440"; + graphicColor = "#2aa198"; + showIcons = false; + }; + yaml = { + keyColor = "#d33582"; + colonColor = "#2aa198"; + valueColor = "#839495"; + }; + logs = { + fgColor = "#839495"; + bgColor = "#002833"; + indicator = { + fgColor = "#839495"; + bgColor = "#003440"; + toggleOnColor = "#d33582"; + toggleOffColor = "#2aa198"; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/home/dev/neovim.nix b/home/dev/neovim.nix new file mode 100644 index 0000000..37bdaea --- /dev/null +++ b/home/dev/neovim.nix @@ -0,0 +1,82 @@ +{pkgs, ...}: { + programs.neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + coc.enable = true; + plugins = with pkgs.vimPlugins; [ + NeoSolarized + copilot-vim + fzf-vim + nerdcommenter + vim-airline + vim-airline-themes + vim-go + vim-sleuth + vim-surround + { + plugin = undotree; + config = '' + nnoremap <F5> :UndotreeToggle<CR> + if has("persistent_undo") + let target_path = expand('~/.local/nvim-undo') + if !isdirectory(target_path) + call mkdir(target_path, "p", 0700) + endif + let &undodir=target_path + set undofile + endif + ''; + } + ]; + extraConfig = '' + filetype off + set nocompatible + set modelines=0 + set encoding=utf-8 + set scrolloff=3 + set wildmode=list:longest + set visualbell + set backspace=indent,eol,start + set laststatus=2 + set number + set history=1000 + set title + set ignorecase + set smartcase + set gdefault + set incsearch + set showmatch + set hlsearch + + let mapleader = "," + nmap <silent> <leader><space> :silent :nohlsearch<CR> + + set wrap + set textwidth=0 + set list + set listchars=tab:▸\ ,eol:¬ + set mousehide + set mouse=a + set cursorline + set cursorcolumn + + au VimResized * exe "normal! \<c-w>=" + + augroup vimrc_autocmd + autocmd! + + " jump to the last position when reopening a file + autocmd BufReadPost * + \ if line("'\"") > 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif + augroup END + + syn on + set background=dark + colorscheme NeoSolarized + ''; + }; +} diff --git a/home/dev/php.nix b/home/dev/php.nix new file mode 100644 index 0000000..a8a49a9 --- /dev/null +++ b/home/dev/php.nix @@ -0,0 +1,53 @@ +{pkgs, ...}: { + home.packages = [ + (pkgs.php82.buildEnv { + extensions = { + enabled, + all, + }: + enabled + ++ (with all; [ + bcmath + bz2 + calendar + dom + ctype + curl + enchant + exif + ffi + fileinfo + gd + gettext + grpc + iconv + intl + imagick + mbstring + mongodb + opcache + openssl + pdo_pgsql + pcntl + posix + pspell + rdkafka + redis + session + shmop + simplexml + sockets + sodium + sysvmsg + sysvsem + sysvshm + tidy + tokenizer + xmlreader + xmlwriter + xsl + zip + ]); + }) + ]; +} diff --git a/home/dev/virt-manager.nix b/home/dev/virt-manager.nix new file mode 100644 index 0000000..5aa991a --- /dev/null +++ b/home/dev/virt-manager.nix @@ -0,0 +1,8 @@ +{ + dconf.settings = { + "org/virt-manager/virt-manager/connections" = { + autoconnect = ["qemu:///system"]; + uris = ["qemu:///system"]; + }; + }; +} diff --git a/home/dev/zed-editor.nix b/home/dev/zed-editor.nix new file mode 100644 index 0000000..79bde2c --- /dev/null +++ b/home/dev/zed-editor.nix @@ -0,0 +1,76 @@ +{pkgs, ...}: { + programs.zed-editor = { + enable = true; + + extensions = [ + "dockerfile" + "docker-compose" + "git-firefly" + "golangci_lint" + "helm" + "html" + "make" + "nix" + "php" + ]; + + extraPackages = with pkgs; [ + alejandra + nil + ]; + + userSettings = { + vim_mode = true; + load_direnv = "shell_hook"; + show_whitespaces = "all"; + ui_font_size = 18; + buffer_font_size = 16; + buffer_font_family = "JetBrainsMono Nerd Font"; + hour_format = "hour24"; + assistant = { + default_model = { + # provider = "ollama"; + # model = "qwen2.5-coder:latest"; + provider = "copilot_chat"; + #model = "gpt-4o"; + model = "claude-3-5-sonnet"; + }; + version = "2"; + }; + theme = { + mode = "system"; + light = "Solarized Light"; + dark = "Solarized Dark"; + }; + languages = { + Nix = { + language_servers = [ + "nil" + "!nixd" + ]; + formatter = { + external = { + command = "alejandra"; + }; + }; + }; + }; + telemetry = { + metrics = false; + diagnostics = false; + }; + terminal = { + blinking = "off"; + env = { + TERM = "alacritty"; + }; + detect_venv = { + on = { + directories = [".env" "env" ".venv" "venv"]; + activate_script = "default"; + }; + }; + }; + }; + }; +} |