1 Commits

Author SHA1 Message Date
J. Fernando Sánchez
92d65a8ebc Add git config and several pkgs
I've added the config to symlink my dotfiles .git like I used to do with
stow.
2026-02-04 19:11:39 +01:00
10 changed files with 76 additions and 171 deletions

8
flake.lock generated
View File

@@ -22,16 +22,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1770136044,
"narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=",
"lastModified": 1756542300,
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e",
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}

View File

@@ -3,7 +3,7 @@
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -1,59 +0,0 @@
# This is the configuration file for Ghostty.
#
# This template file has been automatically created at the following
# path since Ghostty couldn't find any existing config files on your system:
#
# /home/j/.config/ghostty/config
#
# The template does not set any default options, since Ghostty ships
# with sensible defaults for all options. Users should only need to set
# options that they want to change from the default.
#
# Run `ghostty +show-config --default --docs` to view a list of
# all available config options and their default values.
#
# Additionally, each config option is also explained in detail
# on Ghostty's website, at https://ghostty.org/docs/config.
#
# Ghostty can reload the configuration while running by using the menu
# options or the bound key (default: Command + Shift + comma on macOS and
# Control + Shift + comma on other platforms). Not all config options can be
# reloaded while running; some only apply to new windows and others may require
# a full restart to take effect.
# Config syntax crash course
# ==========================
# # The config file consists of simple key-value pairs,
# # separated by equals signs.
font-family = Iosevka
# window-padding-x = 2
#
# # Spacing around the equals sign does not matter.
# # All of these are identical:
# key=value
# key= value
# key =value
# key = value
#
# # Any line beginning with a # is a comment. It's not possible to put
# # a comment after a config option, since it would be interpreted as a
# # part of the value. For example, this will have a value of "#123abc":
# background = black
#123abc
# theme = Dark Modern
# theme = Soft Server
# theme = Zenwritten Dark
# theme = Operator Mono Dark
# theme = Monokai Remastered
# theme = Solarized Dark Patched
theme = 3024 Night
#
# # Empty values are used to reset config keys to default.
# key =
#
# # Some config options have unique syntaxes for their value,
# # which is explained in the docs for that config option.
# # Just for example:
# resize-overlay-duration = 4s 200ms
keybind = ctrl+[=text:\x1b

View File

@@ -5,9 +5,8 @@
[core]
pager = delta
[delta]
side-by-side = true
[includeIf "gitdir:~/git/work/tcs/"]
path = tcs.config
[delta]
side-by-side = true

View File

@@ -1,14 +0,0 @@
theme = "github_dark"
[editor]
line-number = "relative"
mouse = false
auto-pairs = false
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false

View File

@@ -29,8 +29,7 @@
pkgs.nerd-fonts.fira-code
pkgs.nerd-fonts.monoid
#wezterm
ghostty
wezterm
# Editors
emacs
@@ -66,7 +65,6 @@
# Dev tools
git
lazygit
jujutsu
# Python
python3
@@ -125,7 +123,7 @@
XDG_BIN_HOME = "${config.home.homeDirectory}/.local/bin";
#This variable is overriden. It does not work
EDITOR = "hx";
#PAGER = "bat";
PAGER = "bat";
};
home.sessionPath = [ "$XDG_BIN_HOME" ];
@@ -148,12 +146,7 @@
home.shellAliases = {
lg = "lazygit";
gs = "git status";
j = "jj";
js = "jj status";
jt = "jj tug";
jf = "jj git fetch";
jl = "jj log";
gs = "git status";
};
programs.fish = {
@@ -175,16 +168,9 @@
};
#programs.neovim.enable = true;
#programs.neovim.defaultEditor = false;
#programs.helix.enable = true;
#programs.helix.defaultEditor = true;
programs.neovim.defaultEditor = true;
programs.zoxide = {
enable = true;
options = [
"--cmd z"
];
};
programs.zoxide.enable = true;
programs.bash = {
enable = true;
initExtra = ''
@@ -198,19 +184,10 @@
fonts.fontconfig.enable = true;
xdg.configFile = let
dotfiles = "${config.home.homeDirectory}/git/dotfiles";
createDotLink = name: {
source = config.lib.file.mkOutOfStoreSymlink "${dotfiles}/${name}/.config/${name}";
recursive = true;
};
in {
"git" = createDotLink "git";
"niri" = createDotLink "niri";
"jj" = createDotLink "jj";
"helix" = createDotLink "helix";
"ghostty" = createDotLink "ghostty";
xdg.configFile = {
"git" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/git/dotfiles/git/.config/git";
recursive = true;
};
};
}

