about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--home.nix19
-rw-r--r--platforms/darwin/default.nix1
-rw-r--r--platforms/linux/default.nix13
-rw-r--r--platforms/linux/gtk.nix28
-rw-r--r--platforms/linux/user-dirs.nix13
-rw-r--r--platforms/linux/xorg.nix38
-rw-r--r--programs/aliases.nix16
-rw-r--r--programs/zsh/default.nix63
-rw-r--r--programs/zsh/precomp.zshrc8
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