{ pkgs, nixvim, river-shifttags, other-transcode, kitty-unstable, ... }: let username = "khais"; in { imports = [ ./stylix.nix ./wm ./direnv.nix ]; home = { packages = with pkgs; [ # system tools & bragging htop neofetch ripgrep usbutils wget curl ncdu trashy unzip # remote working remmina # communication discord # passwords bitwarden-desktop # editors nixvim # make clipboard yanking work in neovim # https://superuser.com/a/1803183 wl-clipboard # wm river utils playerctl brightnessctl river-shifttags wlr-randr # dev tools gitu lnav # music cmus # music collection tools picard kid3 # audio audacity # video mpv other-transcode # file sending magic-wormhole # drawing apps krita inkscape # office apps libreoffice-fresh hunspellDicts.fr-moderne hunspellDicts.de-de hunspellDicts.en-us # nixos tools nh nix-output-monitor alejandra # archiving archivebox ]; file = { # konsole configuration ".local/share/konsole/Nixos.profile".source = ./konsole/Nixos.profile; ".config/nixpkgs/config.nix".text = '' { allowUnfree = true; } ''; }; sessionVariables = { EDITOR = "nvim"; }; inherit username; homeDirectory = "/home/${username}"; stateVersion = "23.11"; }; nixpkgs.config.allowUnfree = true; programs.git = { enable = true; userEmail = "khais.colin@gmail.com"; userName = "Khaïs COLIN"; # better diffs diff-so-fancy.enable = true; # set editor extraConfig.core.editor = "nvim"; # always show diff in commits extraConfig.commit.verbose = true; }; programs.jujutsu = { enable = true; settings = { user = { email = "khais.colin@gmail.com"; name = "Khaïs COLIN"; }; ui = { editor = "nvim"; diff-editor = ["nvim" "-c" "DiffEditor $left $right $output"]; merge-editor = ["nvim" "-c" "DiffEditor $left $right $output"]; }; }; }; programs.zsh = { enable = true; enableVteIntegration = true; prezto = { enable = true; }; shellAliases = { gc = "git commit -v"; ga = "git add"; gst = "git status"; gp = "git push"; gd = "git diff"; gds = "git diff --staged"; vim = "nvim"; vi = "nvim"; # progress cp # https://serverfault.com/questions/43014/copying-a-large-directory-tree-locally-cp-or-rsync pcp = "rsync --info=progress2 --archive --hard-links --acls --xattrs --human-readable --sparse --stats"; }; initExtra = '' # enable jj completion source <(jj util completion zsh) ''; }; programs.kitty = { package = kitty-unstable; enable = true; keybindings = { "super+shift+enter" = "new_os_window_with_cwd"; }; settings = { text_fg_override_threshold = 10; }; }; programs.fuzzel.enable = true; programs.zellij.enable = true; programs.ssh = { enable = true; matchBlocks = { "quasar" = { hostname = "109.199.126.230"; user = "root"; }; }; }; # default connection to qemu for virt-manager dconf.settings = { "org/virt-manager/virt-manager/connections" = { autoconnect = ["qemu:///system"]; uris = ["qemu:///system"]; }; }; programs.beets = { enable = true; settings = { directory = "/pile/Music"; library = "/pile/beets.db"; import = { move = false; copy = true; incremental = false; write = true; }; plugins = ["lyrics" "web" "info" "edit"]; }; }; programs.yt-dlp = { enable = true; settings = { embed-thumbnail = true; embed-subs = true; sub-langs = "all"; }; }; }