View File

@@ -1,14 +1,13 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
jujutsu
ansible
awscli2
cargo-cross
rustup
rustc
gcc
python3Packages.jedi-language-server
ruff
vial
chromium
];

View File

@@ -1,4 +1,13 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [ ];
programs.git = {
enable = true;
userName = "J. Fernando Sánchez";
userEmail = "balkian@gmail.com";
extraConfig = {
init.defaultBranch = "main";
};
};
}

View File

@@ -2,26 +2,17 @@
[user]
name = "J. Fernando Sánchez"
email = "j@sanchezrada.es"
[[--scope]]
--when.repositories = ["~/git/work/tcs"]
[--scope.user]
name = "J. Fernando Sánchez"
email = "f.sanchez@thechannelstore.tv"
[aliases]
tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"]
l = ["log"]
s = ["status"]
f = ["git", "fetch"]
p = ["git", "push"]
[[--scope]]
--when.repositories = ["~/git/personal/"]
[--scope.user]
email = "j@sanchezrada.es"
[ui]
pager = "delta" #":builtin"
diff-formatter=":git"
paginate = "auto"
default-command = ["log", "--reversed"]
[merge-tools.delta]
diff-args=["--color-only", "--side-by-side", "$left", "$right", "--width=$width"]
diff-args=["--side-by-side", "$left", "$right", "--width=$width"]

View File

