tangled
alpha
login
or
join now
adjoly.fr
/
nixos-config
0
fork
atom
❄️ My personnal NixOS configuration
nix-flake
nixos-configuration
linux
dotfiles
flake
nix
nix-config
nixos
nixos-flake
linux-desktop
0
fork
atom
overview
issues
pulls
2
pipelines
「♻️」 refactor: changed ssh config to modules
adjoly.fr
9 months ago
5742c230
c8d3ebcd
+237
-205
26 changed files
expand all
collapse all
unified
split
home
adjoly
cli-app.nix
home-desktop.nix
programs
btop.nix
direnv.nix
fastfetch.nix
neovim.nix
shell
fzf.nix
starship.nix
thefuck.nix
yazi.nix
zoxide.nix
zsh-config.nix
zsh.nix
zsh42.nix
themes
catppuccin.nix
wm
tofi.nix
modules
home-manager
catppuccin.nix
cli
cli-app.nix
default.nix
shell
default.nix
direnv.nix
fzf.nix
starship.nix
zoxide.nix
shell.nix
default.nix
-7
home/adjoly/cli-app.nix
···
1
1
-
{ inputs, pkgs, ... }:
2
2
-
3
3
-
{
4
4
-
home.packages = with pkgs; [
5
5
-
inputs.timmy.packages.${pkgs.system}.timmy
6
6
-
];
7
7
-
}
+6
-11
home/adjoly/home-desktop.nix
···
6
6
}:
7
7
{
8
8
imports = [
9
9
-
../../modules/home-manager
9
9
+
../../modules/home-manager # import home-manager modules
10
10
11
11
-
./cli-app.nix
12
11
./wm/hyprland.nix
13
12
./wm/monitor-desktop.nix
14
14
-
./themes/catppuccin.nix
15
13
16
14
./nixpkgs-conf.nix
17
17
-
18
18
-
./programs/neovim.nix
19
19
-
./programs/direnv.nix
20
20
-
./programs/fastfetch.nix
21
21
-
./programs/shell/zsh.nix
22
15
];
23
16
24
17
gui.enable = true;
18
18
+
shell.nixos.enable = true;
19
19
+
bitwarden-ssh-agent.enable = true;
20
20
+
theme.enable = true;
25
21
26
22
home = {
27
23
packages = with pkgs; [
···
41
37
stateVersion = "24.05";
42
38
};
43
39
44
44
-
services.mpris-proxy.enable = true;
45
45
-
programs.kitty.font.size = 12;
40
40
+
services.mpris-proxy.enable = true; # for waybar
41
41
+
programs.kitty.font.size = 12; # for kitty
46
42
47
43
programs.waybar.settings.bar = {
48
44
"hyprland/workspaces" = {
···
89
85
"localsend_app --hidden"
90
86
"solaar -w hide --restart-on-wake-up"
91
87
];
92
92
-
93
88
};
94
89
};
95
90
}
-11
home/adjoly/programs/btop.nix
···
1
1
-
{ ... }:
2
2
-
3
3
-
{
4
4
-
programs.btop = {
5
5
-
enable = true;
6
6
-
settings = {
7
7
-
color_theme = "ayu";
8
8
-
vim_keys = "True";
9
9
-
};
10
10
-
};
11
11
-
}
-10
home/adjoly/programs/direnv.nix
···
1
1
-
{ ... }:
2
2
-
3
3
-
{
4
4
-
programs.direnv = {
5
5
-
enable = true;
6
6
-
enableZshIntegration = true;
7
7
-
nix-direnv.enable = true;
8
8
-
silent = true;
9
9
-
};
10
10
-
}
-9
home/adjoly/programs/fastfetch.nix
···
1
1
-
{ ... }:
2
2
-
{
3
3
-
programs.fastfetch = {
4
4
-
enable = true;
5
5
-
settings = {
6
6
-
7
7
-
};
8
8
-
};
9
9
-
}
-9
home/adjoly/programs/neovim.nix
···
1
1
-
{ inputs, pkgs, ... }:
2
2
-
{
3
3
-
nixpkgs.overlays = [
4
4
-
inputs.keyznvim.overlays.default
5
5
-
];
6
6
-
home.packages = with pkgs; [
7
7
-
keyznvim
8
8
-
];
9
9
-
}
-8
home/adjoly/programs/shell/fzf.nix
···
1
1
-
{ ... }:
2
2
-
{
3
3
-
programs.fzf = {
4
4
-
enable = true;
5
5
-
enableZshIntegration = true;
6
6
-
tmux.enableShellIntegration = true;
7
7
-
};
8
8
-
}
-33
home/adjoly/programs/shell/starship.nix
···
1
1
-
{ lib, ... }:
2
2
-
3
3
-
{
4
4
-
programs.starship = {
5
5
-
enable = true;
6
6
-
enableZshIntegration = true;
7
7
-
settings = {
8
8
-
add_newline = false;
9
9
-
format = " $directory $git_branch$git_status[➜](bold green) ";
10
10
-
directory = {
11
11
-
truncation_length = 3;
12
12
-
fish_style_pwd_dir_length = 3;
13
13
-
home_symbol = " ";
14
14
-
read_only_style = "197";
15
15
-
read_only = " ";
16
16
-
format = "[$path]($style)[$read_only]($read_only_style)";
17
17
-
};
18
18
-
git_branch = {
19
19
-
symbol = "";
20
20
-
format = "via [$symbol $branch]($style) ";
21
21
-
truncation_length = 7;
22
22
-
truncation_symbol = "…/";
23
23
-
style = "bold green";
24
24
-
};
25
25
-
git_status = {
26
26
-
format = "([$all_status$ahead_behind ]($style))";
27
27
-
staged = "•";
28
28
-
modified = "~";
29
29
-
untracked = "+";
30
30
-
};
31
31
-
};
32
32
-
};
33
33
-
}
-9
home/adjoly/programs/shell/thefuck.nix
···
1
1
-
{ ... }:
2
2
-
{
3
3
-
programs = {
4
4
-
thefuck = {
5
5
-
enable = true;
6
6
-
enableZshIntegration = true;
7
7
-
};
8
8
-
};
9
9
-
}
-7
home/adjoly/programs/shell/yazi.nix
···
1
1
-
{
2
2
-
programs.yazi = {
3
3
-
enable = true;
4
4
-
enableZshIntegration = true;
5
5
-
6
6
-
};
7
7
-
}
-10
home/adjoly/programs/shell/zoxide.nix
···
1
1
-
{ ... }:
2
2
-
{
3
3
-
programs.zoxide = {
4
4
-
enable = true;
5
5
-
enableZshIntegration = true;
6
6
-
options = [
7
7
-
"--cmd cd"
8
8
-
];
9
9
-
};
10
10
-
}
-31
home/adjoly/programs/shell/zsh-config.nix
···
1
1
-
{ config, pkgs, ... }:
2
2
-
3
3
-
{
4
4
-
programs.zsh = {
5
5
-
enable = true;
6
6
-
autosuggestion.enable = true;
7
7
-
enableCompletion = true;
8
8
-
initContent = ''
9
9
-
export SSH_AUTH_SOCK=$HOME/.bitwarden-ssh-agent.sock
10
10
-
alias tm="timmy create"
11
11
-
alias ts="timmy search"
12
12
-
function cdd() {
13
13
-
local dir_path="$(dirname "$(find . -type f | fzf)")"
14
14
-
if [[ -z "$dir_path" ]]; then
15
15
-
echo "No file selected."
16
16
-
return
17
17
-
fi
18
18
-
dir_path=$(realpath "$dir_path")
19
19
-
local session_name="$(basename "$dir_path")"
20
20
-
if tmux has-session -t "$session_name" 2>/dev/null; then
21
21
-
echo "Reattaching to existing session named $session_name"
22
22
-
tmux attach -t "$session_name"
23
23
-
else
24
24
-
echo "Creating new tmux session named $session_name"
25
25
-
tmux new-session -d -s "$session_name" -c "$dir_path"
26
26
-
tmux attach -t "$session_name"
27
27
-
fi
28
28
-
}
29
29
-
'';
30
30
-
};
31
31
-
}
-22
home/adjoly/programs/shell/zsh.nix
···
1
1
-
{ ... }:
2
2
-
{
3
3
-
imports = [
4
4
-
./zsh-config.nix
5
5
-
./thefuck.nix
6
6
-
./starship.nix
7
7
-
./fzf.nix
8
8
-
./zoxide.nix
9
9
-
./yazi.nix
10
10
-
];
11
11
-
programs.zsh = {
12
12
-
shellAliases = {
13
13
-
l = "ls -lA --color=auto";
14
14
-
ls = "ls -A --color=auto";
15
15
-
re = "nh os switch /home/adjoly/nixos-config";
16
16
-
update = "sudo nix flake update && sudo nixos-rebuild switch";
17
17
-
grep = "grep --color=auto";
18
18
-
lock = "hyprlock & systemctl suspend";
19
19
-
hibernate = "hyprlock & systemctl hibernate";
20
20
-
};
21
21
-
};
22
22
-
}
-3
home/adjoly/programs/shell/zsh42.nix
···
9
9
];
10
10
programs.zsh = {
11
11
shellAliases = {
12
12
-
l = "ls -lA --color=auto";
13
13
-
ls = "ls -A --color=auto";
14
12
re = "home-manager --flake ~/Documents/nixos-config#42adjoly switch";
15
15
-
grep = "grep --color=auto";
16
13
kty-frappe = "kitten themes --reload-in=all Catppuccin-frappe";
17
14
kty-latte = "kitten themes --reload-in=all Catppuccin-latte";
18
15
code = "flatpak run com.visualstudio.code";
-24
home/adjoly/themes/catppuccin.nix
···
1
1
-
{ lib, ... }:
2
2
-
{
3
3
-
catppuccin = {
4
4
-
enable = lib.mkDefault true;
5
5
-
flavor = "frappe";
6
6
-
accent = "lavender";
7
7
-
cursors = {
8
8
-
enable = lib.mkDefault true;
9
9
-
accent = "lavender";
10
10
-
flavor = "frappe";
11
11
-
};
12
12
-
btop = {
13
13
-
enable = lib.mkDefault true;
14
14
-
flavor = lib.mkDefault "frappe";
15
15
-
};
16
16
-
gh-dash.enable = lib.mkDefault true;
17
17
-
kitty.enable = lib.mkDefault false;
18
18
-
tofi.enable = lib.mkDefault true;
19
19
-
fzf.enable = lib.mkDefault true;
20
20
-
hyprlock.enable = lib.mkDefault false;
21
21
-
starship.enable = lib.mkDefault false;
22
22
-
waybar.enable = lib.mkDefault true;
23
23
-
};
24
24
-
}
+1
-1
home/adjoly/wm/tofi.nix
···
2
2
{
3
3
programs.tofi = {
4
4
enable = true;
5
5
-
settings = lib.mkForce {
5
5
+
settings = {
6
6
width = "100%";
7
7
height = "100%";
8
8
+35
modules/home-manager/catppuccin.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
pkgs,
4
4
+
config,
5
5
+
...
6
6
+
}:
7
7
+
8
8
+
{
9
9
+
options = {
10
10
+
theme.enable = lib.mkEnableOption "Can be used the enable catppuccin :D";
11
11
+
};
12
12
+
13
13
+
config = lib.mkIf config.theme.enable {
14
14
+
catppuccin = {
15
15
+
enable = lib.mkDefault true;
16
16
+
flavor = "frappe";
17
17
+
accent = "lavender";
18
18
+
cursors = {
19
19
+
enable = lib.mkDefault true;
20
20
+
accent = "lavender";
21
21
+
flavor = "frappe";
22
22
+
};
23
23
+
btop = {
24
24
+
enable = lib.mkDefault false;
25
25
+
};
26
26
+
gh-dash.enable = lib.mkDefault true;
27
27
+
kitty.enable = lib.mkDefault false;
28
28
+
tofi.enable = lib.mkDefault false;
29
29
+
fzf.enable = lib.mkDefault true;
30
30
+
hyprlock.enable = lib.mkDefault false;
31
31
+
starship.enable = lib.mkDefault false;
32
32
+
waybar.enable = lib.mkDefault true;
33
33
+
};
34
34
+
};
35
35
+
}
+46
modules/home-manager/cli/cli-app.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
config,
4
4
+
pkgs,
5
5
+
inputs,
6
6
+
...
7
7
+
}:
8
8
+
9
9
+
{
10
10
+
options = {
11
11
+
cli-app.enable = lib.mkEnableOption "can be used to enable the random cli app i use";
12
12
+
};
13
13
+
14
14
+
config = lib.mkIf config.cli-app.enable {
15
15
+
home.packages = with pkgs; [
16
16
+
inputs.timmy.packages.${pkgs.system}.timmy
17
17
+
keyznvim
18
18
+
];
19
19
+
20
20
+
programs.yazi = {
21
21
+
enable = lib.mkDefault true;
22
22
+
enableZshIntegration = true;
23
23
+
};
24
24
+
25
25
+
programs.thefuck = {
26
26
+
enable = lib.mkDefault true;
27
27
+
enableZshIntegration = true;
28
28
+
};
29
29
+
30
30
+
programs.fastfetch = {
31
31
+
enable = true;
32
32
+
};
33
33
+
34
34
+
programs.btop = {
35
35
+
enable = true;
36
36
+
settings = {
37
37
+
color_theme = "ayu";
38
38
+
vim_keys = "True";
39
39
+
};
40
40
+
};
41
41
+
42
42
+
nixpkgs.overlays = [
43
43
+
inputs.keyznvim.overlays.default
44
44
+
];
45
45
+
};
46
46
+
}
+2
modules/home-manager/cli/default.nix
···
3
3
./tmux.nix
4
4
./git.nix
5
5
./pogit.nix
6
6
+
./shell.nix
7
7
+
./cli-app.nix
6
8
];
7
9
}
+51
modules/home-manager/cli/shell.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
config,
4
4
+
pkgs,
5
5
+
...
6
6
+
}:
7
7
+
8
8
+
{
9
9
+
imports = [
10
10
+
./shell
11
11
+
];
12
12
+
13
13
+
options = {
14
14
+
shell.enable = lib.mkEnableOption "Can be used to enable my shell config";
15
15
+
shell.nixos.enable = lib.mkEnableOption "Can be use the enable the shell config for nixos";
16
16
+
bitwarden-ssh-agent.enable = lib.mkEnableOption "Can be used to add the env for bitwarden ssh agent";
17
17
+
};
18
18
+
19
19
+
config = lib.mkMerge [
20
20
+
(lib.mkIf config.shell.enable {
21
21
+
programs.zsh = {
22
22
+
enable = lib.mkDefault true;
23
23
+
autosuggestion.enable = true;
24
24
+
enableCompletion = true;
25
25
+
shellAliases = lib.mkBefore {
26
26
+
l = "ls -lA --color=auto";
27
27
+
ls = "ls -A --color=auto";
28
28
+
grep = "grep --color=auto";
29
29
+
tm = "timmy create";
30
30
+
ts = "timmy search";
31
31
+
};
32
32
+
};
33
33
+
})
34
34
+
(lib.mkIf config.shell.nixos.enable {
35
35
+
programs.zsh = {
36
36
+
shellAliases = {
37
37
+
re = "nh os switch /home/adjoly/nixos-config";
38
38
+
lock = "hyprlock & systemctl suspend";
39
39
+
hibernate = "hyprlock & systemctl hibernate";
40
40
+
};
41
41
+
};
42
42
+
})
43
43
+
(lib.mkIf config.bitwarden-ssh-agent.enable {
44
44
+
programs.zsh = {
45
45
+
envExtra = lib.mkBefore ''
46
46
+
export SSH_AUTH_SOCK=$HOME/.bitwarden-ssh-agent.sock
47
47
+
'';
48
48
+
};
49
49
+
})
50
50
+
];
51
51
+
}
+12
modules/home-manager/cli/shell/default.nix
···
1
1
+
{
2
2
+
...
3
3
+
}:
4
4
+
5
5
+
{
6
6
+
imports = [
7
7
+
./zoxide.nix
8
8
+
./starship.nix
9
9
+
./fzf.nix
10
10
+
./direnv.nix
11
11
+
];
12
12
+
}
+14
modules/home-manager/cli/shell/direnv.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
config,
4
4
+
...
5
5
+
}:
6
6
+
7
7
+
{
8
8
+
programs.direnv = lib.mkIf config.shell.enable {
9
9
+
enable = lib.mkDefault true;
10
10
+
enableZshIntegration = true;
11
11
+
nix-direnv.enable = true;
12
12
+
silent = true;
13
13
+
};
14
14
+
}
+13
modules/home-manager/cli/shell/fzf.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
config,
4
4
+
...
5
5
+
}:
6
6
+
7
7
+
{
8
8
+
programs.fzf = lib.mkIf config.shell.enable {
9
9
+
enable = lib.mkDefault true;
10
10
+
enableZshIntegration = true;
11
11
+
tmux.enableShellIntegration = true;
12
12
+
};
13
13
+
}
+37
modules/home-manager/cli/shell/starship.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
config,
4
4
+
...
5
5
+
}:
6
6
+
7
7
+
{
8
8
+
programs.starship = lib.mkIf config.shell.enable {
9
9
+
enable = lib.mkDefault true;
10
10
+
enableZshIntegration = true;
11
11
+
settings = {
12
12
+
add_newline = false;
13
13
+
format = " $directory $git_branch$git_status[➜](bold green) ";
14
14
+
directory = {
15
15
+
truncation_length = 3;
16
16
+
fish_style_pwd_dir_length = 3;
17
17
+
home_symbol = " ";
18
18
+
read_only_style = "197";
19
19
+
read_only = " ";
20
20
+
format = "[$path]($style)[$read_only]($read_only_style)";
21
21
+
};
22
22
+
git_branch = {
23
23
+
symbol = "";
24
24
+
format = "via [$symbol $branch]($style) ";
25
25
+
truncation_length = 7;
26
26
+
truncation_symbol = "…/";
27
27
+
style = "bold green";
28
28
+
};
29
29
+
git_status = {
30
30
+
format = "([$all_status$ahead_behind ]($style))";
31
31
+
staged = "•";
32
32
+
modified = "~";
33
33
+
untracked = "+";
34
34
+
};
35
35
+
};
36
36
+
};
37
37
+
}
+15
modules/home-manager/cli/shell/zoxide.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
config,
4
4
+
...
5
5
+
}:
6
6
+
7
7
+
{
8
8
+
programs.zoxide = lib.mkIf config.shell.enable {
9
9
+
enable = lib.mkDefault true;
10
10
+
enableZshIntegration = true;
11
11
+
options = [
12
12
+
"--cmd cd"
13
13
+
];
14
14
+
};
15
15
+
}
+5
modules/home-manager/default.nix
···
10
10
tmux.enable = lib.mkDefault true;
11
11
git.enable = lib.mkDefault true;
12
12
pogit.enable = lib.mkDefault true;
13
13
+
shell.enable = lib.mkDefault true;
14
14
+
cli-app.enable = lib.mkDefault true;
13
15
};
14
16
gui-conf = lib.mkIf config.gui.enable {
15
17
cli.enable = lib.mkDefault true;
···
22
24
imports = [
23
25
./cli
24
26
./gui
27
27
+
28
28
+
./catppuccin.nix
29
29
+
25
30
inputs.catppuccin.homeModules.catppuccin
26
31
inputs.pogit.homeManagerModules.default
27
32
];