diff --git a/nixos/users/tdpeuter/default.nix b/nixos/users/tdpeuter/default.nix index 9be9195..f406f49 100644 --- a/nixos/users/tdpeuter/default.nix +++ b/nixos/users/tdpeuter/default.nix @@ -57,12 +57,18 @@ in { inherit (config.system) stateVersion; packages = (with pkgs; [ - chafa # Terminal image viewer cmdtime # Zsh plugin + icosystem # Personal icon theme + spotify-adblock + ]) ++ (with pkgs-unstable; [ + # logseq + # obsidian + + brave + chafa # Terminal image viewer duf # Df alternative fzf glow # Terminal Markdown renderer - icosystem # Personal icon theme jellyfin-media-player kitty libreoffice-fresh @@ -83,15 +89,10 @@ in { # SMB cifs-utils psmisc - ]) ++ (with pkgs-unstable; [ - brave - mpv - spotify - ]) ++ (with pkgs-unstable.vimPlugins; [ - # ale - statix - # vim-plug - vifm-vim + + # Linters and LSPs + statix # Nix + ruff pylint # Python ]); pointerCursor = { diff --git a/nixos/users/tdpeuter/dotfiles.nix b/nixos/users/tdpeuter/dotfiles.nix index fa81113..d1d1dc5 100644 --- a/nixos/users/tdpeuter/dotfiles.nix +++ b/nixos/users/tdpeuter/dotfiles.nix @@ -9,7 +9,7 @@ in { home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable { home = { file = { - ".config/alacritty" = lib.mkIf (builtins.elem pkgs.alacritty installedPkgs) { + ".config/alacritty" = { source = ../../../stow/alacritty/.config/alacritty; }; ".config/dunst" = { @@ -17,26 +17,21 @@ in { source = ../../../stow/dunst/.config/dunst; }; ".config/fuzzel" = { - enable = builtins.elem pkgs.fuzzel installedPkgs; source = ../../../stow/fuzzel/.config/fuzzel; recursive = true; }; ".config/git" = { - enable = (builtins.elem pkgs.git installedPkgs); source = ../../../stow/git/.config/git; recursive = true; }; ".config/kitty" = { - enable = builtins.elem pkgs.kitty installedPkgs; source = ../../../stow/kitty/.config/kitty; recursive = true; }; ".config/mako" = { - enable = builtins.elem pkgs.mako installedPkgs; source = ../../../stow/mako/.config/mako; }; ".config/mpv" = { - enable = (builtins.elem pkgs-unstable.mpv installedPkgs); source = ../../../stow/mpv/.config/mpv; }; ".config/OpenRGB" = { @@ -49,7 +44,7 @@ in { source = ../../../stow/sway/.config/sway; }; ".config/swayidle" = { - enable = (builtins.elem pkgs.swayidle installedPkgs); + enable = config.sisyphus.desktop.sway.enable; source = ../../../stow/swayidle/.config/swayidle; }; ".config/swaylock" = { @@ -57,7 +52,6 @@ in { source = ../../../stow/swaylock/.config/swaylock; }; ".config/vifm" = { - enable = (builtins.elem pkgs.vifm installedPkgs); source = ../../../stow/vifm/.config/vifm; recursive = true; # Fix history and all working }; @@ -66,32 +60,28 @@ in { source = ../../../stow/waybar/.config/waybar; }; ".config/zellij" = { - enable = (builtins.elem pkgs.zellij installedPkgs); source = ../../../stow/zellij/.config/zellij; }; ".oh-my-zsh" = { - enable = true; + enable = (config.users.users.tdpeuter.shell == pkgs.zsh); source = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; recursive = true; }; ".oh-my-zsh/themes/tdpeuter.zsh-theme" = { - enable = (builtins.elem pkgs.zsh installedPkgs); + enable = (config.users.users.tdpeuter.shell == pkgs.zsh); source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme; }; ".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable { source = ../../../stow/ssh/.ssh/config; }; ".vim" = { - enable = (builtins.elem pkgs.vim-full installedPkgs); source = ../../../stow/vim/.vim; recursive = true; }; ".vim/autoload/plug.vim" = { - enable = (builtins.elem pkgs.vim-full installedPkgs); source = "${pkgs.vimPlugins.vim-plug}/plug.vim"; }; ".vimrc" = { - enable = (builtins.elem pkgs.vim-full installedPkgs); source = ../../../stow/vim/.vimrc; }; ".zshrc" = { @@ -99,15 +89,15 @@ in { source = ../../../stow/zsh/.zshrc; }; ".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = { - enable = (builtins.elem pkgs.cmdtime installedPkgs); + enable = (config.users.users.tdpeuter.shell == pkgs.zsh); source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh"; }; ".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = { - enable = (builtins.elem pkgs.zsh-autosuggestions installedPkgs); + enable = (config.users.users.tdpeuter.shell == pkgs.zsh); source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"; }; ".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = { - enable = (builtins.elem pkgs.zsh-syntax-highlighting installedPkgs); + enable = (config.users.users.tdpeuter.shell == pkgs.zsh); source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"; }; }; diff --git a/stow/vim/.vim/source/python b/stow/vim/.vim/source/python new file mode 100644 index 0000000..fc00b9e --- /dev/null +++ b/stow/vim/.vim/source/python @@ -0,0 +1,87 @@ +" vimrc file for following the coding standards specified in PEP 7 & 8. +" +" To use this file, source it in your own personal .vimrc file (``source +" ``) or, if you don't have a .vimrc file, you can just symlink to it +" (``ln -s ~/.vimrc``). All options are protected by autocmds +" (read below for an explanation of the command) so blind sourcing of this file +" is safe and will not affect your settings for non-Python or non-C files. +" +" +" All setting are protected by 'au' ('autocmd') statements. Only files ending +" in .py or .pyw will trigger the Python settings while files ending in *.c or +" *.h will trigger the C settings. This makes the file "safe" in terms of only +" adjusting settings for Python and C files. +" +" Only basic settings needed to enforce the style guidelines are set. +" Some suggested options are listed but commented out at the end of this file. + +" Number of spaces that a pre-existing tab is equal to. +" For the amount of space used for a new tab use shiftwidth. +au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8 + +" What to use for an indent. +" This will affect Ctrl-T and 'autoindent'. +" Python: 4 spaces +" C: tabs (pre-existing files) or 4 spaces (new files) +au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 +au BufRead,BufNewFile *.py,*.pyw set expandtab +fu Select_c_style() + if search('^\t', 'n', 150) + set shiftwidth=8 + set noexpandtab + el + set shiftwidth=4 + set expandtab + en +endf +au BufRead,BufNewFile *.c,*.h call Select_c_style() +au BufRead,BufNewFile Makefile* set noexpandtab + +" Use the below highlight group when displaying bad whitespace is desired. +highlight BadWhitespace ctermbg=red guibg=red + +" Display tabs at the beginning of a line in Python mode as bad. +au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/ +" Make trailing whitespace be flagged as bad. +au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ + +" Wrap text after a certain number of characters +" Python: 79 +" C: 79 +au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79 + +" Turn off settings in 'formatoptions' relating to comment formatting. +" - c : do not automatically insert the comment leader when wrapping based on +" 'textwidth' +" - o : do not insert the comment leader when using 'o' or 'O' from command mode +" - r : do not insert the comment leader when hitting in insert mode +" Python: not needed +" C: prevents insertion of '*' at the beginning of every line in a comment +au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r + +" Use UNIX (\n) line endings. +" Only used for new files so as to not force existing files to change their +" line endings. +" Python: yes +" C: yes +au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix + + +" ---------------------------------------------------------------------------- +" The following section contains suggested settings. While in no way required +" to meet coding standards, they are helpful. + +" Set the default file encoding to UTF-8: ``set encoding=utf-8`` + +" Puts a marker at the beginning of the file to differentiate between UTF and +" UCS encoding (WARNING: can trick shells into thinking a text file is actually +" a binary file when executing the text file): ``set bomb`` + +" For full syntax highlighting: +"``let python_highlight_all=1`` +"``syntax on`` + +" Automatically indent based on file type: ``filetype indent on`` +" Keep indentation level from previous line: ``set autoindent`` + +" Folding based on indentation: ``set foldmethod=indent`` diff --git a/stow/vim/.vimrc b/stow/vim/.vimrc index 44b7aab..5995924 100644 --- a/stow/vim/.vimrc +++ b/stow/vim/.vimrc @@ -3,6 +3,7 @@ " source ~/.vim/theme.conf +source ~/.vim/source/python set autoindent set conceallevel=2 @@ -12,6 +13,7 @@ set linebreak set mouse=a set nocompatible set number +set omnifunc=ale#completion#OmniFunc set path+=** set relativenumber set scrolloff=3 @@ -73,10 +75,12 @@ endif call plug#begin('~/.vim/plugins') -Plug 'dense-analysis/ale' -Plug 'vifm/vifm.vim' Plug 'catppuccin/vim', { 'as': 'catppuccin' } +Plug 'dense-analysis/ale' Plug 'NerdyPepper/statix' +Plug 'prabirshrestha/vim-lsp' +Plug 'sheerun/vim-polyglot' +Plug 'vifm/vifm.vim' call plug#end()