aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2021-12-28 01:11:25 +0900
committersefidel <contact@sefidel.net>2021-12-28 01:12:48 +0900
commit56992b8c945d497a623fe693847c91235be1ae02 (patch)
tree102ff8c8872d7e14ce3e3dba69bf16685374504e
downloadnixrc-56992b8c945d497a623fe693847c91235be1ae02.zip
initial commit
-rw-r--r--.gitignore2
-rw-r--r--LICENSE.md17
-rw-r--r--README.md1
-rw-r--r--flake.lock199
-rw-r--r--flake.nix42
-rw-r--r--home/configurations/boopy@alpha.nix9
-rw-r--r--home/configurations/default.nix5
-rw-r--r--home/modules/default.nix13
-rw-r--r--home/modules/misc/home/default.nix31
-rw-r--r--home/modules/profiles/base/config/foot.nix33
-rw-r--r--home/modules/profiles/base/config/sway.nix202
-rw-r--r--home/modules/profiles/base/config/waybar-settings-new.nix68
-rw-r--r--home/modules/profiles/base/config/waybar-settings.nix68
-rw-r--r--home/modules/profiles/base/config/waybar-style.nix97
-rw-r--r--home/modules/profiles/base/default.nix123
-rw-r--r--home/modules/profiles/base/p10k-config/p10k.zsh1469
-rw-r--r--home/modules/profiles/browsing/default.nix13
-rw-r--r--home/modules/profiles/default.nix13
-rw-r--r--home/modules/profiles/development/default.nix78
-rw-r--r--home/modules/profiles/messaging/default.nix14
-rw-r--r--home/modules/profiles/misc/default.nix14
-rw-r--r--home/modules/programs/nixpkgs/default.nix20
-rw-r--r--home/modules/programs/zshell/default.nix44
-rw-r--r--lib/default.nix8
-rw-r--r--lib/home_configurations_as_packages.nix12
-rw-r--r--lib/mk_home.nix20
-rw-r--r--lib/mk_system.nix25
-rw-r--r--lib/nixos_configurations_as_packages.nix12
-rw-r--r--nixos/configurations/alpha.nix112
-rw-r--r--nixos/configurations/default.nix5
-rw-r--r--nixos/configurations/hardware/alpha.nix55
-rw-r--r--nixos/modules/cachix/caches/nix-community.nix12
-rw-r--r--nixos/modules/cachix/default.nix13
-rw-r--r--nixos/modules/default.nix5
-rw-r--r--nixos/modules/flake.nix12
-rw-r--r--nixos/modules/nix.nix34
-rw-r--r--packages/default.nix12
37 files changed, 2912 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..87a3018
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+result
+*.qcow2
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..1384694
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,17 @@
+ISC License
+===================================
+
+Copyright (c) 2021, boopy <hi@boopy.dev>
+
+Permission to use, copy, modify, and/or distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright notice
+and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a698ac9
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# nixrc
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..2dd7686
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,199 @@
+{
+ "nodes": {
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1627913399,
+ "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "flake-utils": {
+ "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_2": {
+ "locked": {
+ "lastModified": 1638122382,
+ "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1638150501,
+ "narHash": "sha256-aWH3MRmjUtx8ciSGLegBJC5mhymsuroHPs74ZldrNTU=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "9de77227d7780518cfeaee5a917970247f3ecc56",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "9de77227d7780518cfeaee5a917970247f3ecc56",
+ "type": "github"
+ }
+ },
+ "master": {
+ "locked": {
+ "lastModified": 1640618094,
+ "narHash": "sha256-EU/+hGhTdsUcdNV0kb2+U/DH7R41/mMlweFzLuEplhg=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "0736e7e3a90fb6d2ff6e11c077918220a253c9bc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "master",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "neovim": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "dir": "contrib",
+ "lastModified": 1640605963,
+ "narHash": "sha256-1edQitEq3uWad0xLaWSNwukW7PCmE+JERCNoWno8tZ4=",
+ "owner": "neovim",
+ "repo": "neovim",
+ "rev": "9804a2870f6f308f788f939f52958e3fbd2adaac",
+ "type": "github"
+ },
+ "original": {
+ "dir": "contrib",
+ "owner": "neovim",
+ "repo": "neovim",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1640554034,
+ "narHash": "sha256-gf7uo/CXrsna/S4Yfaklg8BnyRkDvo3poIzXCClyYaw=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "bd241e39f366eb7a41ea94f04f7af5c9508da632",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable-small",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-extra": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "flake-utils": "flake-utils_2",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1640611846,
+ "narHash": "sha256-zktrWAhvlPPj+atu9jlkCdECUTB+vIbrGwBFMs1qThg=",
+ "ref": "main",
+ "rev": "94c32416b1a332060e58bb4d4c39f692eb6ced09",
+ "revCount": 1,
+ "type": "git",
+ "url": "https://git.sr.ht/~boppy/nixpkgs-extra"
+ },
+ "original": {
+ "ref": "main",
+ "type": "git",
+ "url": "https://git.sr.ht/~boppy/nixpkgs-extra"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "master": "master",
+ "neovim": "neovim",
+ "nixpkgs": "nixpkgs",
+ "nixpkgs-extra": "nixpkgs-extra",
+ "sops-nix": "sops-nix",
+ "wallpapers": "wallpapers"
+ }
+ },
+ "sops-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1638821683,
+ "narHash": "sha256-oyqALhGijy2ZQxFSACrcC+Z8MzYLiomKCr9FQXVZ47U=",
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "rev": "afe00100b16648c1d79e62926caacac561df93a5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "type": "github"
+ }
+ },
+ "wallpapers": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1640621312,
+ "narHash": "sha256-NGs2QRyMGc5HBNxCLQgCswCekerXhFNGh6NmCdiONo4=",
+ "ref": "main",
+ "rev": "4bb6eae09751cc23e89ebd4158fc779eb6cb919f",
+ "revCount": 1,
+ "type": "git",
+ "url": "https://git.sr.ht/~boppy/wall"
+ },
+ "original": {
+ "ref": "main",
+ "type": "git",
+ "url": "https://git.sr.ht/~boppy/wall"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..1abccf3
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,42 @@
+{
+ description = "boopy's nix flake dotfiles";
+
+ inputs = {
+ # Flake inputs
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
+ 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.inputs.nixpkgs.follows = "nixpkgs";
+
+ sops-nix.url = "github:Mic92/sops-nix";
+ sops-nix.inputs.nixpkgs.follows = "nixpkgs";
+
+ neovim.url = "github:neovim/neovim?dir=contrib";
+ neovim.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";
+
+ 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;
+
+ homeModules = import ./home/modules;
+ homeConfigurations = import ./home/configurations inputs;
+
+ packages.x86_64-linux = (import ./packages inputs)
+ // self.lib.nixosConfigurationsAsPackages.x86_64-linux
+ // self.lib.homeConfigurationsAsPackages.x86_64-linux;
+
+ checks = self.packages;
+
+ lib = import ./lib inputs;
+ };
+}
diff --git a/home/configurations/boopy@alpha.nix b/home/configurations/boopy@alpha.nix
new file mode 100644
index 0000000..af71030
--- /dev/null
+++ b/home/configurations/boopy@alpha.nix
@@ -0,0 +1,9 @@
+{ pkgs, nixpkgs, self, ... }:
+
+{
+ config = {
+ activeProfiles = [ "browsing" "development" "messaging" "misc" ];
+
+ programs.htop.settings.detailed_cpu_time = true;
+ };
+}
diff --git a/home/configurations/default.nix b/home/configurations/default.nix
new file mode 100644
index 0000000..ac44363
--- /dev/null
+++ b/home/configurations/default.nix
@@ -0,0 +1,5 @@
+{ self, ... } @ inputs:
+
+{
+ "boopy@alpha" = self.lib.mkHome "boopy" "alpha" "x86_64-linux" inputs.nixpkgs "22.05";
+}
diff --git a/home/modules/default.nix b/home/modules/default.nix
new file mode 100644
index 0000000..d290e17
--- /dev/null
+++ b/home/modules/default.nix
@@ -0,0 +1,13 @@
+{
+ "profiles" = import ./profiles;
+ "profiles/base" = import ./profiles/base;
+ "profiles/browsing" = import ./profiles/browsing;
+ "profiles/development" = import ./profiles/development;
+ "profiles/messaging" = import ./profiles/messaging;
+ "profiles/misc" = import ./profiles/misc;
+
+ "programs/nixpkgs" = import ./programs/nixpkgs;
+ "programs/zshell" = import ./programs/zshell;
+
+ "misc/home" = import ./misc/home;
+}
diff --git a/home/modules/misc/home/default.nix b/home/modules/misc/home/default.nix
new file mode 100644
index 0000000..80232e7
--- /dev/null
+++ b/home/modules/misc/home/default.nix
@@ -0,0 +1,31 @@
+{ 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/foot.nix b/home/modules/profiles/base/config/foot.nix
new file mode 100644
index 0000000..d53dba7
--- /dev/null
+++ b/home/modules/profiles/base/config/foot.nix
@@ -0,0 +1,33 @@
+{
+ main = {
+ term = "foot";
+ font = "dina:size=10,Liga SFMono Nerd Font:size=10";
+ letter-spacing = 0;
+ line-height = 13;
+ dpi-aware = "yes";
+ pad = "16x16 center";
+ };
+
+ cursor.style = "beam";
+
+ colors = {
+ background = "18191f";
+ foreground = "cbc0ab";
+ regular0 = "222329";
+ regular1 = "b17f81";
+ regular2 = "8aa387";
+ regular3 = "d4ae80";
+ regular4 = "8896ae";
+ regular5 = "c495a2";
+ regular6 = "7aacaa";
+ regular7 = "d0d0c7";
+ bright0 = "36373d";
+ bright1 = "c59395";
+ bright2 = "9eb79b";
+ bright3 = "e8c294";
+ bright4 = "9caac2";
+ bright5 = "d8a9b6";
+ bright6 = "8ec0be";
+ bright7 = "e4e4db";
+ };
+} \ No newline at end of file
diff --git a/home/modules/profiles/base/config/sway.nix b/home/modules/profiles/base/config/sway.nix
new file mode 100644
index 0000000..d04673e
--- /dev/null
+++ b/home/modules/profiles/base/config/sway.nix
@@ -0,0 +1,202 @@
+{ pkgs, wallpapers }:
+
+''
+ 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 footclient
+ bindsym $mod+Return exec $term
+
+ # set menu
+ set $menu "${pkgs.bemenu}/bin/bemenu-run -H 18 -l 5 --fn 'Iosevka Pure 10.5' --tb '#c495a2' --tf '#18191f' --hb '#c495a2' --hf '#18191f'"
+ 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 sublime4
+ bindsym $mod+Shift+a exec brave
+
+ # 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 #222329
+ set $color1 #b17f81
+ set $color2 #8aa387
+ set $color3 #d4ae80
+ set $color4 #8896ae
+ set $color5 #c495a2
+ set $color6 #7aacaa
+ set $color7 #d0d0c7
+ set $color8 #36373d
+ set $color9 #c59395
+ set $color10 #9eb79b
+ set $color11 #e8c294
+ set $color12 #9caac2
+ set $color13 #d8a9b6
+ set $color14 #8ec0be
+ set $color15 #e4e4db
+
+ set $primary $color5
+ set $muted #b58693
+
+ # 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 ${wallpapers}/nixos/nix-glow-gruvbox.png 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
new file mode 100644
index 0000000..4b55a05
--- /dev/null
+++ b/home/modules/profiles/base/config/waybar-settings-new.nix
@@ -0,0 +1,68 @@
+{
+ # 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
new file mode 100644
index 0000000..e208895
--- /dev/null
+++ b/home/modules/profiles/base/config/waybar-settings.nix
@@ -0,0 +1,68 @@
+{
+ layer = "bottom";
+ position = "top";
+ height = 17;
+ modules-left = [ "sway/workspaces" "sway/language" "cpu" "memory" ];
+ modules-center = [ "clock" ];
+ modules-right = [ "custom/weather" "pulseaudio" "network" ];
+
+ modules = {
+ "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 = " {usage:3}%";
+ };
+
+ "custom/weather" = {
+ format = " {}";
+ exec = "curl 'wttr.in/?format='%t+-+%x+%C++%w'&M'";
+ interval = 3600;
+ };
+
+ "network" = {
+ interval = 5;
+ interface = "enp4s0";
+ format = " {ifname}";
+ format-wifi = " {essid}  {bandwidthUpBits}  {bandwidthDownBits}";
+ format-ethernet = "  {bandwidthUpBits:>}  {bandwidthDownBits:>}";
+ format-disconnected = " Disconnected";
+ max-length = 50;
+ };
+
+ "pulseaudio" = {
+ format = "{icon} {volume}%";
+ format-muted = "ﱝ Muted";
+ format-icons.default = [ " " " " " " ];
+ };
+
+ "memory" = {
+ interval = 5;
+ format = " {used:0.1f}G / {total:0.1f}G ({percentage:3}%)";
+ };
+ };
+}
diff --git a/home/modules/profiles/base/config/waybar-style.nix b/home/modules/profiles/base/config/waybar-style.nix
new file mode 100644
index 0000000..45edf60
--- /dev/null
+++ b/home/modules/profiles/base/config/waybar-style.nix
@@ -0,0 +1,97 @@
+''
+ * {
+ border: none;
+ border-radius: 0;
+ font-family: "JetBrainsMono Nerd Font";
+ font-size: 14px;
+ min-height: 0;
+ }
+
+ window#waybar {
+ background: #18191f;
+ color: #cbc0ab;
+ }
+
+ #workspaces button {
+ padding: 0 4px;
+ background: #c495a2;
+ color: #18191f;
+ border-bottom: 2px solid #c495a2;
+ }
+
+ #workspaces button.focused {
+ background: #c495a2;
+ border-bottom: 2px solid #18191f;
+ }
+
+ #clock,
+ #cpu,
+ #battery,
+ #temperature,
+ #backlight,
+ #network,
+ #memory,
+ #language,
+ #pulseaudio,
+ #tray,
+ #mode,
+ #mpd,
+ #custom-weather {
+ padding: 0 6px;
+ margin: 0;
+ background-color: #c495a2;
+ color: #18191f;
+ }
+
+ @keyframes blink {
+ to {
+ background-color: #c495a2;
+ color: #18191f;
+ }
+ }
+
+ #cpu {
+ background-color: #8bb0a6;
+ }
+
+ #network {
+ background-color: #8bb0a6;
+ }
+
+ #memory {
+ background-color: #8bb0a6;
+ }
+
+ #pulseaudio {
+ background-color: #8bb0a6;
+ }
+
+ #battery {
+ background-color: #8bb0a6;
+ }
+
+ #battery.full {
+ background-color: #8bb0a6;
+ color: #18191f;
+ }
+
+ #battery.discharging {
+ background-color: #8bb0a6;
+ color: #18191f;
+ }
+
+ #battery.charging {
+ background-color: #8bb0a6;
+ color: #18191f;
+ }
+
+ #battery.warning:not(.charging) {
+ background-color: #8bb0a6;
+ color: #18191f;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+ }
+''
diff --git a/home/modules/profiles/base/default.nix b/home/modules/profiles/base/default.nix
new file mode 100644
index 0000000..1c584f0
--- /dev/null
+++ b/home/modules/profiles/base/default.nix
@@ -0,0 +1,123 @@
+{ config, lib, pkgs, self, ... }:
+let
+ cfg = config.profiles.base;
+
+ inherit (self.packages.x86_64-linux) neovim iosevka-pure-bin sf-mono-liga-bin 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 = pkgs.phocus;
+ #gtk.theme.name = "phocus";
+
+ home.keyboard.layout = "us";
+ home.packages = [
+ pkgs.hydra-check
+ neovim
+
+ # Fonts