diff --git a/flake.nix b/flake.nix index f7d214e..caf2beb 100644 --- a/flake.nix +++ b/flake.nix @@ -54,11 +54,25 @@ users = { till = { - imports = [ ./home ]; + imports = [ + ./home/desktop-full.nix + ./home/users/till.nix + ]; }; - alt = { imports = [ ./home/alt.nix ]; }; - guest = { imports = [ ./home/guest.nix ]; }; + alt = { + imports = [ + ./home/desktop-slim.nix + ./home/users/alt.nix + ]; + }; + + guest = { + imports = [ + ./home/desktop-slim.nix + ./home/users/guest.nix + ]; + }; }; }; } diff --git a/home/aichat.nix b/home/aichat.nix new file mode 100644 index 0000000..e2a927a --- /dev/null +++ b/home/aichat.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + aichat + glow + ]; +} diff --git a/home/alt.nix b/home/alt.nix deleted file mode 100644 index 01bd239..0000000 --- a/home/alt.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ config, pkgs, inputs, lib, ... }: - -{ - home.packages = with pkgs; [ - fzf - silver-searcher - tmux - nodejs - wl-clipboard - qbittorrent - vlc - ffmpeg - libnotify - ]; - - imports = [ - ./minimal.nix - - ./gnome - ./firefox.nix - ./foot.nix - ./fish.nix - ./vifm - ./tmux - ./nvim - ./user-dirs.nix - ]; - - programs.nix-index = { - enable = true; - enableFishIntegration = true; - }; - - programs.git = { - enable = true; - userName = "Till"; - userEmail = "till@ktiu.net"; - lfs = { - enable = true; - }; - extraConfig = { - init = { - defaultBranch = "main"; - }; - }; - }; -} diff --git a/home/default.nix b/home/default.nix deleted file mode 100644 index 5ab1e4f..0000000 --- a/home/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ pkgs, ... }: - -{ - home.username = "till"; - home.homeDirectory = "/home/till"; - - imports = [ - ./slim-desktop.nix - - ./fonts.nix - ./gnome - ./r.nix - ./tex.nix - ]; - - home.packages = with pkgs; [ - - # messenger - signal-desktop - telegram-desktop - - # office - xournalpp - pdfpc - - # text publishing - libreoffice - jdk - poppler-utils - zotero - lorem - typst - - # graphics - gimp - inkscape - - # web - chromium - nyxt - - # media - anki-bin - qbittorrent - nicotine-plus - - # other - quickemu - keymapp - gnome-solanum - eduvpn-client - yt-dlp - - ]; - - programs.obs-studio.enable = true; -} diff --git a/home/desktop-full.nix b/home/desktop-full.nix new file mode 100644 index 0000000..ea29f46 --- /dev/null +++ b/home/desktop-full.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: + +{ + imports = [ + ./desktop-slim.nix + + ./messaging.nix + ./r.nix + ./tex.nix + ./mail + ./office-gui.nix + ./office-cli.nix + ./aichat.nix + ]; +} diff --git a/home/slim-desktop.nix b/home/desktop-slim.nix similarity index 84% rename from home/slim-desktop.nix rename to home/desktop-slim.nix index e4299fa..9add985 100644 --- a/home/slim-desktop.nix +++ b/home/desktop-slim.nix @@ -4,23 +4,22 @@ imports = [ ./minimal.nix - ./calendars.nix - ./cli-office ./devel.nix ./firefox.nix + ./fonts.nix ./foot.nix - ./mail + ./gnome + ./media.nix ./user-dirs.nix ]; home.packages = with pkgs; [ - aichat + anki-bin appimage-run drawing - feh keepassxc + libnotify usbutils - vlc wl-clipboard yubioath-flutter zathura diff --git a/home/fish.nix b/home/fish.nix index 3e65ddb..6570f73 100644 --- a/home/fish.nix +++ b/home/fish.nix @@ -7,7 +7,6 @@ du = "dust"; ymd = "date +'%Y-%m-%d'"; dmy = "date +'%-d.-%-m.%Y'"; - v = "nvim"; r = "R --no-save --no-restore"; R = "R --no-save --no-restore"; cdg = "cd \$(git rev-parse --show-toplevel)"; diff --git a/home/gpg.nix b/home/gpg.nix index 15fdc98..554398a 100644 --- a/home/gpg.nix +++ b/home/gpg.nix @@ -8,7 +8,7 @@ services.gpg-agent = { enable = true; - # pinentry.package = pkgs.pinentry-gnome3; + pinentry.package = pkgs.pinentry-gnome3; pinentry.program = "pinentry-gnome3"; enableSshSupport = true; }; diff --git a/home/guest.nix b/home/guest.nix deleted file mode 100644 index 429f738..0000000 --- a/home/guest.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ config, pkgs, inputs, lib, ... }: - -{ - home.username = "guest"; - home.homeDirectory = "/home/guest"; - - imports = [ - ./minimal.nix - - ./firefox.nix - ./fish.nix - ./fonts.nix - ./foot.nix - ./gnome - ./nvim - ./tmux - ./user-dirs.nix - ]; - - home.packages = with pkgs; [ - ffmpeg - keepassxc - mpv - qbittorrent - vlc - wl-clipboard - yt-dlp - ]; - - services.syncthing.enable = true; - - programs.nix-index = { - enable = true; - enableFishIntegration = true; - }; - -} diff --git a/home/cli-office/khard-dump.nix b/home/khard-dump.nix similarity index 100% rename from home/cli-office/khard-dump.nix rename to home/khard-dump.nix diff --git a/home/librewolf.nix b/home/librewolf.nix deleted file mode 100644 index 3991dc1..0000000 --- a/home/librewolf.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.librewolf.enable = true; -} diff --git a/home/mail/default.nix b/home/mail/default.nix index 462f7df..fb014b2 100644 --- a/home/mail/default.nix +++ b/home/mail/default.nix @@ -129,7 +129,7 @@ mbsync.create = "maildir"; msmtp = { enable = true; - extraConfig.from = "*@t9e.me"; + extraConfig.from = "*@(ktiu.net|t9e.me)"; }; passwordCommand = "pass mail/arielle.ktiu.net"; }; @@ -177,8 +177,8 @@ mbsync.enable = true; mbsync.create = "maildir"; msmtp = { - enable = true; - extraConfig.from = "*@ktiu.net"; + enable = false; + # extraConfig.from = "*@ktiu.net"; }; passwordCommand = "secret-tool lookup server shorbut.ktiu.net account till"; }; diff --git a/home/media.nix b/home/media.nix new file mode 100644 index 0000000..46e02e6 --- /dev/null +++ b/home/media.nix @@ -0,0 +1,16 @@ +{ config, pkgs, inputs, lib, ... }: + +{ + home.packages = with pkgs; [ + castget + feh + ffmpeg + nicotine-plus + qbittorrent + vlc + yt-dlp + zathura + ]; + + xdg.configFile."castget/castget.conf".source = ./castget/castget.conf; +} diff --git a/home/messaging.nix b/home/messaging.nix new file mode 100644 index 0000000..e33d6b4 --- /dev/null +++ b/home/messaging.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + signal-desktop + telegram-desktop + simplex-chat-desktop + ]; +} diff --git a/home/minimal.nix b/home/minimal.nix index b23d755..eeb7f44 100644 --- a/home/minimal.nix +++ b/home/minimal.nix @@ -3,10 +3,14 @@ { programs.home-manager.enable = true; + home.homeDirectory = "/home/${config.home.username}"; + home.packages = with pkgs; [ dust + fastfetch fzf jq + nix-search progress rename silver-searcher @@ -32,18 +36,10 @@ programs.git = { enable = true; settings = { - user.name = "Till"; - user.email = "till@ktiu.net"; pull.rebase = true; - extraConfig = { - init = { - defaultBranch = "main"; - }; - }; - }; - lfs = { - enable = true; + extraConfig.init.defaultBranch = "main"; }; + lfs.enable = true; }; programs.bottom = { diff --git a/home/nvim/default.nix b/home/nvim/default.nix index 18dba09..41e068d 100644 --- a/home/nvim/default.nix +++ b/home/nvim/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { home.packages = with pkgs; [ @@ -12,6 +12,8 @@ enable = true; defaultEditor = true; + viAlias = true; + vimAlias = true; extraConfig = builtins.readFile ./config.vim; @@ -33,19 +35,22 @@ { plugin = fzf-vim; + type = "lua"; config = '' - nnoremap :Buffers - imap (fzf-complete-path) - nnoremap o :Files - nnoremap O :Files ~/ - nnoremap r :Read - nnoremap R :Read ~/ - nnoremap a :Ag - nnoremap b :Buffers - nnoremap . :Files ~/devel/omniflake/ - command! -nargs=? -complete=dir Read call fzf#run( - \fzf#wrap({'sink': 'read', 'dir': }) - \) + vim.api.nvim_set_keymap('n', '', ':Buffers', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('i', '', '(fzf-complete-path)', { silent = true }) + vim.api.nvim_set_keymap('n', 'o', ':Files', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', 'O', ':Files ~/', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', 'r', ':Read', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', 'R', ':Read ~/', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', 'a', ':Ag', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', 'A', ':Ag ~/', { noremap = true, silent = true }) + vim.api.nvim_set_keymap('n', '.', ':Files ~/devel/omniflake/', { noremap = true, silent = true }) + vim.api.nvim_create_user_command( + 'Read', + 'call fzf#run(fzf#wrap({\'sink\': \'read\', \'dir\': }))', + { nargs = '?', complete = 'dir' } + ) ''; } { @@ -80,8 +85,9 @@ typescript-vim { plugin = ultisnips; + type = "lua"; config = '' - nnoremap se :UltiSnipsEdit! + vim.api.nvim_set_keymap('n', 'se', ':UltiSnipsEdit!', { noremap = true, silent = true }) ''; } vifm-vim @@ -113,8 +119,6 @@ nmap s SlimeMotionSend nmap ss SlimeLineSend nnoremap s: :SlimeSend1 - " let g:slime_target = "neovim" - " autocmd TermOpen * let g:slime_default_config = {"jobid": &channel} ''; } vim-snippets @@ -123,12 +127,11 @@ vim-unimpaired ]; }; - xdg.configFile."nvim/autocommmands.vim".source = ./autocommands.vim; - xdg.configFile."nvim/ftplugin/markdown.vim".source = ./ftplugin/markdown.vim; - xdg.configFile."nvim/after/ftplugin/markdown.vim".source = ./after/ftplugin/markdown.vim; - xdg.configFile."nvim/ftplugin/r.vim".source = ./ftplugin/r.vim; - xdg.configFile."nvim/ftplugin/rmd.vim".source = ./ftplugin/rmd.vim; - xdg.configFile."nvim/ftplugin/tex.vim".source = ./ftplugin/tex.vim; - xdg.configFile."nvim/ftplugin/typescript.vim".source = ./ftplugin/typescript.vim; - xdg.configFile."nvim/syntax/rmd.vim".source = ./syntax/rmd.vim; + + xdg.configFile."nvim" = { + source = ./dotfiles; + recursive = true; + }; + + home.shellAliases.v = "nvim"; } diff --git a/home/nvim/after/ftplugin/markdown.vim b/home/nvim/dotfiles/after/ftplugin/markdown.vim similarity index 100% rename from home/nvim/after/ftplugin/markdown.vim rename to home/nvim/dotfiles/after/ftplugin/markdown.vim diff --git a/home/nvim/autocommands.vim b/home/nvim/dotfiles/autocommands.vim similarity index 100% rename from home/nvim/autocommands.vim rename to home/nvim/dotfiles/autocommands.vim diff --git a/home/nvim/ftplugin/markdown.vim b/home/nvim/dotfiles/ftplugin/markdown.vim similarity index 100% rename from home/nvim/ftplugin/markdown.vim rename to home/nvim/dotfiles/ftplugin/markdown.vim diff --git a/home/nvim/dotfiles/ftplugin/nix.vim b/home/nvim/dotfiles/ftplugin/nix.vim new file mode 100644 index 0000000..4f0eba3 --- /dev/null +++ b/home/nvim/dotfiles/ftplugin/nix.vim @@ -0,0 +1 @@ +setlocal makeprg=nixos-rebuild\ dry-build diff --git a/home/nvim/ftplugin/r.vim b/home/nvim/dotfiles/ftplugin/r.vim similarity index 100% rename from home/nvim/ftplugin/r.vim rename to home/nvim/dotfiles/ftplugin/r.vim diff --git a/home/nvim/ftplugin/rmd.vim b/home/nvim/dotfiles/ftplugin/rmd.vim similarity index 100% rename from home/nvim/ftplugin/rmd.vim rename to home/nvim/dotfiles/ftplugin/rmd.vim diff --git a/home/nvim/ftplugin/tex.vim b/home/nvim/dotfiles/ftplugin/tex.vim similarity index 100% rename from home/nvim/ftplugin/tex.vim rename to home/nvim/dotfiles/ftplugin/tex.vim diff --git a/home/nvim/ftplugin/typescript.vim b/home/nvim/dotfiles/ftplugin/typescript.vim similarity index 100% rename from home/nvim/ftplugin/typescript.vim rename to home/nvim/dotfiles/ftplugin/typescript.vim diff --git a/home/nvim/syntax/rmd.vim b/home/nvim/dotfiles/syntax/rmd.vim similarity index 100% rename from home/nvim/syntax/rmd.vim rename to home/nvim/dotfiles/syntax/rmd.vim diff --git a/home/nvim/ftplugin/nix.vim b/home/nvim/ftplugin/nix.vim deleted file mode 100644 index 3d77fc5..0000000 --- a/home/nvim/ftplugin/nix.vim +++ /dev/null @@ -1 +0,0 @@ -setlocal makeprg=sudo\ nixos-rebuild\ switch diff --git a/home/cli-office/default.nix b/home/office-cli.nix similarity index 95% rename from home/cli-office/default.nix rename to home/office-cli.nix index b3bdd2d..5baf102 100644 --- a/home/cli-office/default.nix +++ b/home/office-cli.nix @@ -4,13 +4,13 @@ imports = [ ./khard-dump.nix ./tasks.nix + ./calendars.nix ]; home.packages = with pkgs; [ bat castget ghostscript - glow hunspell hunspellDicts.de_DE hunspellDicts.en_US diff --git a/home/office-gui.nix b/home/office-gui.nix new file mode 100644 index 0000000..c40ec7c --- /dev/null +++ b/home/office-gui.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + chromium + eduvpn-client + gimp + gnome-solanum + inkscape + libreoffice + lorem + nyxt + pdfpc + poppler-utils + typst + xournalpp + zotero + ]; + + programs.obs-studio.enable = true; +} diff --git a/home/openconnect.nix b/home/openconnect.nix deleted file mode 100644 index 0fd5b5a..0000000 --- a/home/openconnect.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, pkgs, ... }: - -{ - home.packages = [ pkgs.openconnect ]; - xdg.configFile."openconnect/config".text = '' - server=vpn-einwahl.uni-frankfurt.de - user=tstraube - protocol=anyconnect - ''; -} diff --git a/home/ssh.nix b/home/ssh.nix index bb71569..735cd81 100644 --- a/home/ssh.nix +++ b/home/ssh.nix @@ -53,6 +53,12 @@ in identityFile = certs.personal; }; + "codeberg codeberg.org" = { + hostname = "codeberg.org"; + user = "git"; + identityFile = certs.personal; + }; + # "mila" = { # hostname = "mila"; # user = "till"; diff --git a/home/cli-office/tasks.nix b/home/tasks.nix similarity index 100% rename from home/cli-office/tasks.nix rename to home/tasks.nix diff --git a/home/users/alt.nix b/home/users/alt.nix new file mode 100644 index 0000000..4023137 --- /dev/null +++ b/home/users/alt.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + home.username = "alt"; + programs.git.settings.user = { + name = "Till"; + email = "till@ktiu.net"; + }; +} diff --git a/home/users/guest.nix b/home/users/guest.nix new file mode 100644 index 0000000..51ce1ed --- /dev/null +++ b/home/users/guest.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + home.username = "guest"; +} diff --git a/home/users/till.nix b/home/users/till.nix new file mode 100644 index 0000000..b14b24c --- /dev/null +++ b/home/users/till.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + home.username = "till"; + programs.git.settings.user = { + name = "Till"; + email = "till@ktiu.net"; + }; +} diff --git a/system/desktop/ergodox-udev.nix b/system/desktop/ergodox-udev.nix index 54a8db9..9d13662 100644 --- a/system/desktop/ergodox-udev.nix +++ b/system/desktop/ergodox-udev.nix @@ -1,6 +1,10 @@ -{ ... }: +{ pkgs, ... }: { + environment.systemPackages = with pkgs; [ + keymapp + ]; + services.udev.extraRules = '' KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="wheel" ''; diff --git a/system/desktop/yubikey-pam.nix b/system/desktop/yubikey-pam.nix index b7bc143..8ef8248 100644 --- a/system/desktop/yubikey-pam.nix +++ b/system/desktop/yubikey-pam.nix @@ -5,6 +5,7 @@ environment.systemPackages = with pkgs; [ yubikey-personalization + keymapp ]; services.udev = {