Compare commits

...

4 Commits

Author SHA1 Message Date
J. Fernando Sánchez
1522c8d6a0 Add helix and LSP for python 2026-02-09 14:25:17 +01:00
J. Fernando Sánchez
f0bda1964e Update niri 2026-02-09 14:25:14 +01:00
J. Fernando Sánchez
80d1ed1528 Improve git config 2026-02-09 14:24:20 +01:00
J. Fernando Sánchez
2d074e0b09 Move to nixpkgs 25.10 2026-02-09 14:22:44 +01:00
8 changed files with 76 additions and 57 deletions

8
flake.lock generated
View File

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

View File

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

View File

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

View File

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

View File

@@ -65,6 +65,7 @@
# Dev tools # Dev tools
git git
lazygit lazygit
jujutsu
# Python # Python
python3 python3
@@ -123,7 +124,7 @@
XDG_BIN_HOME = "${config.home.homeDirectory}/.local/bin"; XDG_BIN_HOME = "${config.home.homeDirectory}/.local/bin";
#This variable is overriden. It does not work #This variable is overriden. It does not work
EDITOR = "hx"; EDITOR = "hx";
PAGER = "bat"; #PAGER = "bat";
}; };
home.sessionPath = [ "$XDG_BIN_HOME" ]; home.sessionPath = [ "$XDG_BIN_HOME" ];
@@ -168,7 +169,9 @@
}; };
#programs.neovim.enable = true; #programs.neovim.enable = true;
programs.neovim.defaultEditor = true; #programs.neovim.defaultEditor = false;
#programs.helix.enable = true;
#programs.helix.defaultEditor = true;
programs.zoxide.enable = true; programs.zoxide.enable = true;
programs.bash = { programs.bash = {
@@ -187,7 +190,7 @@
xdg.configFile = let xdg.configFile = let
dotfiles = "${config.home.homeDirectory}/git/dotfiles"; dotfiles = "${config.home.homeDirectory}/git/dotfiles";
createDotlink = name: { createDotLink = name: {
source = config.lib.file.mkOutOfStoreSymlink "${dotfiles}/${name}/.config/${name}"; source = config.lib.file.mkOutOfStoreSymlink "${dotfiles}/${name}/.config/${name}";
recursive = true; recursive = true;
}; };
@@ -196,5 +199,6 @@
"git" = createDotLink "git"; "git" = createDotLink "git";
"niri" = createDotLink "niri"; "niri" = createDotLink "niri";
"jj" = createDotLink "jj"; "jj" = createDotLink "jj";
"helix" = createDotLink "helix";
}; };
} }

View File

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

View File

@@ -2,16 +2,19 @@
[user] [user]
name = "J. Fernando Sánchez" name = "J. Fernando Sánchez"
email = "f.sanchez@thechannelstore.tv" email = "j@sanchezrada.es"
[[--scope]] [[--scope]]
--when.repositories = ["~/git/personal/"] --when.repositories = ["~/git/work/tcs"]
[--scope.user] [--scope.user]
email = "j@sanchezrada.es" name = "J. Fernando Sánchez"
email = "f.sanchez@thechannelstore.tv"
[ui] [ui]
pager = "delta" #":builtin" pager = "delta" #":builtin"
diff-formatter=":git" diff-formatter=":git"
paginate = "auto"
[merge-tools.delta] [merge-tools.delta]
diff-args=["--side-by-side", "$left", "$right", "--width=$width"] diff-args=["--color-only", "--side-by-side", "$left", "$right", "--width=$width"]

View File

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