commit faaa5effd23011a53e8013ef798df3af3447242a Author: Niccolo Borgioli Date: Tue Nov 12 22:29:45 2024 +0100 init diff --git a/files/omp/config.yaml b/files/omp/config.yaml new file mode 100644 index 0000000..41000f6 --- /dev/null +++ b/files/omp/config.yaml @@ -0,0 +1,160 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json + +palette: + error-0: '#ff4040' + error-10: '#e23629' + error-15: '#d33220' + error-20: '#c52e18' + error-30: '#a8280d' + error-40: '#8a2106' + error-5: '#f03a34' + error-50: '#6d1b02' + error-60: '#501401' + error-70: '#330d00' + main-0: '#f7fbff' + main-10: '#b4cafd' + main-15: '#95a9fc' + main-20: '#7783fa' + main-30: '#5348f4' + main-40: '#4826e8' + main-5: '#d6e6fe' + main-50: '#3e10ca' + main-60: '#22036e' + main-70: '#020008' + success-0: '#40ff46' + success-10: '#29e243' + success-15: '#20d342' + success-20: '#18c541' + success-30: '#0da83d' + success-40: '#068a36' + success-5: '#34f044' + success-50: '#026d2d' + success-60: '#015022' + success-70: '#003316' + warning-0: '#ffff40' + warning-10: '#dae229' + warning-15: '#c8d320' + warning-20: '#b6c518' + warning-30: '#96a80d' + warning-40: '#788a06' + warning-5: '#ecf034' + warning-50: '#5d6d02' + warning-60: '#435001' + warning-70: '#2a3300' +blocks: + - type: prompt + alignment: left + segments: + - leading_diamond:  + foreground: p:main-70 + background: p:main-5 + type: os + style: diamond + - properties: + style: full + template: " \uf0e7 " + foreground: p:main-70 + powerline_symbol:  + background: p:error-15 + type: root + style: powerline + - properties: + style: full + template: ' {{ .Path }} ' + foreground: p:main-0 + powerline_symbol:  + background: p:main-40 + type: path + style: powerline + - template: ' {{ .HEAD }} ' + foreground: p:main-70 + powerline_symbol:  + background: p:warning-10 + type: git + style: powerline + - type: prompt + alignment: right + segments: + - leading_diamond:  + trailing_diamond:  + foreground: p:main-70 + background: p:main-10 + type: python + style: dynamic + - leading_diamond:  + trailing_diamond:  + foreground: p:main-70 + background: p:main-10 + type: go + style: dynamic + - leading_diamond:  + trailing_diamond:  + foreground: p:main-70 + background: p:main-10 + type: node + style: dynamic + - leading_diamond:  + trailing_diamond:  + template: '{{ .Context }}{{ if .Namespace }}::{{ .Namespace }}{{ end }}' + foreground: p:main-70 + background: p:main-10 + type: kubectl + style: dynamic + - leading_diamond:  + trailing_diamond:  + template: '{{ .Icon }} {{ .Server }}' + foreground: p:main-70 + background: p:main-10 + type: docker + style: dynamic + - leading_diamond:  + trailing_diamond:  + foreground: p:main-70 + background: p:main-10 + type: rust + style: dynamic + - leading_diamond:  + trailing_diamond:  + foreground: p:main-70 + background: p:main-10 + type: battery + style: dynamic + - properties: + always_enabled: true + leading_diamond:  + template: "{{ if gt .Code 0 }}\uf00d {{ .Code }} {{ .Meaning }}{{ else }}\uf42e{{ end }}" + foreground: p:main-70 + type: status + style: diamond + background_templates: + - '{{ if gt .Code 0 }}p:error-0{{ else }}p:main-10{{ end }}' + - properties: + always_enabled: true + style: round + foreground: p:main-70 + powerline_symbol:  + background: p:main-5 + type: executiontime + style: powerline + - properties: + time_format: '15:04:05' + template: ' {{ .CurrentDate | date .Format }} ' + foreground: p:main-70 + powerline_symbol:  + background: p:main-0 + type: time + style: powerline + - type: prompt + alignment: left + segments: + - properties: + always_enabled: true + template: '❯ ' + foreground: p:main-15 + type: status + style: plain + foreground_templates: + - '{{ if gt .Code 0 }}p:error-15{{ end }}' + newline: true +version: 3 + diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..d8c6aa4 --- /dev/null +++ b/flake.lock @@ -0,0 +1,48 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731235328, + "narHash": "sha256-NjavpgE9/bMe/ABvZpyHIUeYF1mqR5lhaep3wB79ucs=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "60bb110917844d354f3c18e05450606a435d2d10", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1731139594, + "narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..3dbc25a --- /dev/null +++ b/flake.nix @@ -0,0 +1,29 @@ +{ + description = "Home Manager configuration of root"; + + inputs = { + # Specify the source of Home Manager and Nixpkgs. + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { nixpkgs, home-manager, ... }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + homeConfigurations."root" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + + # Specify your home configuration modules here, for example, + # the path to your home.nix. + modules = [ ./home.nix ]; + + # Optionally use extraSpecialArgs + # to pass through arguments to home.nix + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..6f0b535 --- /dev/null +++ b/home.nix @@ -0,0 +1,73 @@ +{ config, pkgs, ... }: + +{ + home.username = "root"; + home.homeDirectory = "/root"; + +# +# You should not change this value, even if you update Home Manager. If you do +# want to update the value, then make sure to first check the Home Manager +# release notes. + home.stateVersion = "24.05"; # Please read the comment before changing. + + home.packages = [ + pkgs.neovim + pkgs.tmux + pkgs.oh-my-posh + + pkgs.git + pkgs.gnutar + + (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) + + ]; + + home.file = { + ".config/omp/config.yaml".source= ./files/omp/config.yaml; + }; + + home.sessionVariables = { + EDITOR = "nvim"; + }; + + programs.home-manager.enable = true; + + home.shellAliases = { + l="ls -hal"; + dc="docker compose"; + rsync="rsync -az --info=progress2"; + t="tmux new-session -A -s main"; + e="nvim"; + hms="home-manager switch --flake ~/nix#root -b backup"; + }; + + programs.fish = { + enable=true; + shellInit='' + oh-my-posh init fish --config ~/.config/omp/config.yaml | source + ''; + }; + programs.bash = { + enable=true; + }; + programs.tmux = { + enable=true; + clock24=true; + mouse=true; + extraConfig= '' + # switch panes using Alt-arrow without prefix + bind -n M-Left select-pane -L + bind -n M-Right select-pane -R + bind -n M-Up select-pane -U + bind -n M-Down select-pane -D + + # switch panes using jkhl + bind h select-pane -L + bind l select-pane -R + bind j select-pane -U + bind k select-pane -D + ''; + shell = "${pkgs.fish}/bin/fish"; + terminal = "tmux-256color"; + }; +}