From 7a372ed81256ce5d6aa608be9bebe173ab4e042e Mon Sep 17 00:00:00 2001 From: sefidel Date: Tue, 18 Jan 2022 17:38:31 +0900 Subject: project: rewrite --- flake.lock | 105 +- flake.nix | 26 +- home/alpha/boopy.nix | 9 + home/configurations/boopy@alpha.nix | 9 - home/configurations/default.nix | 5 - home/default.nix | 22 + home/modules/default.nix | 16 - home/modules/misc/home/default.nix | 31 - home/modules/profiles/base/config/dunst.nix | 47 - home/modules/profiles/base/config/foot.nix | 37 - home/modules/profiles/base/config/sway.nix | 204 --- .../profiles/base/config/waybar-settings-new.nix | 68 - .../profiles/base/config/waybar-settings.nix | 56 - home/modules/profiles/base/config/waybar-style.nix | 77 - home/modules/profiles/base/default.nix | 176 --- home/modules/profiles/base/p10k-config/p10k.zsh | 1604 -------------------- home/modules/profiles/browsing/default.nix | 30 - .../profiles/browsing/qutebrowser-settings.nix | 306 ---- home/modules/profiles/default.nix | 13 - home/modules/profiles/development/default.nix | 87 -- home/modules/profiles/messaging/default.nix | 14 - home/modules/profiles/multimedia/default.nix | 44 - home/modules/profiles/research/default.nix | 14 - home/profiles/base/config/dunst.nix | 47 + home/profiles/base/config/foot.nix | 37 + home/profiles/base/config/sway.nix | 204 +++ home/profiles/base/config/waybar-settings.nix | 54 + home/profiles/base/config/waybar-style.nix | 77 + home/profiles/base/default.nix | 184 +++ home/profiles/base/p10k-config/p10k.zsh | 1604 ++++++++++++++++++++ home/profiles/browsing/default.nix | 30 + home/profiles/browsing/qutebrowser-settings.nix | 306 ++++ home/profiles/default.nix | 13 + home/profiles/development/default.nix | 87 ++ home/profiles/messaging/default.nix | 17 + home/profiles/multimedia/default.nix | 49 + home/profiles/research/default.nix | 16 + lib/mk_home.nix | 11 +- lib/mk_system.nix | 12 +- nixos/.sops.yaml | 9 + nixos/alpha/configuration.nix | 148 ++ nixos/alpha/hardware-configuration.nix | 49 + nixos/alpha/secrets/secrets.yaml | 52 + nixos/configurations/alpha.nix | 143 -- nixos/configurations/default.nix | 5 - nixos/configurations/hardware/alpha.nix | 49 - nixos/default.nix | 14 + nixos/secrets/keys/hosts/alpha.asc | 28 + nixos/secrets/keys/users/boopy.asc | 51 + packages/default.nix | 6 +- packages/non-flake/default.nix | 5 - 51 files changed, 3197 insertions(+), 3110 deletions(-) create mode 100644 home/alpha/boopy.nix delete mode 100644 home/configurations/boopy@alpha.nix delete mode 100644 home/configurations/default.nix create mode 100644 home/default.nix delete mode 100644 home/modules/default.nix delete mode 100644 home/modules/misc/home/default.nix delete mode 100644 home/modules/profiles/base/config/dunst.nix delete mode 100644 home/modules/profiles/base/config/foot.nix delete mode 100644 home/modules/profiles/base/config/sway.nix delete mode 100644 home/modules/profiles/base/config/waybar-settings-new.nix delete mode 100644 home/modules/profiles/base/config/waybar-settings.nix delete mode 100644 home/modules/profiles/base/config/waybar-style.nix delete mode 100644 home/modules/profiles/base/default.nix delete mode 100644 home/modules/profiles/base/p10k-config/p10k.zsh delete mode 100644 home/modules/profiles/browsing/default.nix delete mode 100644 home/modules/profiles/browsing/qutebrowser-settings.nix delete mode 100644 home/modules/profiles/default.nix delete mode 100644 home/modules/profiles/development/default.nix delete mode 100644 home/modules/profiles/messaging/default.nix delete mode 100644 home/modules/profiles/multimedia/default.nix delete mode 100644 home/modules/profiles/research/default.nix create mode 100644 home/profiles/base/config/dunst.nix create mode 100644 home/profiles/base/config/foot.nix create mode 100644 home/profiles/base/config/sway.nix create mode 100644 home/profiles/base/config/waybar-settings.nix create mode 100644 home/profiles/base/config/waybar-style.nix create mode 100644 home/profiles/base/default.nix create mode 100644 home/profiles/base/p10k-config/p10k.zsh create mode 100644 home/profiles/browsing/default.nix create mode 100644 home/profiles/browsing/qutebrowser-settings.nix create mode 100644 home/profiles/default.nix create mode 100644 home/profiles/development/default.nix create mode 100644 home/profiles/messaging/default.nix create mode 100644 home/profiles/multimedia/default.nix create mode 100644 home/profiles/research/default.nix create mode 100644 nixos/.sops.yaml create mode 100644 nixos/alpha/configuration.nix create mode 100644 nixos/alpha/hardware-configuration.nix create mode 100644 nixos/alpha/secrets/secrets.yaml delete mode 100644 nixos/configurations/alpha.nix delete mode 100644 nixos/configurations/default.nix delete mode 100644 nixos/configurations/hardware/alpha.nix create mode 100644 nixos/default.nix create mode 100644 nixos/secrets/keys/hosts/alpha.asc create mode 100644 nixos/secrets/keys/users/boopy.asc delete mode 100644 packages/non-flake/default.nix diff --git a/flake.lock b/flake.lock index 19b34f0..3422bdd 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,28 @@ { "nodes": { + "chaotic-nixpkgs": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1642336372, + "narHash": "sha256-1N+9qs4oFIp5tixvScZnVYKzDaaWfqDAPnbf0pWxKQE=", + "ref": "main", + "rev": "4f26096c0b3a717beaccf2fa96752a95f298d1f9", + "revCount": 11, + "type": "git", + "url": "https://git.sr.ht/~boppy/chaotic-nixpkgs" + }, + "original": { + "ref": "main", + "type": "git", + "url": "https://git.sr.ht/~boppy/chaotic-nixpkgs" + } + }, "flake-compat": { "flake": false, "locked": { @@ -18,11 +41,11 @@ }, "flake-utils": { "locked": { - "lastModified": 1629481132, - "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "owner": "numtide", "repo": "flake-utils", - "rev": "997f7efcb746a9c140ce1f13c72263189225f482", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", "type": "github" }, "original": { @@ -47,6 +70,21 @@ } }, "flake-utils_3": { + "locked": { + "lastModified": 1629481132, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "997f7efcb746a9c140ce1f13c72263189225f482", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { "locked": { "lastModified": 1637014545, "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", @@ -68,27 +106,26 @@ ] }, "locked": { - "lastModified": 1638150501, - "narHash": "sha256-aWH3MRmjUtx8ciSGLegBJC5mhymsuroHPs74ZldrNTU=", + "lastModified": 1642463060, + "narHash": "sha256-6xXRxvMk4OV/k6VwJq54pahToT4FCZzOKfbvG7f6l1E=", "owner": "nix-community", "repo": "home-manager", - "rev": "9de77227d7780518cfeaee5a917970247f3ecc56", + "rev": "8cf13abffc0808b337590a9e382604ab6c2cb3e7", "type": "github" }, "original": { "owner": "nix-community", "repo": "home-manager", - "rev": "9de77227d7780518cfeaee5a917970247f3ecc56", "type": "github" } }, "master": { "locked": { - "lastModified": 1642034024, - "narHash": "sha256-H+XLDkfe3M/RvToKSVuOya0zx1d4vJhWiwfDtHc2sfQ=", + "lastModified": 1642462659, + "narHash": "sha256-vNFD3y54atPP5kgXwrnfUhCtHXqj4frmP0tmWS38eNo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4a3032bbaa0629e0d6991f9f56ac63dad5ad64c4", + "rev": "13e3f202d27e96a1e0fc3ad288899bb46add775b", "type": "github" }, "original": { @@ -100,18 +137,18 @@ }, "neovim": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] }, "locked": { "dir": "contrib", - "lastModified": 1642010204, - "narHash": "sha256-VfYBgGwBnzdjugb4InBWHLkNv58S6ECyKD6kBBUpN48=", + "lastModified": 1642453919, + "narHash": "sha256-wGf/RCpNv/PGEx6wHWgyCP0FkG5kaVvWvId7uiKcay4=", "owner": "neovim", "repo": "neovim", - "rev": "39a35dd006e793c4ff4e09436c8fc268c4415bcf", + "rev": "fcf5dd34fdfde3a6632b96a88f66c1053cba08d1", "type": "github" }, "original": { @@ -123,11 +160,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1642008389, - "narHash": "sha256-nWYdmvmBOXYFktxe7ffwc8ESJQkIqTrzyCIZJk+Sir0=", + "lastModified": 1642373004, + "narHash": "sha256-AZ1fTklT9OkLFtmZ8qMbQ2Uf1dF0+np3WjnTIIquApA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4f0b53702b8fdeea4c68fe34bdf9ce90817910fb", + "rev": "b13052a35a63e1ea9eba916ffe48886ab7af58ce", "type": "github" }, "original": { @@ -137,29 +174,6 @@ "type": "github" } }, - "nixpkgs-extra": { - "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1641015751, - "narHash": "sha256-jzudZWz2T+6Y1v8IxzQ9Hb3D41926idQFW+ntqD0kOc=", - "ref": "main", - "rev": "92192e9c0b2c75c714498e595c147b3ade7459ee", - "revCount": 6, - "type": "git", - "url": "https://git.sr.ht/~boppy/nixpkgs-extra" - }, - "original": { - "ref": "main", - "type": "git", - "url": "https://git.sr.ht/~boppy/nixpkgs-extra" - } - }, "phocus": { "flake": false, "locked": { @@ -178,11 +192,12 @@ }, "root": { "inputs": { + "chaotic-nixpkgs": "chaotic-nixpkgs", + "flake-utils": "flake-utils_2", "home-manager": "home-manager", "master": "master", "neovim": "neovim", "nixpkgs": "nixpkgs", - "nixpkgs-extra": "nixpkgs-extra", "phocus": "phocus", "rust-overlay": "rust-overlay", "sops-nix": "sops-nix", @@ -191,17 +206,17 @@ }, "rust-overlay": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1641868896, - "narHash": "sha256-R2hG3EqLSASjdzJlhn1leRmBwmatrzIyKXRaBfwbAPg=", + "lastModified": 1642387353, + "narHash": "sha256-CmpIo2whHN1ESXuKl9lL9CRJVK8YuEfV2JURFqmWNmw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "84c58400556c1c5fa796cbc3215ba5bbd3bd848f", + "rev": "c76db6730b6bc150c49c9dcefc2323785516d1dc", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index eecd9ee..ebcd2ab 100644 --- a/flake.nix +++ b/flake.nix @@ -7,9 +7,12 @@ master.url = "github:nixos/nixpkgs/master"; # https://github.com/nix-community/home-manager/issues/2546 - home-manager.url = "github:nix-community/home-manager?rev=9de77227d7780518cfeaee5a917970247f3ecc56"; + home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + flake-utils.url = "github:numtide/flake-utils"; + flake-utils.inputs.nixpkgs.follows = "nixpkgs"; + sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; @@ -20,29 +23,26 @@ rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; # https://github.com/NixOS/nix/pull/5342 - nixpkgs-extra.url = "git+https://git.sr.ht/~boppy/nixpkgs-extra?ref=main"; - nixpkgs-extra.inputs.nixpkgs.follows = "nixpkgs"; + chaotic-nixpkgs.url = "git+https://git.sr.ht/~boppy/chaotic-nixpkgs?ref=main"; + chaotic-nixpkgs.inputs.nixpkgs.follows = "nixpkgs"; phocus = { url = "git+https://git.sr.ht/~boppy/phocus"; flake = false; }; wallpapers = { url = "git+https://git.sr.ht/~boppy/wall?ref=main"; flake = false; }; }; - outputs = { self, nixpkgs, ... } @ inputs: - { - nixosModules = import ./nixos/modules; - nixosConfigurations = import ./nixos/configurations inputs; + outputs = { self, nixpkgs, flake-utils, sops-nix, ... } @ inputs: + { + + nixosConfigurations = import ./nixos inputs; - homeModules = import ./home/modules; - homeConfigurations = import ./home/configurations inputs; + homeConfigurations = import ./home inputs; packages.x86_64-linux = (import ./packages inputs) - // self.lib.nixosConfigurationsAsPackages.x86_64-linux - // self.lib.homeConfigurationsAsPackages.x86_64-linux; + // self.lib.nixosConfigurationsAsPackages.x86_64-linux + // self.lib.homeConfigurationsAsPackages.x86_64-linux; checks = self.packages; lib = import ./lib inputs; - - non-flake = (import ./packages/non-flake inputs); }; } diff --git a/home/alpha/boopy.nix b/home/alpha/boopy.nix new file mode 100644 index 0000000..237eb11 --- /dev/null +++ b/home/alpha/boopy.nix @@ -0,0 +1,9 @@ +{ pkgs, nixpkgs, self, ... }: + +{ + config = { + activeProfiles = [ "browsing" "development" "messaging" "multimedia" "research" ]; + + programs.htop.settings.detailed_cpu_time = true; + }; +} diff --git a/home/configurations/boopy@alpha.nix b/home/configurations/boopy@alpha.nix deleted file mode 100644 index 237eb11..0000000 --- a/home/configurations/boopy@alpha.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs, nixpkgs, self, ... }: - -{ - config = { - activeProfiles = [ "browsing" "development" "messaging" "multimedia" "research" ]; - - programs.htop.settings.detailed_cpu_time = true; - }; -} diff --git a/home/configurations/default.nix b/home/configurations/default.nix deleted file mode 100644 index ac44363..0000000 --- a/home/configurations/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ self, ... } @ inputs: - -{ - "boopy@alpha" = self.lib.mkHome "boopy" "alpha" "x86_64-linux" inputs.nixpkgs "22.05"; -} diff --git a/home/default.nix b/home/default.nix new file mode 100644 index 0000000..62e6aea --- /dev/null +++ b/home/default.nix @@ -0,0 +1,22 @@ +{ self, nixpkgs, ... } @ inputs: + +{ + "boopy@alpha" = self.lib.mkHome { + username = "boopy"; + hostname = "alpha"; + system = "x86_64-linux"; + pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ inputs.rust-overlay.overlay ]; }; + + extraModules = [ + ./profiles + ./profiles/base + ./profiles/browsing + ./profiles/development + ./profiles/messaging + ./profiles/multimedia + ./profiles/research + ]; + + version = "22.05"; + }; +} diff --git a/home/modules/default.nix b/home/modules/default.nix deleted file mode 100644 index b096729..0000000 --- a/home/modules/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - "profiles" = import ./profiles; - "profiles/base" = import ./profiles/base; - "profiles/browsing" = import ./profiles/browsing; - "profiles/development" = import ./profiles/development; - "profiles/messaging" = import ./profiles/messaging; - "profiles/multimedia" = import ./profiles/multimedia; - "profiles/research" = import ./profiles/research; - - "programs/nixpkgs" = import ./programs/nixpkgs; - "programs/zshell" = import ./programs/zshell; - "programs/spotify-tui" = import ./programs/spotify-tui; - - "misc/home" = import ./misc/home; - "misc/neotheme" = import ./misc/neotheme; -} diff --git a/home/modules/misc/home/default.nix b/home/modules/misc/home/default.nix deleted file mode 100644 index 80232e7..0000000 --- a/home/modules/misc/home/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ config, pkgs, lib, nixpkgs, self, ... }: - -{ - profiles.base.enable = true; - fonts.fontconfig.enable = true; - - - home = { - stateVersion = "22.05"; - }; -} - - - - - - - - - - - - - - - - - - - - diff --git a/home/modules/profiles/base/config/dunst.nix b/home/modules/profiles/base/config/dunst.nix deleted file mode 100644 index 60ed15f..0000000 --- a/home/modules/profiles/base/config/dunst.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ neotheme }: - -with neotheme.colors; -{ - global = { - padding = 8; - width = "330"; - height = "500"; - origin = "top-right"; - offset = "8x25"; - notification_limit = 5; - frame_width = 2; - vertical_alignment = "center"; - horizontal_padding = 8; - icon_position = "left"; - corner_radius = 10; - - markup = "full"; - word_wrap = true; - show_indicators = false; - format = "%s\\n\\n%b"; - font = "Dina 10"; - frame_color = "#${color3}"; - separator_color = "auto"; - max_icon_size = 80; - }; - - urgency_low = { - foreground = "#${foreground}"; - background = "#${background}"; - frame_color = "#${color4}"; - timeout = 4; - }; - - urgency_normal = { - foreground = "#${foreground}"; - background = "#${background}"; - frame_color = "#${color3}"; - timeout = 8; - }; - - urgency_critical = { - foreground = "#${foreground}"; - background = "#${background}"; - frame_color = "#${color1}"; - }; -} diff --git a/home/modules/profiles/base/config/foot.nix b/home/modules/profiles/base/config/foot.nix deleted file mode 100644 index 08a38e7..0000000 --- a/home/modules/profiles/base/config/foot.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ neotheme }: - -with neotheme.colors; - -{ - main = { - term = "foot"; - font = "dina:size=10,JetBrainsMono Nerd Font:size=11"; - letter-spacing = 0; - line-height = 13; - dpi-aware = "yes"; - pad = "16x16 center"; - }; - - cursor.style = "beam"; - - colors = { - background = background; - foreground = foreground; - regular0 = color0; - regular1 = color1; - regular2 = color2; - regular3 = color3; - regular4 = color4; - regular5 = color5; - regular6 = color6; - regular7 = color7; - bright0 = bright0; - bright1 = bright1; - bright2 = bright2; - bright3 = bright3; - bright4 = bright4; - bright5 = bright5; - bright6 = bright6; - bright7 = bright7; - }; -} diff --git a/home/modules/profiles/base/config/sway.nix b/home/modules/profiles/base/config/sway.nix deleted file mode 100644 index 00dae28..0000000 --- a/home/modules/profiles/base/config/sway.nix +++ /dev/null @@ -1,204 +0,0 @@ -{ pkgs, neotheme }: - -with neotheme.colors; - -'' - exec autotiling - - # set modifiers - set $mod Mod4 - set $alt Mod1 - set $floating_modifier $mod - set $left h - set $down j - set $up k - set $right l - - # set terminal - - set $term foot - bindsym $mod+Return exec $term - - # set menu - set $menu "${pkgs.bemenu}/bin/bemenu-run -H 18 -l 5 --fn 'Iosevka Pure 10.5' -p 'run::' --tb '$primary' --tf '$color0' --hb '$primary' --hf '$color0'" - bindsym $mod+d exec $menu - - # change focus - # vim-style - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # arrows - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # move focused window - # vim-style - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # arrows - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - - # split - bindsym $mod+c split h # horizontal - bindsym $mod+v split v # vertical - - # fullscreen - bindsym $mod+e fullscreen toggle - - # floating - bindsym $mod+f floating toggle - - # kill focused - bindsym $mod+w kill - - font "pango:Iosevka Pure 5" - - # window rules - for_window [window_role="pop-up"] floating enable - for_window [window_role="bubble"] floating enable - for_window [window_role="task_dialog"] floating enable - for_window [window_role="Preferences"] floating enable - for_window [window_type="dialog"] floating enable - for_window [window_type="menu"] floating enable - for_window [class="mpv"] floating enable - for_window [class=".*"] inhibit_idle fullscreen - for_window [app_id=".*"] title_format "" - for_window [class=".*"] title_format "" - - titlebar_border_thickness 0 - titlebar_padding 0 0 - - # workspace names - set $ws1 "α" - set $ws2 "β" - set $ws3 "γ" - set $ws4 "δ" - set $ws5 "ε" - set $ws6 "ζ" - set $ws7 "η" - set $ws8 "θ" - set $ws9 "ι" - set $ws10 "κ" - - # switch to named ws - bindsym $mod+1 workspace $ws1 - bindsym $mod+2 workspace $ws2 - bindsym $mod+3 workspace $ws3 - bindsym $mod+4 workspace $ws4 - bindsym $mod+5 workspace $ws5 - bindsym $mod+6 workspace $ws6 - bindsym $mod+7 workspace $ws7 - bindsym $mod+8 workspace $ws8 - bindsym $mod+9 workspace $ws9 - bindsym $mod+0 workspace $ws10 - - # switch to prev/next ws - bindsym $mod+z workspace prev - bindsym $mod+x workspace next - - # move focused container to ws - bindsym $mod+Shift+1 move container to workspace $ws1 - bindsym $mod+Shift+2 move container to workspace $ws2 - bindsym $mod+Shift+3 move container to workspace $ws3 - bindsym $mod+Shift+4 move container to workspace $ws4 - bindsym $mod+Shift+5 move container to workspace $ws5 - bindsym $mod+Shift+6 move container to workspace $ws6 - bindsym $mod+Shift+7 move container to workspace $ws7 - bindsym $mod+Shift+8 move container to workspace $ws8 - bindsym $mod+Shift+9 move container to workspace $ws9 - bindsym $mod+Shift+0 move container to workspace $ws10 - bindsym $mod+Shift+z move container to workspace prev - bindsym $mod+Shift+x move container to workspace next - - # ws back-and-forth - workspace_auto_back_and_forth no - - # reload - bindsym $mod+q reload - - # application shortcuts - bindsym $mod+a exec qutebrowser - # bindsym $mod+Shift+a - - # Volume control - bindsym XF86AudioRaiseVolume exec ~/.local/bin/volume up - bindsym XF86AudioLowerVolume exec ~/.local/bin/volume down - bindsym XF86AudioMute exec ~/.local/bin/volume toggle - #HHKB - bindsym $mod+equal exec ~/.local/bin/volume up - bindsym $mod+minus exec ~/.local/bin/volume down - bindsym $mod+backslash exec ~/.local/bin/volume toggle - - # Brightness - bindsym XF86MonBrightnessDown exec brightnessctl -q set 10%- - bindsym XF86MonBrightnessUp exec brightnessctl -q set 10%+ - - # Screenshot - bindsym $mod+Print exec grimshot copy area - bindsym Print exec grimshot copy active - bindsym $alt+Print exec grimshot save screen - - # Toggle waybar - bindsym $mod+b exec pkill -USR1 waybar - - # Exit - bindsym $mod+Shift+q exec swaynag -t warning -m 'Do you really want to exit sway?' -b 'Yes, exit sway' 'swaymsg exit' - - # Aesthetics - default_border pixel 3 - hide_edge_borders --i3 smart - gaps inner 8 - smart_borders on - - set $color0 #${color0} - set $color1 #${color1} - set $color2 #${color2} - set $color3 #${color3} - set $color4 #${color4} - set $color5 #${color5} - set $color6 #${color6} - set $color7 #${color7} - set $color8 #${bright0} - set $color9 #${bright1} - set $color10 #${bright2} - set $color11 #${bright3} - set $color12 #${bright4} - set $color13 #${bright5} - set $color14 #${bright6} - set $color15 #${bright7} - - set $primary $color4 - set $muted #4d698f - - # class border backgr text indicator - client.focused $primary $primary $color0 $color5 - client.focused_inactive $muted $muted $color0 $color5 - client.unfocused $muted $muted $color7 $color5 - client.urgent $color10 $color10 $color0 $color5 - output "*" bg ${neotheme.wallpaper} fill - output "*" scale 1 - output "*" scale_filter nearest - - input type:touchpad { - tap enabled - natural_scroll enabled - } - - input type:keyboard { - repeat_rate 40 - repeat_delay 350 - xkb_layout us,se - # xkb_variant ,dvorak - xkb_options 'grp:alt_shift_toggle,caps:escape' - # xkb_options ctrl:swapcaps - } -'' diff --git a/home/modules/profiles/base/config/waybar-settings-new.nix b/home/modules/profiles/base/config/waybar-settings-new.nix deleted file mode 100644 index 4b55a05..0000000 --- a/home/modules/profiles/base/config/waybar-settings-new.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - # DISCLAIMER! On 22.05, do NOT use this until https://github.com/nix-community/home-manager/issues/2546 is solved. - layer = "bottom"; - position = "top"; - height = 17; - modules-left = [ "sway/workspaces" "sway/language" "cpu" "memory" ]; - modules-center = [ "clock" ]; - modules-right = [ "custom/weather" "pulseaudio" "network" ]; - - "sway/workspaces" = { - all-outputs = true; - - persistent_workspaces = { - "α" = [ ]; - "β" = [ ]; - "γ" = [ ]; - "δ" = [ ]; - "ε" = [ ]; - "ζ" = [ ]; - "η" = [ ]; - "θ" = [ ]; - "ι" = [ ]; - "κ" = [ ]; - }; - }; - - "sway/language" = { - format = " {long}"; - }; - - "clock" = { - interval = 10; - format = "{: %m/%d/%Y %I:%M %p}"; - }; - - "cpu" = { - interval = 5; - format = " {load}%  {usage}%"; - }; - - "custom/weather" = { - format = " {}"; - exec = "curl 'wttr.in/?format='%t+-+%x+%C++%w'&M'"; - interval = 3600; - }; - - "network" = { - interface = "enp4s0"; - format = " {ifname}"; - format-wifi = " {essid}"; - format-ethernet = " {ifname} {ipaddr}"; - format-disconnected = " Disconnected"; - max-length = 50; - }; - - "pulseaudio" = { - format = "{icon} {volume}%"; - format-muted = "婢 Muted"; - format-source = ""; - format-source-muted = "Muted"; - format-icons.default = [ " " " " " " ]; - }; - - "memory" = { - interval = 5; - format = " {used:0.1f}G / {total:0.1f}G ({percentage}%)"; - }; -} diff --git a/home/modules/profiles/base/config/waybar-settings.nix b/home/modules/profiles/base/config/waybar-settings.nix deleted file mode 100644 index fb691c0..0000000 --- a/home/modules/profiles/base/config/waybar-settings.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ neotheme }: - -with neotheme.colors; -{ - layer = "bottom"; - position = "top"; - height = 21; - modules-left = [ "pulseaudio" "custom/seperator" "cpu" "custom/seperator" "memory" ]; - modules-center = [ "sway/workspaces" ]; - modules-right = [ "clock" ]; - - modules = { - "sway/workspaces" = { - all-outputs = true; - persistent_workspaces = { - "α" = [ ]; - "β" = [ ]; - "γ" = [ ]; - "δ" = [ ]; - "ε" = [ ]; - "ζ" = [ ]; - "η" = [ ]; - "θ" = [ ]; - "ι" = [ ]; - "κ" = [ ]; - }; - }; - - "clock" = { - interval = 10; - format = " {:%A, %b %d %H:%M}"; - }; - - "cpu" = { - interval = 5; - format = " {usage:3}%"; - }; - - "pulseaudio" = { - format = "{icon} {volume}%"; - format-muted = "ﱝ Muted"; - format-icons.default = [ " " " " " " ]; - }; - - "memory" = { - interval = 5; - format = " {used:0.2f}GiB"; - }; - - "custom/seperator" = { - format = "|"; - interval = "once"; - tooltip = false; - }; - }; -} diff --git a/home/modules/profiles/base/config/waybar-style.nix b/home/modules/profiles/base/config/waybar-style.nix deleted file mode 100644 index e3f30f6..0000000 --- a/home/modules/profiles/base/config/waybar-style.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ neotheme }: - -with neotheme.colors; - -'' - * { - border: none; - border-radius: 0; - font-family: "JetBrainsMono Nerd Font"; - font-size: 14px; - min-height: 0; - } - - window#waybar { - background: #${background}; - color: #${foreground}; - border-bottom: 1px solid #${bright0}; - } - - #workspaces button { - padding: 0 8px; - background: #${background}; - color: #${foreground}; - border-bottom: 1px solid #${bright0}; - } - - #workspaces button.focused { - color: #${foreground}; - background-color: #${bright0}; - } - - #workspaces button.urgent { - color: #${color1}; - } - - #workspaces button.persistent { - color: #${alt1}; - } - - #workspaces button:hover { - color: #${foreground}; - background: #${alt1}; - box-shadow: inherit; - text-shadow: inherit; - } - - #clock, - #cpu, - #temperature, - #backlight, - #network, - #memory, - #language, - #pulseaudio, - #tray, - #mode, - #mpd { - padding: 0.2rem 0.6rem; - margin: 0 2px; - color: #${foreground}; - background-color: #${background}; - border-bottom: 1px solid #${bright0}; - } - - @keyframes blink { - to { - background-color: #${color4}; - color: #${background}; - } - } - - #custom-seperator { - color: #${bright0}; - background-color: #${background}; - border-bottom: 1px solid #${bright0}; - } -'' diff --git a/home/modules/profiles/base/default.nix b/home/modules/profiles/base/default.nix deleted file mode 100644 index 3d75618..0000000 --- a/home/modules/profiles/base/default.nix +++ /dev/null @@ -1,176 +0,0 @@ -{ config, lib, pkgs, self, ... }: -let - cfg = config.profiles.base; - - neotheme = config.neotheme; - - inherit (self.packages.x86_64-linux) neovim iosevka-pure-bin phocus; - - inherit (self.non-flake) wallpapers; -in -{ - options.profiles.base.enable = lib.mkEnableOption - "The base profile, should be always enabled"; - - config = lib.mkIf cfg.enable { - home.sessionVariables = rec { - EDITOR = "nvim"; - VISUAL = "nvim"; - GIT_EDITOR = EDITOR; - }; - - gtk.enable = true; - gtk.iconTheme.package = pkgs.papirus-icon-theme; - gtk.iconTheme.name = "Papirus-Dark"; - gtk.theme.package = phocus; - gtk.theme.name = "phocus"; - - home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ-AA"; - - neotheme = { - name = "Nightlamp Theme - Iceberg Variant"; - identifier = "nightlamp-iceberg"; - - colors = { - background = "18191f"; - foreground = "cbc0ab"; - alt0 = "404147"; - alt1 = "54555b"; - color0 = "222329"; - color1 = "b17f81"; - color2 = "8aa387"; - color3 = "d4ae80"; - color4 = "84a0c6"; - color5 = "a093c7"; - color6 = "7aacaa"; - color7 = "d0d0c7"; - bright0 = "36373d"; - bright1 = "c59395"; - bright2 = "9eb79b"; - bright3 = "e8c294"; - bright4 = "a2bee4"; - bright5 = "beb1e5"; - bright6 = "8ec0be"; - bright7 = "e4e4db"; - }; - - wallpaper = "${wallpapers}/nixos/nix-glow-fg-d4ae80.png"; - }; - - home.keyboard.layout = "us"; - home.packages = [ - pkgs.hydra-check - neovim - - # Fonts - iosevka-pure-bin - pkgs.dina-font - pkgs.sarasa-gothic - pkgs.scientifica - pkgs.jetbrains-mono - pkgs.twemoji-color-font - pkgs.symbola - pkgs.emacs-all-the-icons-fonts - (pkgs.nerdfonts.override { fonts = [ "Iosevka" "JetBrainsMono" ]; }) - ]; - - - wayland.windowManager.sway = { - enable = true; - - config = { - bars = [{ command = "${pkgs.waybar}/bin/waybar"; }]; - keybindings = { }; - }; - - extraConfig = import ./config/sway.nix { inherit pkgs neotheme; }; - }; - - programs = { - bat.enable = true; - direnv.enable = true; - direnv.nix-direnv.enable = true; - exa.enable = true; - exa.enableAliases = true; - home-manager.enable = true; - htop.enable = true; - - foot = { - enable = true; - - settings = import ./config/foot.nix { inherit neotheme; }; - }; - - password-store.enable = true; - - waybar = { - enable = config.wayland.windowManager.sway.enable; - - settings = [ (import ./config/waybar-settings.nix { inherit neotheme; }) ]; - - style = import ./config/waybar-style.nix { inherit neotheme; }; - }; - - zsh = { - enable = true; - - enableCompletion = true; - enableAutosuggestions = true; - - autocd = true; - - dotDir = ".config/zsh"; - - plugins = [ - { - name = "powerlevel10k"; - src = pkgs.zsh-powerlevel10k; - file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; - } - - { - name = "powerlevel10k-config"; - src = lib.cleanSource ./p10k-config; - file = "p10k.zsh"; - } - - { - name = "zsh-syntax-highlighting"; - src = pkgs.fetchFromGitHub { - owner = "zsh-users"; - repo = "zsh-syntax-highlighting"; - rev = "0.7.1"; - sha256 = "03r6hpb5fy4yaakqm3lbf4xcvd408r44jgpv4lnzl9asp4sb9qc0"; - }; - } - ]; - - shellAliases = config.programs.zshell.aliases; - }; - - zshell.aliases = { - e = "nvim"; - }; - - zoxide = { - enable = true; - enableZshIntegration = true; - }; - }; - - services = { - dunst = { - enable = true; - settings = import ./config/dunst.nix { inherit neotheme; }; - }; - - wlsunset = { - enable = true; - latitude = "36.5"; - longitude = "127.2"; - }; - }; - - nixpkgs.allowedUnfree = [ "symbola" ]; - }; -} diff --git a/home/modules/profiles/base/p10k-config/p10k.zsh b/home/modules/profiles/base/p10k-config/p10k.zsh deleted file mode 100644 index aa6bc2c..0000000 --- a/home/modules/profiles/base/p10k-config/p10k.zsh +++ /dev/null @@ -1,1604 +0,0 @@ -# Generated by Powerlevel10k configuration wizard on 2022-01-02 at 08:00 UTC. -# Based on romkatv/powerlevel10k/config/p10k-lean-8colors.zsh. -# Wizard options: nerdfont-complete + powerline, large icons, unicode, lean_8colors, -# 24h time, 2 lines, disconnected, no frame, sparse, few icons, concise, -# transient_prompt, instant_prompt=verbose. -# Type `p10k configure` to generate another config. -# -# Config for Powerlevel10k with 8-color lean prompt style. Type `p10k configure` to generate -# your own config based on it. -# -# Tip: Looking for a nice color? Here's a one-liner to print colormap. -# -# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done - -# Temporarily change options. -'builtin' 'local' '-a' 'p10k_config_opts' -[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') -[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') -[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') -'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' - -() { - emulate -L zsh -o extended_glob - - # Unset all configuration options. This allows you to apply configuration changes without - # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. - unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' - - # Zsh >= 5.1 is required. - autoload -Uz is-at-least && is-at-least 5.1 || return - - # The list of segments shown on the left. Fill it with the most important segments. - typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( - # =========================[ Line #1 ]========================= - # os_icon # os identifier - dir # current directory - vcs # git status - # =========================[ Line #2 ]========================= - newline # \n - prompt_char # prompt symbol - ) - - # The list of segments shown on the right. Fill it with less important segments. - # Right prompt on the last prompt line (where you are typing your commands) gets - # automatically hidden when the input line reaches it. Right prompt above the - # last prompt line gets hidden if it would overlap with left prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( - # =========================[ Line #1 ]========================= - status # exit code of the last command - command_execution_time # duration of the last command - background_jobs # presence of background jobs - direnv # direnv status (https://direnv.net/) - asdf # asdf version manager (https://github.com/asdf-vm/asdf) - virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) - anaconda # conda environment (https://conda.io/) - pyenv # python environment (https://github.com/pyenv/pyenv) - goenv # go environment (https://github.com/syndbg/goenv) - nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) - nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) - nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) - # node_version # node.js version - # go_version # go version (https://golang.org) - # rust_version # rustc version (https://www.rust-lang.org) - # dotnet_version # .NET version (https://dotnet.microsoft.com) - # php_version # php version (https://www.php.net/) - # laravel_version # laravel php framework version (https://laravel.com/) - # java_version # java version (https://www.java.com/) - # package # name@version from package.json (https://docs.npmjs.com/files/package.json) - rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) - rvm # ruby version from rvm (https://rvm.io) - fvm # flutter version management (https://github.com/leoafarias/fvm) - luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) - jenv # java version from jenv (https://github.com/jenv/jenv) - plenv # perl version from plenv (https://github.com/tokuhirom/plenv) - phpenv # php version from phpenv (https://github.com/phpenv/phpenv) - scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) - haskell_stack # haskell version from stack (https://haskellstack.org/) - kubecontext # current kubernetes context (https://kubernetes.io/) - terraform # terraform workspace (https://www.terraform.io) - aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) - aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) - azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) - gcloud # google cloud cli account and project (https://cloud.google.com/) - google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) - context # user@hostname - nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) - ranger # ranger shell (https://github.com/ranger/ranger) - nnn # nnn shell (https://github.com/jarun/nnn) - xplr # xplr shell (https://github.com/sayanarijit/xplr) - vim_shell # vim shell indicator (:sh) - midnight_commander # midnight commander shell (https://midnight-commander.org/) - nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) - # vpn_ip # virtual private network indicator - # load # CPU load - # disk_usage # disk usage - # ram # free RAM - # swap # used swap - todo # todo items (https://github.com/todotxt/todo.txt-cli) - timewarrior # timewarrior tracking status (https://timewarrior.net/) - taskwarrior # taskwarrior task count (https://taskwarrior.org/) - time # current time - # =========================[ Line #2 ]========================= - newline # \n - # ip # ip address and bandwidth usage for a specified network interface - # public_ip # public IP address - # proxy # system-wide http/https/ftp proxy - # battery # internal battery - # wifi # wifi speed - # example # example user-defined segment (see prompt_example function below) - ) - - # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. - typeset -g POWERLEVEL9K_MODE=nerdfont-complete - # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid - # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. - typeset -g POWERLEVEL9K_ICON_PADDING=moderate - - # Basic style options that define the overall look of your prompt. You probably don't want to - # change them. - typeset -g POWERLEVEL9K_BACKGROUND= # transparent background - typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace - typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space - typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol - - # When set to true, icons appear before content on both sides of the prompt. When set - # to false, icons go after content. If empty or not set, icons go before content in the left - # prompt and after content in the right prompt. - # - # You can also override it for a specific segment: - # - # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false - # - # Or for a specific segment in specific state: - # - # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false - typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true - - # Add an empty line before each prompt. - typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true - - # Connect left prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= - # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= - - # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL= - - # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll - # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and - # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below. - typeset -g POWERLEVEL9K_SHOW_RULER=false - typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·' - typeset -g POWERLEVEL9K_RULER_FOREGROUND=7 - - # Filler between left and right prompt on the first prompt line. You can set it to '·' or '─' - # to make it easier to see the alignment between left and right prompt and to separate prompt - # from command output. It serves the same purpose as ruler (see above) without increasing - # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false - # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact - # prompt. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' - if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then - # The color of the filler. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=7 - # Add a space between the end of left prompt and the filler. - typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' ' - # Add a space between the filler and the start of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' ' - # Start filler from the edge of the screen if there are no left segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' - # End filler on the edge of the screen if there are no right segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' - fi - - #################################[ os_icon: os identifier ]################################## - # OS identifier color. - typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND= - # Custom icon. - # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' - - ################################[ prompt_char: prompt symbol ]################################ - # Green prompt symbol if the last command succeeded. - typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=5 - # Red prompt symbol if the last command failed. - typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1 - # Default prompt symbol. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' - # Prompt symbol in command vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' - # Prompt symbol in visual vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' - # Prompt symbol in overwrite vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' - typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true - # No line terminator if prompt_char is the last segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='' - # No line introducer if prompt_char is the first segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - - ##################################[ dir: current directory ]################################## - # Default current directory color. - typeset -g POWERLEVEL9K_DIR_FOREGROUND=4 - # If directory is too long, shorten some of its segments to the shortest possible unique - # prefix. The shortened directory can be tab-completed to the original. - typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique - # Replace removed segment suffixes with this symbol. - typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= - # Color of the shortened directory segments. - typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=4 - # Color of the anchor directory segments. Anchor segments are never shortened. The first - # segment is always an anchor. - typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=4 - # Set to true to display anchor directory segments in bold. - typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false - # Don't shorten directories that contain any of these files. They are anchors. - local anchor_files=( - .bzr - .citc - .git - .hg - .node-version - .python-version - .go-version - .ruby-version - .lua-version - .java-version - .perl-version - .php-version - .tool-version - .shorten_folder_marker - .svn - .terraform - CVS - Cargo.toml - composer.json - go.mod - package.json - stack.yaml - ) - typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" - # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains - # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is - # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) - # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers - # and other directories don't. - # - # Optionally, "first" and "last" can be followed by ":" where is an integer. - # This moves the truncation point to the right (positive offset) or to the left (negative offset) - # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" - # respectively. - typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false - # Don't shorten this many last directory segments. They are anchors. - typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 - # Shorten directory if it's longer than this even if there is space for it. The value can - # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, - # directory will be shortened only when prompt doesn't fit or when other parameters demand it - # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). - # If set to `0`, directory will always be shortened to its minimum length. - typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this - # many columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least - # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 - # If set to true, embed a hyperlink into the directory. Useful for quickly - # opening a directory in the file manager simply by clicking the link. - # Can also be handy when the directory is shortened, as it allows you to see - # the full directory that was used in previous commands. - typeset -g POWERLEVEL9K_DIR_HYPERLINK=false - - # Enable special styling for non-writable directories. See POWERLEVEL9K_LOCK_ICON and - # POWERLEVEL9K_DIR_CLASSES below. - typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2 - - # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON - # and POWERLEVEL9K_DIR_CLASSES below. - typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 - - # The default icon shown next to non-writable and non-existent directories when - # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. - # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' - - # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different - # directories. It must be an array with 3 * N elements. Each triplet consists of: - # - # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with - # extended_glob option enabled. - # 2. Directory class for the purpose of styling. - # 3. An empty string. - # - # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. - # - # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories - # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=( - # '~/work(|/*)' WORK '' - # '~(|/*)' HOME '' - # '*' DEFAULT '') - # - # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one - # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or - # WORK_NON_EXISTENT. - # - # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an - # option to define custom colors and icons for different directory classes. - # - # # Styling for WORK. - # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=4 - # - # # Styling for WORK_NOT_WRITABLE. - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=4# - # - # Styling for WORK_NON_EXISTENT. - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=4 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=4 - # - # If a styling parameter isn't explicitly defined for some class, it falls back to the classless - # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls - # back to POWERLEVEL9K_DIR_FOREGROUND. - # - typeset -g POWERLEVEL9K_DIR_CLASSES=() - - # Custom prefix. - # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin ' - - #####################################[ vcs: git status ]###################################### - # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon. - typeset -g POWERLEVEL9K_VCS_BRANCH_ICON= - - # Untracked files icon. It's really a question mark, your font isn't broken. - # Change the value of this parameter to show a different icon. - typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' - - # Formatter for Git status. - # - # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. - # - # You can edit the function to customize how Git status looks. - # - # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: - # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. - function my_git_formatter() { - emulate -L zsh - - if [[ -n $P9K_CONTENT ]]; then - # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from - # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. - typeset -g my_git_format=$P9K_CONTENT - return - fi - - if (( $1 )); then - # Styling for up-to-date Git status. - local meta='%f' # default foreground - local clean='%2F' # green foreground - local modified='%3F' # yellow foreground - local untracked='%4F' # blue foreground - local conflicted='%1F' # red foreground - else - # Styling for incomplete and stale Git status. - local meta='%f' # default foreground - local clean='%f' # default foreground - local modified='%f' # default foreground - local untracked='%f' # default foreground - local conflicted='%f' # default foreground - fi - - local res - - if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then - local branch=${(V)VCS_STATUS_LOCAL_BRANCH} - # If local branch name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show local branch name in full without truncation, delete the next line. - (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line - res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" - fi - - if [[ -n $VCS_STATUS_TAG - # Show tag only if not on a branch. - # Tip: To always show tag, delete the next line. - && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line - ]]; then - local tag=${(V)VCS_STATUS_TAG} - # If tag name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show tag name in full without truncation, delete the next line. - (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line - res+="${meta}#${clean}${tag//\%/%%}" - fi - - # Display the current Git commit if there is no branch and no tag. - # Tip: To always display the current Git commit, delete the next line. - [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line - res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" - - # Show tracking branch name if it differs from local branch. - if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then - res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" - fi - - # Display "wip" if the latest commit's summary contains "wip" or "WIP". - if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then - res+=" ${modified}wip" - fi - - # ⇣42 if behind the remote. - (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" - # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. - (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " - (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" - # ⇠42 if behind the push remote. - (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" - (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " - # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. - (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" - # *42 if have stashes. - (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" - # 'merge' if the repo is in an unusual state. - [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" - # ~42 if have merge conflicts. - (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" - # +42 if have staged changes. - (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" - # !42 if have unstaged changes. - (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" - # ?42 if have untracked files. It's really a question mark, your font isn't broken. - # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. - # Remove the next line if you don't want to see untracked files at all. - (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" - # "─" if the number of unstaged files is unknown. This can happen due to - # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower - # than the number of files in the Git index, or due to bash.showDirtyState being set to false - # in the repository config. The number of staged and untracked files may also be unknown - # in this case. - (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" - - typeset -g my_git_format=$res - } - functions -M my_git_formatter 2>/dev/null - - # Don't count the number of unstaged, untracked and conflicted files in Git repositories with - # more than this many files in the index. Negative value means infinity. - # - # If you are working in Git repositories with tens of millions of files and seeing performance - # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output - # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's - # config: `git config bash.showDirtyState false`. - typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 - - # Don't show Git status in prompt for repositories whose workdir matches this pattern. - # For example, if set to '~', the Git repository at $HOME/.git will be ignored. - # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. - typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' - - # Disable the default Git status formatting. - typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true - # Install our own Git status formatter. - typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}' - typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}' - # Enable counters for staged, unstaged, etc. - typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 - - # Icon color. - typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=2 - typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR= - # Custom icon. - typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION= - # Custom prefix. - # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon ' - - # Show status of repositories of these types. You can add svn and/or hg if you are - # using them. If you do, your prompt may become slow even when your current directory - # isn't in an svn or hg reposotiry. - typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) - - # These settings are used for repositories other than Git or when gitstatusd fails and - # Powerlevel10k has to fall back to using vcs_info. - typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=2 - typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=2 - typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=3 - - ##########################[ status: exit code of the last command ]########################### - # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and - # style them independently from the regular OK and ERROR state. - typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true - - # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as - # it will signify success by turning green. - typeset -g POWERLEVEL9K_STATUS_OK=false - typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' - - # Status when some part of a pipe command fails but the overall exit status is zero. It may look - # like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' - - # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as - # it will signify error by turning red. - typeset -g POWERLEVEL9K_STATUS_ERROR=false - typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=1 - typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' - - # Status when the last command was terminated by a signal. - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1 - # Use terse signal names: "INT" instead of "SIGINT(2)". - typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' - - # Status when some part of a pipe command fails and the overall exit status is also non-zero. - # It may look like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=1 - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' - - ###################[ command_execution_time: dura