diff --git a/assets/background-image b/assets/background-image new file mode 100644 index 0000000..210e6d8 Binary files /dev/null and b/assets/background-image differ diff --git a/configuration.nix b/configuration.nix index b8ac07c..0a81bf0 100644 --- a/configuration.nix +++ b/configuration.nix @@ -26,6 +26,8 @@ boot.earlyVconsoleSetup = true; + system.autoUpgrade.enable = true; + networking.hostName = "nixpad"; # Define your hostname. networking.networkmanager.enable = true; networking.networkmanager.wifi.scanRandMacAddress = false; @@ -44,7 +46,7 @@ fonts = { enableDefaultFonts = true; - fonts = with pkgs; [ source-code-pro fira-code fira-code-symbols ]; + fonts = with pkgs; [ source-code-pro fira-code fira-code-symbols font-awesome_5 ]; fontconfig = { enable = true; defaultFonts = { monospace = [ "Fira Code" ]; }; @@ -79,15 +81,20 @@ # programs.mtr.enable = true; # programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; - # Enable fish shell - programs.fish.enable = true; + programs = { + fish.enable = true; + seahorse.enable = true; + light.enable = true; + }; # List services that you want to enable: services = { - openssh.enable = true; fprintd.enable = true; - printing.enable = true; + openssh.enable = true; + clipmenu.enable = true; geoclue2.enable = true; + printing.enable = true; + gnome3.gnome-keyring.enable = true; xserver = { enable = true; layout = "us"; @@ -97,6 +104,26 @@ enable = true; naturalScrolling = true; }; + + desktopManager = { + default = "home-manager"; + session = [{ + name = "home-manager"; + start = '' + ${pkgs.runtimeShell} $HOME/.hm-xsession & + waitPID=$! + ''; + }]; + }; + displayManager = { + lightdm = { + enable = true; + autoLogin = { + enable = true; + user = "mat"; + }; + }; + }; }; }; diff --git a/home.nix b/home.nix index 00a7267..b8740b5 100644 --- a/home.nix +++ b/home.nix @@ -20,17 +20,20 @@ in { ag jq tldr + imagemagick # graphical applications + alacritty atom - firefox enpass - termite + firefox # graphical utilities clipmenu + clipnotify dmenu i3lock-fancy ]; file = { + ".background-image".source = ./assets/background-image; ".config/fish/fishfile".text = '' laughedelic/pisces sijad/gitignore @@ -49,7 +52,74 @@ in { jorgebucaran/fish-getopts matthewess/fish-autovenv ''; - ".config/fish/functions/systemctl.fish".source = ./scripts/systemctl.fish; + ".config/fish/completions/systemctl.fish".source = + ./scripts/systemctl.fish; + ".config/i3status/config".text = '' + # i3status configuration file. + # see "man i3status" for documentation. + + # It is important that this file is edited as UTF-8. + # The following line should contain a sharp s: + # ß + # If the above line is not correctly displayed, fix your editor first! + + general { + colors = true + interval = 5 + } + + order += "disk /" + order += "volume master" + order += "wireless _first_" + order += "battery 1" + order += "load" + order += "tztime local" + + wireless _first_ { + format_up = " (%essid - %quality) %ip" + format_down = "down" + } + + volume master { + format = " %volume" + format_muted = " (%volume)" + device = "pulse:1" + mixer = "Master" + mixer_idx = 0 + } + + battery 1 { + format = "%status %percentage %remaining" + status_bat = "" + status_chr = "" + status_full = "" + low_threshold = 30 + threshold_type = percentage + integer_battery_capacity = true + color_good = "#0000FF" + path = "/sys/class/power_supply/BAT0/uevent" + } + + run_watch DHCP { + pidfile = "/var/run/dhclient*.pid" + } + + run_watch VPN { + pidfile = "/var/run/vpnc/pid" + } + + tztime local { + format = " %h %d, %Y %I:%M:%S" + } + + load { + format = " %1min" + } + + disk "/" { + format = " %avail free" + } + ''; }; }; nixpkgs = { config.allowUnfree = true; }; @@ -75,6 +145,15 @@ in { end fish_vi_key_bindings set VIRTUAL_ENV_DISABLE_PROMPT true + + alias cat=bat + alias br=broot + alias tree=br + alias ack=ag + alias grep=ag + alias sys="sudo systemctl" + alias rebuild="sudo nixos-rebuild switch" + alias upgrade="sudo nixos-rebuild switch --upgrade" ''; }; git = { @@ -156,6 +235,7 @@ in { }; xsession = { enable = true; + scriptPath = ".hm-xsession"; windowManager = { i3 = { enable = true; @@ -164,6 +244,7 @@ in { "1: web" = [{ class = "Firefox"; }]; "2: devel" = [ { class = "Alacritty"; } { class = "Atom"; } ]; }; + bars = [{ fonts = ["Fira Code" "FontAwesome 10"]; }]; modifier = "Mod4"; keybindings = lib.mkOptionDefault { "${modifier}+c" = "exec CM_ONESHOT=1 clipmenud";