❄️ My personnal NixOS configuration
nix-flake nixos-configuration linux dotfiles flake nix nix-config nixos nixos-flake linux-desktop

「♻️」 refactor: changed ssh config to modules

+237 -205
-7
home/adjoly/cli-app.nix
··· 1 - { inputs, pkgs, ... }: 2 - 3 - { 4 - home.packages = with pkgs; [ 5 - inputs.timmy.packages.${pkgs.system}.timmy 6 - ]; 7 - }
+6 -11
home/adjoly/home-desktop.nix
··· 6 6 }: 7 7 { 8 8 imports = [ 9 - ../../modules/home-manager 9 + ../../modules/home-manager # import home-manager modules 10 10 11 - ./cli-app.nix 12 11 ./wm/hyprland.nix 13 12 ./wm/monitor-desktop.nix 14 - ./themes/catppuccin.nix 15 13 16 14 ./nixpkgs-conf.nix 17 - 18 - ./programs/neovim.nix 19 - ./programs/direnv.nix 20 - ./programs/fastfetch.nix 21 - ./programs/shell/zsh.nix 22 15 ]; 23 16 24 17 gui.enable = true; 18 + shell.nixos.enable = true; 19 + bitwarden-ssh-agent.enable = true; 20 + theme.enable = true; 25 21 26 22 home = { 27 23 packages = with pkgs; [ ··· 41 37 stateVersion = "24.05"; 42 38 }; 43 39 44 - services.mpris-proxy.enable = true; 45 - programs.kitty.font.size = 12; 40 + services.mpris-proxy.enable = true; # for waybar 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 - 93 88 }; 94 89 }; 95 90 }
-11
home/adjoly/programs/btop.nix
··· 1 - { ... }: 2 - 3 - { 4 - programs.btop = { 5 - enable = true; 6 - settings = { 7 - color_theme = "ayu"; 8 - vim_keys = "True"; 9 - }; 10 - }; 11 - }
-10
home/adjoly/programs/direnv.nix
··· 1 - { ... }: 2 - 3 - { 4 - programs.direnv = { 5 - enable = true; 6 - enableZshIntegration = true; 7 - nix-direnv.enable = true; 8 - silent = true; 9 - }; 10 - }
-9
home/adjoly/programs/fastfetch.nix
··· 1 - { ... }: 2 - { 3 - programs.fastfetch = { 4 - enable = true; 5 - settings = { 6 - 7 - }; 8 - }; 9 - }
-9
home/adjoly/programs/neovim.nix
··· 1 - { inputs, pkgs, ... }: 2 - { 3 - nixpkgs.overlays = [ 4 - inputs.keyznvim.overlays.default 5 - ]; 6 - home.packages = with pkgs; [ 7 - keyznvim 8 - ]; 9 - }
-8
home/adjoly/programs/shell/fzf.nix
··· 1 - { ... }: 2 - { 3 - programs.fzf = { 4 - enable = true; 5 - enableZshIntegration = true; 6 - tmux.enableShellIntegration = true; 7 - }; 8 - }
-33
home/adjoly/programs/shell/starship.nix
··· 1 - { lib, ... }: 2 - 3 - { 4 - programs.starship = { 5 - enable = true; 6 - enableZshIntegration = true; 7 - settings = { 8 - add_newline = false; 9 - format = " $directory $git_branch$git_status[➜](bold green) "; 10 - directory = { 11 - truncation_length = 3; 12 - fish_style_pwd_dir_length = 3; 13 - home_symbol = "󰋜 "; 14 - read_only_style = "197"; 15 - read_only = " 󰌾"; 16 - format = "[$path]($style)[$read_only]($read_only_style)"; 17 - }; 18 - git_branch = { 19 - symbol = ""; 20 - format = "via [$symbol $branch]($style) "; 21 - truncation_length = 7; 22 - truncation_symbol = "…/"; 23 - style = "bold green"; 24 - }; 25 - git_status = { 26 - format = "([$all_status$ahead_behind ]($style))"; 27 - staged = "•"; 28 - modified = "~"; 29 - untracked = "+"; 30 - }; 31 - }; 32 - }; 33 - }
-9
home/adjoly/programs/shell/thefuck.nix
··· 1 - { ... }: 2 - { 3 - programs = { 4 - thefuck = { 5 - enable = true; 6 - enableZshIntegration = true; 7 - }; 8 - }; 9 - }
-7
home/adjoly/programs/shell/yazi.nix
··· 1 - { 2 - programs.yazi = { 3 - enable = true; 4 - enableZshIntegration = true; 5 - 6 - }; 7 - }
-10
home/adjoly/programs/shell/zoxide.nix
··· 1 - { ... }: 2 - { 3 - programs.zoxide = { 4 - enable = true; 5 - enableZshIntegration = true; 6 - options = [ 7 - "--cmd cd" 8 - ]; 9 - }; 10 - }
-31
home/adjoly/programs/shell/zsh-config.nix
··· 1 - { config, pkgs, ... }: 2 - 3 - { 4 - programs.zsh = { 5 - enable = true; 6 - autosuggestion.enable = true; 7 - enableCompletion = true; 8 - initContent = '' 9 - export SSH_AUTH_SOCK=$HOME/.bitwarden-ssh-agent.sock 10 - alias tm="timmy create" 11 - alias ts="timmy search" 12 - function cdd() { 13 - local dir_path="$(dirname "$(find . -type f | fzf)")" 14 - if [[ -z "$dir_path" ]]; then 15 - echo "No file selected." 16 - return 17 - fi 18 - dir_path=$(realpath "$dir_path") 19 - local session_name="$(basename "$dir_path")" 20 - if tmux has-session -t "$session_name" 2>/dev/null; then 21 - echo "Reattaching to existing session named $session_name" 22 - tmux attach -t "$session_name" 23 - else 24 - echo "Creating new tmux session named $session_name" 25 - tmux new-session -d -s "$session_name" -c "$dir_path" 26 - tmux attach -t "$session_name" 27 - fi 28 - } 29 - ''; 30 - }; 31 - }
-22
home/adjoly/programs/shell/zsh.nix
··· 1 - { ... }: 2 - { 3 - imports = [ 4 - ./zsh-config.nix 5 - ./thefuck.nix 6 - ./starship.nix 7 - ./fzf.nix 8 - ./zoxide.nix 9 - ./yazi.nix 10 - ]; 11 - programs.zsh = { 12 - shellAliases = { 13 - l = "ls -lA --color=auto"; 14 - ls = "ls -A --color=auto"; 15 - re = "nh os switch /home/adjoly/nixos-config"; 16 - update = "sudo nix flake update && sudo nixos-rebuild switch"; 17 - grep = "grep --color=auto"; 18 - lock = "hyprlock & systemctl suspend"; 19 - hibernate = "hyprlock & systemctl hibernate"; 20 - }; 21 - }; 22 - }
-3
home/adjoly/programs/shell/zsh42.nix
··· 9 9 ]; 10 10 programs.zsh = { 11 11 shellAliases = { 12 - l = "ls -lA --color=auto"; 13 - ls = "ls -A --color=auto"; 14 12 re = "home-manager --flake ~/Documents/nixos-config#42adjoly switch"; 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 - { lib, ... }: 2 - { 3 - catppuccin = { 4 - enable = lib.mkDefault true; 5 - flavor = "frappe"; 6 - accent = "lavender"; 7 - cursors = { 8 - enable = lib.mkDefault true; 9 - accent = "lavender"; 10 - flavor = "frappe"; 11 - }; 12 - btop = { 13 - enable = lib.mkDefault true; 14 - flavor = lib.mkDefault "frappe"; 15 - }; 16 - gh-dash.enable = lib.mkDefault true; 17 - kitty.enable = lib.mkDefault false; 18 - tofi.enable = lib.mkDefault true; 19 - fzf.enable = lib.mkDefault true; 20 - hyprlock.enable = lib.mkDefault false; 21 - starship.enable = lib.mkDefault false; 22 - waybar.enable = lib.mkDefault true; 23 - }; 24 - }
+1 -1
home/adjoly/wm/tofi.nix
··· 2 2 { 3 3 programs.tofi = { 4 4 enable = true; 5 - settings = lib.mkForce { 5 + settings = { 6 6 width = "100%"; 7 7 height = "100%"; 8 8
+35
modules/home-manager/catppuccin.nix
··· 1 + { 2 + lib, 3 + pkgs, 4 + config, 5 + ... 6 + }: 7 + 8 + { 9 + options = { 10 + theme.enable = lib.mkEnableOption "Can be used the enable catppuccin :D"; 11 + }; 12 + 13 + config = lib.mkIf config.theme.enable { 14 + catppuccin = { 15 + enable = lib.mkDefault true; 16 + flavor = "frappe"; 17 + accent = "lavender"; 18 + cursors = { 19 + enable = lib.mkDefault true; 20 + accent = "lavender"; 21 + flavor = "frappe"; 22 + }; 23 + btop = { 24 + enable = lib.mkDefault false; 25 + }; 26 + gh-dash.enable = lib.mkDefault true; 27 + kitty.enable = lib.mkDefault false; 28 + tofi.enable = lib.mkDefault false; 29 + fzf.enable = lib.mkDefault true; 30 + hyprlock.enable = lib.mkDefault false; 31 + starship.enable = lib.mkDefault false; 32 + waybar.enable = lib.mkDefault true; 33 + }; 34 + }; 35 + }
+46
modules/home-manager/cli/cli-app.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + inputs, 6 + ... 7 + }: 8 + 9 + { 10 + options = { 11 + cli-app.enable = lib.mkEnableOption "can be used to enable the random cli app i use"; 12 + }; 13 + 14 + config = lib.mkIf config.cli-app.enable { 15 + home.packages = with pkgs; [ 16 + inputs.timmy.packages.${pkgs.system}.timmy 17 + keyznvim 18 + ]; 19 + 20 + programs.yazi = { 21 + enable = lib.mkDefault true; 22 + enableZshIntegration = true; 23 + }; 24 + 25 + programs.thefuck = { 26 + enable = lib.mkDefault true; 27 + enableZshIntegration = true; 28 + }; 29 + 30 + programs.fastfetch = { 31 + enable = true; 32 + }; 33 + 34 + programs.btop = { 35 + enable = true; 36 + settings = { 37 + color_theme = "ayu"; 38 + vim_keys = "True"; 39 + }; 40 + }; 41 + 42 + nixpkgs.overlays = [ 43 + inputs.keyznvim.overlays.default 44 + ]; 45 + }; 46 + }
+2
modules/home-manager/cli/default.nix
··· 3 3 ./tmux.nix 4 4 ./git.nix 5 5 ./pogit.nix 6 + ./shell.nix 7 + ./cli-app.nix 6 8 ]; 7 9 }
+51
modules/home-manager/cli/shell.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + imports = [ 10 + ./shell 11 + ]; 12 + 13 + options = { 14 + shell.enable = lib.mkEnableOption "Can be used to enable my shell config"; 15 + shell.nixos.enable = lib.mkEnableOption "Can be use the enable the shell config for nixos"; 16 + bitwarden-ssh-agent.enable = lib.mkEnableOption "Can be used to add the env for bitwarden ssh agent"; 17 + }; 18 + 19 + config = lib.mkMerge [ 20 + (lib.mkIf config.shell.enable { 21 + programs.zsh = { 22 + enable = lib.mkDefault true; 23 + autosuggestion.enable = true; 24 + enableCompletion = true; 25 + shellAliases = lib.mkBefore { 26 + l = "ls -lA --color=auto"; 27 + ls = "ls -A --color=auto"; 28 + grep = "grep --color=auto"; 29 + tm = "timmy create"; 30 + ts = "timmy search"; 31 + }; 32 + }; 33 + }) 34 + (lib.mkIf config.shell.nixos.enable { 35 + programs.zsh = { 36 + shellAliases = { 37 + re = "nh os switch /home/adjoly/nixos-config"; 38 + lock = "hyprlock & systemctl suspend"; 39 + hibernate = "hyprlock & systemctl hibernate"; 40 + }; 41 + }; 42 + }) 43 + (lib.mkIf config.bitwarden-ssh-agent.enable { 44 + programs.zsh = { 45 + envExtra = lib.mkBefore '' 46 + export SSH_AUTH_SOCK=$HOME/.bitwarden-ssh-agent.sock 47 + ''; 48 + }; 49 + }) 50 + ]; 51 + }
+12
modules/home-manager/cli/shell/default.nix
··· 1 + { 2 + ... 3 + }: 4 + 5 + { 6 + imports = [ 7 + ./zoxide.nix 8 + ./starship.nix 9 + ./fzf.nix 10 + ./direnv.nix 11 + ]; 12 + }
+14
modules/home-manager/cli/shell/direnv.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.direnv = lib.mkIf config.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + nix-direnv.enable = true; 12 + silent = true; 13 + }; 14 + }
+13
modules/home-manager/cli/shell/fzf.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.fzf = lib.mkIf config.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + tmux.enableShellIntegration = true; 12 + }; 13 + }
+37
modules/home-manager/cli/shell/starship.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.starship = lib.mkIf config.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + settings = { 12 + add_newline = false; 13 + format = " $directory $git_branch$git_status[➜](bold green) "; 14 + directory = { 15 + truncation_length = 3; 16 + fish_style_pwd_dir_length = 3; 17 + home_symbol = "󰋜 "; 18 + read_only_style = "197"; 19 + read_only = " 󰌾"; 20 + format = "[$path]($style)[$read_only]($read_only_style)"; 21 + }; 22 + git_branch = { 23 + symbol = ""; 24 + format = "via [$symbol $branch]($style) "; 25 + truncation_length = 7; 26 + truncation_symbol = "…/"; 27 + style = "bold green"; 28 + }; 29 + git_status = { 30 + format = "([$all_status$ahead_behind ]($style))"; 31 + staged = "•"; 32 + modified = "~"; 33 + untracked = "+"; 34 + }; 35 + }; 36 + }; 37 + }
+15
modules/home-manager/cli/shell/zoxide.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: 6 + 7 + { 8 + programs.zoxide = lib.mkIf config.shell.enable { 9 + enable = lib.mkDefault true; 10 + enableZshIntegration = true; 11 + options = [ 12 + "--cmd cd" 13 + ]; 14 + }; 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 + shell.enable = lib.mkDefault true; 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 + 28 + ./catppuccin.nix 29 + 25 30 inputs.catppuccin.homeModules.catppuccin 26 31 inputs.pogit.homeManagerModules.default 27 32 ];