@@ -148,7 +148,7 @@ output "DP-1" {
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
layout {
// Set gaps around windows in logical pixels.
gaps 0
gaps 5
// When to center a column when changing focus, options are:
// - "never", default behavior, focusing an off-screen column will keep at the left
@@ -295,10 +295,10 @@ layout {
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
// layer-shell panels and regular gaps.
struts {
left 2
right 2
top 2
bottom 2
left 5
right 5
top 5
bottom 5
}
}
@@ -314,9 +314,13 @@ workspace "teams" {
open-on-output "eDP-1"
}
workspace "notes" {
open-on-output "eDP-1"
}
workspace "3" {}
workspace "4" {}
workspace "5" {}
workspace "6" {}
workspace "7" {}
workspace "8" {}
workspace "9" {}
// Add lines like this to spawn processes at startup.
// Note that running niri as a session supports xdg-desktop-autostart,
@@ -351,7 +355,7 @@ animations {
// off
// Slow down all animations by this factor. Values below 1 speed them up instead.
slowdown 0.75
slowdown 0.5
}
// Window rules let you adjust behavior for individual windows.
@@ -374,14 +378,12 @@ window-rule {
// - host Firefox (app-id is "firefox")
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
default-column-width {}
open-floating true
}
window-rule {
match app-id="firefox" title=r#".*Bitwarden.*"#
match app-id=r#"firefox$"# title="Bitwarden"
open-floating true
block-out-from "screen-capture"
}
// Example: block out two password managers from screen capture.
@@ -424,7 +426,7 @@ binds {
Mod+Shift+Slash { show-hotkey-overlay; }
// Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+return hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; }
Mod+return hotkey-overlay-title="Open a Terminal: wezterm" { spawn "wezterm"; }
Mod+space hotkey-overlay-title="Run an Application: wofi" { spawn "sh" "-c" "wofi --show dmenu,drun"; }
Mod+Delete hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyprlock"; }
@@ -457,15 +459,10 @@ binds {
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
//Mod+Alt+H { move-window-left; }
Mod+Alt+J { move-window-down; }
//Mod+Alt+L { move-window-right; }
Mod+Alt+K { move-window-up; }
Mod+Ctrl+H { move-column-left-or-to-monitor-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+L { move-column-right-or-to-monitor-right; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
@@ -482,23 +479,30 @@ binds {
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { focus-monitor-right; }
Ctrl+Alt+H { move-workspace-to-monitor-left; }
Ctrl+Alt+J { move-workspace-to-monitor-down; }
Ctrl+Alt+K { move-workspace-to-monitor-up; }
Ctrl+Alt+L { move-workspace-to-monitor-right; }
Mod+Alt+H { move-column-to-monitor-left; }
Mod+Alt+J { move-column-to-monitor-down; }
Mod+Alt+K { move-column-to-monitor-up; }
Mod+Alt+L { move-column-to-monitor-right; }
// Alternatively, there are commands to move just a single window:
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
// ...
// And you can also move a whole workspace to another monitor:
Ctrl+Alt+H { move-workspace-to-monitor-left; }
Ctrl+Alt+L { move-workspace-to-monitor-right; }
Ctrl+Alt+J { move-workspace-to-monitor-down; }
Ctrl+Alt+K { move-workspace-to-monitor-up; }
Mod+Ctrl+Shift+H { move-workspace-to-monitor-left; }
Mod+Ctrl+Shift+L { move-workspace-to-monitor-right; }
Mod+Ctrl+Shift+J { move-workspace-to-monitor-down; }
Mod+Ctrl+Shift+K { move-workspace-to-monitor-up; }
// ...
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+D { focus-workspace-down; }
Mod+U { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
@@ -555,24 +559,24 @@ binds {
// will all refer to the 3rd workspace.
Mod+1 { focus-workspace "terminal"; }
Mod+2 { focus-workspace "firefox"; }
Mod+3 { focus-workspace "notes"; }
//Mod+4 { focus-workspace 4; }
//Mod+5 { focus-workspace "5"; }
//Mod+6 { focus-workspace "6"; }
//Mod+7 { focus-workspace "7"; }
//Mod+8 { focus-workspace "8"; }
//Mod+9 { focus-workspace "9"; }
Mod+3 { focus-workspace "3"; }
Mod+4 { focus-workspace "4"; }
Mod+5 { focus-workspace "5"; }
Mod+6 { focus-workspace "6"; }
Mod+7 { focus-workspace "7"; }
Mod+8 { focus-workspace "8"; }
Mod+9 { focus-workspace "9"; }
Mod+grave { focus-workspace "teams"; }
Mod+0 { focus-workspace "teams"; }
Mod+Ctrl+1 { move-column-to-workspace "terminal"; }
Mod+Ctrl+2 { move-column-to-workspace "firefox"; }
Mod+Ctrl+3 { move-column-to-workspace "notes"; }
//Mod+Ctrl+4 { move-column-to-workspace "4"; }
//Mod+Ctrl+5 { move-column-to-workspace "5"; }
//Mod+Ctrl+6 { move-column-to-workspace "6"; }
//Mod+Ctrl+7 { move-column-to-workspace "7"; }
//Mod+Ctrl+8 { move-column-to-workspace "8"; }
//Mod+Ctrl+9 { move-column-to-workspace "9"; }
Mod+Ctrl+3 { move-column-to-workspace "3"; }
Mod+Ctrl+4 { move-column-to-workspace "4"; }
Mod+Ctrl+5 { move-column-to-workspace "5"; }
Mod+Ctrl+6 { move-column-to-workspace "6"; }
Mod+Ctrl+7 { move-column-to-workspace "7"; }
Mod+Ctrl+8 { move-column-to-workspace "8"; }
Mod+Ctrl+9 { move-column-to-workspace "9"; }
Mod+Ctrl+0 { move-column-to-workspace "teams"; }
// Alternatively, there are commands to move just a single window:
@@ -596,7 +600,6 @@ binds {
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+G { maximize-window-to-edges; }
Mod+Shift+F { fullscreen-window; }
// Expand the focused column to space not taken up by other fully visible columns.