diff options
-rw-r--r-- | home.nix | 19 | ||||
-rw-r--r-- | platforms/darwin/default.nix | 1 | ||||
-rw-r--r-- | platforms/linux/default.nix | 13 | ||||
-rw-r--r-- | platforms/linux/gtk.nix | 28 | ||||
-rw-r--r-- | platforms/linux/user-dirs.nix | 13 | ||||
-rw-r--r-- | platforms/linux/xorg.nix | 38 | ||||
-rw-r--r-- | programs/aliases.nix | 16 | ||||
-rw-r--r-- | programs/zsh/default.nix | 63 | ||||
-rw-r--r-- | programs/zsh/precomp.zshrc | 8 |
9 files changed, 198 insertions, 1 deletions
diff --git a/home.nix b/home.nix index 9e75f36..00f035a 100644 --- a/home.nix +++ b/home.nix @@ -1,6 +1,9 @@ { config, pkgs, ... }: let pnvim = import ./programs/nvim.nix pkgs; + isDarwin = builtins.currentSystem == "x86_64-darwin"; + platformSetup = + if isDarwin then ./platforms/darwin else ./platforms/linux; in { # Let Home Manager install and manage itself. @@ -9,16 +12,30 @@ in # Home Manager needs a bit of information about you and the # paths it should manage. home.username = "pn"; - home.homeDirectory = "/Users/pn"; + home.homeDirectory = + if isDarwin then "/Users/pn" else "/home/pn"; imports = [ + # Platform specific config + platformSetup + ./programs/zsh ./programs/git.nix ]; home.packages = with pkgs; [ + # Basic gnupg pnvim nur.repos.pn.larbs-mail + + # Misc + spotifyd + spotify-tui + # gimp + slack-dark + pandoc + texlive.combined.scheme-basic + zathura ]; # This value determines the Home Manager release that your diff --git a/platforms/darwin/default.nix b/platforms/darwin/default.nix new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/platforms/darwin/default.nix @@ -0,0 +1 @@ +{} diff --git a/platforms/linux/default.nix b/platforms/linux/default.nix new file mode 100644 index 0000000..281f8c2 --- /dev/null +++ b/platforms/linux/default.nix @@ -0,0 +1,13 @@ +{ + imports = [ + ./user-dirs.nix + ./gtk.nix + ./xorg.nix + ]; + + home.packages = [ + spotify + discord + python37Packages.pywal + ]; +} diff --git a/platforms/linux/gtk.nix b/platforms/linux/gtk.nix new file mode 100644 index 0000000..c16725b --- /dev/null +++ b/platforms/linux/gtk.nix @@ -0,0 +1,28 @@ +pkgs: +{ + home.packages = with pkgs; [ + capitaine-cursors + papirus-icon-theme + hicolor-icon-theme + ]; + + gtk = { + enable = true; + theme.name = "gruvbox-dark-hard"; + iconTheme.name = "Papirus"; + font.name = "Noto Sans 10"; + gtk3.extraConfig = { + gtk-cursor-theme-name = "capitaine-cursors"; + gtk-application-prefer-dark-theme=true; + }; + gtk3.extraCss = '' + window decoration { + margin: 0; + border: none; + } + ''; + gtk2.extraConfig = '' + gtk-cursor-theme-name="capitaine-cursors" + ''; + }; +} diff --git a/platforms/linux/user-dirs.nix b/platforms/linux/user-dirs.nix new file mode 100644 index 0000000..4b2390a --- /dev/null +++ b/platforms/linux/user-dirs.nix @@ -0,0 +1,13 @@ +{ + xdg.userDirs = { + enable = true; + desktop = "$HOME/"; + documents = "$HOME/docs"; + download = "$HOME/down"; + publicShare = "$HOME/public"; + music = "$HOME/music"; + pictures = "$HOME/pics"; + videos = "$HOME/vids"; + templates = "$HOME/"; + }; +} diff --git a/platforms/linux/xorg.nix b/platforms/linux/xorg.nix new file mode 100644 index 0000000..c8e9222 --- /dev/null +++ b/platforms/linux/xorg.nix @@ -0,0 +1,38 @@ +pkgs: +{ + home.packages = with pkgs; [ + nur.repos.pn.pndwm + mpd + xcompmgr + picom + dunst + unclutter + nur.repos.pn.dockd + ]; + + xsession = { + enable = true; + windowManager.command = "dbus-run-session -- dwm"; + profileExtra = '' + # Fix Gnome Apps Slow Start due to failing services + # Add this when you include flatpak in your system + dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY + + mpd & # music player daemon-you might prefer it as a service though + remaps & # run the remaps script, switching caps/esc and more; check it for more info + setbg & # set the background with the `setbg` script + #xrdb $\{XDG_CONFIG_HOME:-$HOME/.config}/Xresources & # Uncomment to use Xresources colors/settings on startup + picom & + dunst & # dunst for notifications + xset r rate 300 50 & # Speed xrate up + unclutter & # Remove mouse when idle + #sxhkd & + dockd --daemon & + screen-orient & + for app in `ls ~/.config/autostart/*.desktop`; do + $(grep '^Exec' $app | sed 's/^Exec=//') & + done + ''; + scriptPath = ".xinitrc"; + }; +} diff --git a/programs/aliases.nix b/programs/aliases.nix new file mode 100644 index 0000000..d947226 --- /dev/null +++ b/programs/aliases.nix @@ -0,0 +1,16 @@ +{ + cp = "cp -iv"; + mv = "mv -iv"; + rm = "rm -iv"; + mkd = "mkdir -pv"; + yt = "youtube-dl --add-metadata -i"; + yta = "yt -x -f bestaudio/best"; + ffmpeg = "ffmpeg -hide_banner"; + + # Git aliases + gs = "git status"; + ga = "git add"; + gc = "git commit"; + gl = "git lg"; + gd = "git diff"; +} diff --git a/programs/zsh/default.nix b/programs/zsh/default.nix new file mode 100644 index 0000000..942af70 --- /dev/null +++ b/programs/zsh/default.nix @@ -0,0 +1,63 @@ +pkgs: +{ + programs.zsh = { + enable = true; + enableCompletion = true; + enableAutosuggestions = true; + autocd = true; + dotDir = ".config/zsh"; + history = { + path = "$HOME/.cache/zsh/history"; + size = 10000; + save = 10000; + }; + shellAliases = import ../aliases.nix; + defaultKeymap = "viins"; + initExtraBeforeCompInit = builtins.readFile ./precomp.zshrc; + initExtra = '' + _comp_options+=(globdots) + ''; + + # plugins = [ + # { + # name = "zsh-autosuggestions"; + # src = pkgs.fetchFromGitHub { + # owner = "zsh-users"; + # repo = "zsh-autosuggestions"; + # rev = "v0.6.3"; + # sha256 = "1h8h2mz9wpjpymgl2p7pc146c1jgb3dggpvzwm9ln3in336wl95c"; + # }; + # } + # { + # name = "zsh-syntax-highlighting"; + # src = pkgs.fetchFromGitHub { + # owner = "zsh-users"; + # repo = "zsh-syntax-highlighting"; + # rev = "be3882aeb054d01f6667facc31522e82f00b5e94"; + # sha256 = "0w8x5ilpwx90s2s2y56vbzq92ircmrf0l5x8hz4g1nx3qzawv6af"; + # }; + # } + # ]; + + sessionVariables = rec { + PROMPT="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "; + NVIM_TUI_ENABLE_TRUE_COLOR = "1"; + + ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=3"; + DEV_ALLOW_ITERM2_INTEGRATION = "1"; + + EDITOR = "vim"; + VISUAL = EDITOR; + GIT_EDITOR = EDITOR; + + GOPATH = "$HOME"; + + PATH = "$HOME/.emacs.d/bin:$HOME/bin:$PATH"; + }; + # envExtra + # profileExtra + # loginExtra + # logoutExtra + # localVariables + }; +} diff --git a/programs/zsh/precomp.zshrc b/programs/zsh/precomp.zshrc new file mode 100644 index 0000000..776d218 --- /dev/null +++ b/programs/zsh/precomp.zshrc @@ -0,0 +1,8 @@ +. ~/.nix-profile/etc/profile.d/nix.sh +export NIX_PATH=$HOME/.nix-defexpr/channels${NIX_PATH:+:}$NIX_PATH +stty stop undef +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shortcutrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/aliasrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/zshnameddirrc" +zstyle ':completion:*' menu select +zmodload zsh/complist |