initial commit. working config

This commit is contained in:
mir 2024-03-19 13:35:09 -08:00
commit 9aedd27579
3 changed files with 269 additions and 0 deletions

49
flake.lock Normal file
View File

@ -0,0 +1,49 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1706981411,
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1701282334,
"narHash": "sha256-MxCVrXY6v4QmfTwIysjjaX0XUhqBbxTWWB4HXtDYsdk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "057f9aecfb71c4437d2b27d3323df7f93c010b7e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

30
flake.nix Normal file
View File

@ -0,0 +1,30 @@
# copied from https://www.chrisportela.com/posts/home-manager-flake/
{
description = "My Home Manager Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/23.11";
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ nixpkgs, home-manager, ...}: {
# For `nix run .` later
defaultPackage.x86_64-linux = home-manager.defaultPackage.x86_64-linux;
defaultPackage.aarch64-linux = home-manager.defaultPackage.aarch64-linux;
homeConfigurations = {
"mir" =
# let
# specialArgs = { inherit inputs; };
# in
home-manager.lib.homeManagerConfiguration {
# Note: I am sure this could be done better with flake-utils or something
pkgs = import nixpkgs { system = "aarch64-linux"; };
modules = [ ./home.nix ]; # Defined later
};
};
};
}

190
home.nix Normal file
View File

@ -0,0 +1,190 @@
# { lib, config, pkgs, inputs, ... }:
{ lib, config, pkgs, ... }:
with lib.hm.gvariant;
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "mir";
home.homeDirectory = "/home/mir";
home.packages = [
pkgs.btop
pkgs.firefox
pkgs.killall
pkgs.gdb
pkgs.neofetch
pkgs.file
pkgs.findutils
pkgs.wget
pkgs.yt-dlp
pkgs.mpv
pkgs.fzf
pkgs.nerdfonts
pkgs.eza
# pkgs.gnupg
# pkgs.python3
# (pkgs.python3.withPackages(
# ps: with ps; [
# epc sexpdata six pynput inflect
# pyqt6
# # pyqt6-qt6
# pyqt6-sip]))
# (pkgs.emacsWithPackagesFromUsePackage {
# package = pkgs.emacs29-pgtk;
# config = ~/.emacs.d/init.el;
# extraEmacsPackages = epkgs: [
# epkgs.dash;
# ]
# })
# pkgs.fetchFromGitHub
];
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.05";
# nix = {
# package = pkgs.nix;
# settings.experimental-features = [ "nix-command" "flakes" ];
# };
# Let Home Manager install and manage itself.
programs.home-manager = {
enable = true;
# version = "23.11";
};
# environment.variables = rec {
# EDITOR = "emacs -nw";
# };
home.sessionVariables = {
EDITOR = "emacs";
TERMINAL = "kitty";
TERM_PROGRAM = "kitty";
BROWSER = "firefox";
};
programs.kitty = {
enable = true;
};
# environment.systemPackages = with pkgs; [
# (python3.withPackages(
# ps: with ps; [epc sexpdata six pynput inflect PyQt6 PyQt6-Qt6 PyQt6-sip]))
# ];
fonts.fontconfig.enable = true;
programs.git = {
enable = true;
package = pkgs.gitFull;
userName = "mir";
userEmail = "mirmarq428@gmail.com";
extraConfig = {
credential.helper = "store";
init.defaultBranch = "main";
};
};
programs.firefox = {
enable = true;
};
programs.bash = {
enable = true;
initExtra = ''
export EDITOR=emacs\ -nw
'';
};
# programs.gdb = {
# enable = true;
# };
# home.file.".emacs.d" = {
# source = inputs.emacs-config;
# recursive = true;
# };
home.file.".face".source = builtins.fetchurl {
url = "https://marq42.xyz/rena.webp";
sha256 = "10x3qvfdp79fmbbi7ljnqx419xmwpiyyr4pfxhynh3xq7fd0laz2";
};
# programs.dconf.enable = true;
home.file.".local/share/backgrounds/mojave.jpg".source = builtins.fetchurl {
url = "https://www.teahub.io/photos/full/154-1542362_mac-os-mojave-screenshot.jpg";
sha256 = "0vrcn44aibdsl1hc6n0jbp0znpwhcb4hyhbzs5690i1nrapcmyka";
};
dconf.settings = {
"org/gnome/shell" = {
"favorite-apps" = [
"org.gnome.Console.desktop"
"firefox.desktop"
"emacs.desktop"
"org.gnome.Settings.desktop"
"org.gnome.Nautilus.desktop"
"btop.desktop"
];
};
"org/gnome/desktop/interface" = {
"color-scheme" = "prefer-dark";
};
"org/gnome/mutter" = {
"edge-tiling" = true;
};
"org/gnome/desktop/background" = {
"picture-uri" = "file:///home/mir/.local/share/backgrounds/mojave.jpg";
"picture-uri-dark" = "file:///home/mir/.local/share/backgrounds/mojave.jpg";
};
"org/gnome/desktop/screensaver" = {
"picture-uri" = "file:///home/mir/.local/share/backgrounds/mojave.jpg";
"picture-uri-dark" = "file:///home/mir/.local/share/backgrounds/mojave.jpg";
};
"org/gnome/desktop/input-sources" = {
"xkb-options" = [ "caps:escape" ];
};
"org/gnome/desktop/wm/preferences" = {
"focus-mode" = "sloppy";
};
"org/gnome/settings-daemon/plugins/power" = {
"idle-dim" = false;
"sleep-inactive-ac-type" = "nothing";
};
"org/gnome/gnome-system-monitor" = {
"current-tab" = "resources";
};
"org/gnome/desktop/interface" = {
"show-battery-percentage" = true;
};
"org/gnome/desktop/session" = {
"idle-delay" = mkUint32 0;
};
};
programs.hyfetch = {
enable = true;
settings = {
preset = "genderfluid";
mode = "rgb";
color_align = {
mode = "horizontal";
};
backend = "neofetch";
};
};
programs.gpg = {
enable = true;
# package = pkgs.gnupg.overrideAttrs (orig: {
# version = "2.4.0";
# src = pkgs.fetchurl {
# url = "mirror://gnupg/gnupg/gnupg-2.4.0.tar.bz2";
# hash = "sha256-HXkVjdAdmSQx3S4/rLif2slxJ/iXhOosthDGAPsMFIM=";
# };
# });
# agent = {
# pinentryFlavor = "gnome3";
# };
};
services.gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
};
}