{ config, pkgs, user, ... }: # https://nix-community.github.io/home-manager/options.html { # don't change home.stateVersion = "22.05"; programs.home-manager.enable = true; home.username = "tristan"; home.homeDirectory = "/home/tristan"; xdg.userDirs.enable = true; xdg.mimeApps = { enable = true; associations.added = { "inode/directory" = "lf.desktop;vscodium.desktop;pcmanfm.desktop"; }; defaultApplications = { "inode/directory" = "lf.desktop"; "text/html" = "brave-browser.desktop"; "x-scheme-handler/http" = "brave-browser.desktop"; "x-scheme-handler/https" = "brave-browser.desktop"; }; }; home.packages = with pkgs; [ # script requirements libnotify playerctl grim wl-clipboard slurp chafa wofi # utils exa du-dust htop imv libsixel # apps gimp logseq quickemu ansible bitwarden nextcloud-client godot_4 ardour blender musescore ]; programs.fish = { enable = true; }; programs.git = { enable = true; userName = "tristan"; userEmail = "tristan@tristans.cloud"; aliases = { graph = "log --oneline --all --graph"; amend = "commit --amend --no-edit"; }; }; programs.swaylock.settings = { clock = true; screenshots = true; effect-scale = 0.5; effect-blur = "10x10"; }; services.swayidle.enable = true; services.swayidle.events = [ { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock"; } { event = "lock"; command = "${pkgs.swaylock}/bin/swaylock"; } ]; programs.waybar.enable = true; programs.waybar.settings = { mainBar = { layer = "top"; position = "top"; height = 30; modules-left = [ "wlr/taskbar" "hyprland/window" ]; modules-right = [ "mpd" "pulseaudio" "clock" "tray" ]; clock = { format = "📅 {:%a %b-%d %I:%M %p}"; }; pulseaudio = { format-muted = "🔇 {volume}%"; format = "{icon} {volume}"; format-icons.default = ["🔈" "🔉" "🔊"]; on-click = "pavucontrol"; }; mpd = { server = "192.168.1.2"; on-click = "foot -e ncmpcpp"; }; }; }; programs.waybar.systemd.enable = true; services.udiskie = { enable = true; notify = true; }; gtk = { enable = true; theme = { name = "Materia-dark"; package = pkgs.materia-theme; }; gtk3.bookmarks = [ "file:///home/tristan/Documents" ]; }; services.fnott = { enable = true; # https://codeberg.org/dnkl/fnott/src/branch/master/fnott.ini settings = { main = { selection-helper = "wofi --show dmenu"; }; }; }; programs.ncmpcpp = { enable = true; settings.mpd_host = "music.local"; bindings = [ { key = "j"; command = "scroll_down"; } { key = "k"; command = "scroll_up"; } { key = "J"; command = [ "select_item" "scroll_down" ]; } { key = "K"; command = [ "select_item" "scroll_up" ]; } ]; }; services.mpd-mpris.enable = true; services.mpd-mpris.mpd = { host = "music.local"; }; programs.mpv.enable = true; programs.mpv.bindings = { l = "seek 5"; h = "seek -5"; e = "add chapter 1"; b = "add chapter -1"; ">" = "multiply speed 1.1"; "<" = "multiply speed 1/1.1"; "." = "frame-step"; "," = "frame-back-step"; "ctrl+n" = "playlist-next"; "ctrl+p" = "playlist-prev"; k = "add volume 2"; j = "add volume -2"; m = "cycle mute"; c = "cycle sub-visibility"; }; programs.foot.enable = true; programs.foot.server.enable = true; programs.foot.settings = { main = { term = "xterm-256color"; font = "mono:size=12"; }; colors = { foreground="abb2bf"; background="282c34"; regular0="222222"; regular1="eb3a26"; regular2="7fbc59"; regular3="e9db65"; regular4="4781d1"; regular5="7d74bb"; regular6="50a2bd"; regular7="dcdccc"; bright0="666666"; bright1="e15d4e"; bright2="8fbd73"; bright3="e3d97e"; bright4="6791ce"; bright5="8f88be"; bright6="6caabf"; bright7="ffffff"; }; }; programs.vscode = { enable = true; package = pkgs.vscodium; extensions = with pkgs; [ vscode-extensions.asvetliakov.vscode-neovim vscode-extensions.jnoortheen.nix-ide ]; userSettings = { "vscode-neovim.neovimExecutablePaths.linux" = "/run/current-system/sw/bin/nvim"; "keyboard.dispatch" = "keyCode"; }; }; services.nextcloud-client.enable = true; services.nextcloud-client.startInBackground = true; accounts.email.accounts."tristan@tristans.cloud" = { notmuch.enable = true; neomutt.enable = true; mbsync.enable = true; mbsync.create = "maildir"; userName = "tristan@tristans.cloud"; realName = "Tristan"; address = "tristan@tristans.cloud"; primary = true; passwordCommand = "rbw get privateemail"; smtp = { host = "mail.privateemail.com"; port = 465; tls.enable = true; }; imap = { host = "mail.privateemail.com"; port = 993; tls.enable = true; }; }; programs.notmuch.enable = true; programs.neomutt = { enable = true; vimKeys = true; sort = "reverse-date"; sidebar.enable = true; }; programs.mbsync.enable = true; services.mbsync.enable = true; programs.rbw = { enable = true; settings = { email = "tristan@tristans.cloud"; base_url = "https://vault.tristans.cloud"; }; }; programs.ssh.enable = true; programs.ssh.matchBlocks = { "git.tristans.cloud" = { user = "git"; port = 2222; }; }; programs.neovim.defaultEditor = true; programs.lf.enable = true; programs.lf.keybindings = { D = "trash"; }; home.sessionPath = [ "$HOME/.local/scripts" ]; home.file.".local/scripts" = { source = ./scripts; executable = true; recursive = true; }; home.file.".config/hypr" = { source = ./hyprland; recursive = true; }; home.file.".config/wofi/config".text = '' term=foot ''; }