This commit is contained in:
Casper V. Kristensen 2023-08-04 13:08:58 +02:00
parent 369c3399b5
commit cf12b4ad67
4 changed files with 109 additions and 8 deletions

View file

@ -1,4 +1,4 @@
{ pkgs, impermanence, ... }: {
{ impermanence, pkgs, ... }: {
# The impermanence module bind-mounts persistent files and directories, stored in /nix/persist, into the tmpfs root
# partition on startup. For example: /nix/persist/etc/machine-id is mounted to /etc/machine-id.
# https://github.com/nix-community/impermanence

View file

@ -1,4 +1,4 @@
{ pkgs, nix-index-database, ... }: {
{ nix-index-database, lib, pkgs, ... }: {
imports = [
nix-index-database.nixosModules.nix-index
];
@ -63,6 +63,9 @@
LC_TELEPHONE = "en_DK.UTF-8";
LC_TIME = "en_DK.UTF-8";
};
supportedLocales = lib.mkOptionDefault [
"da_DK.UTF-8/UTF-8"
];
};
time = {

View file

@ -1,4 +1,4 @@
{ ... }:
{ pkgs, ... }:
{
imports = [
@ -6,4 +6,12 @@
./ssh.nix
./sway.nix
];
environment.systemPackages = with pkgs; [
keepassxc
];
services.logind.extraConfig = ''
HandlePowerKey=ignore
'';
}

View file

@ -1,19 +1,19 @@
{ pkgs, home-manager, ... }: {
{ home-manager, lib, pkgs, ... }: {
# https://nixos.wiki/wiki/Sway
# https://nix-community.github.io/home-manager/options.html
security.polkit.enable = true;
home-manager.users.caspervk = {
wayland.windowManager.sway = {
enable = true;
config = {
assigns = {
"1: web" = [{ class = "^Firefox$"; }];
};
input = {
"*" = {
# Keyboard
xkb_layout = "us";
xkb_variant = "altgr-intl";
repeat_delay = "250";
# Trackpad
tap = "enabled";
@ -21,15 +21,88 @@
dwt = "disabled"; # don't disable-while-typing
};
};
assigns = {
"1: web" = [{ class = "^Firefox$"; }];
};
modifier = "Mod4"; # super
keybindings = lib.mkOptionDefault {
"Mod4+z" = "focus child";
"Mod4+Escape" = "exec loginctl lock-session";
# Brightness
"XF86MonBrightnessUp" = "exec light -A 5";
"XF86MonBrightnessDown" = "exec light -U 5";
# Volume
"XF86AudioRaiseVolume" = "exec 'pactl set-sink-volume @DEFAULT_SINK@ +2%'";
"XF86AudioLowerVolume" = "exec 'pactl set-sink-volume @DEFAULT_SINK@ -2%'";
"XF86AudioMute" = "exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle'";
};
terminal = "alacritty";
workspaceAutoBackAndForth = true;
bars = [{ command = "${pkgs.waybar}/bin/waybar"; }];
};
};
programs.waybar =
let
mkDefaultConfig = pkgs.stdenv.mkDerivation {
name = "waybarDefaultConfig";
src = "${pkgs.waybar}/etc/xdg/waybar";
installPhase = ''
sed 's#//.*##' config | ${pkgs.jq}/bin/jq > $out
'';
};
defaultConfig = builtins.fromJSON (lib.readFile "${mkDefaultConfig}");
in
{
enable = true;
settings = {
bar = lib.mkMerge [
defaultConfig
{
modules-right = lib.mkForce [ "tray" "idle_inhibitor" "pulseaudio" "cpu" "memory" "backlight" "network" "battery" "clock" ];
clock = {
interval = 5;
locale = "da_DK.UTF-8";
format = "{:%a %e. %b %H:%M}";
calendar = {
mode = "year";
mode-mon-col = 6;
weeks-pos = "left";
};
};
backlight = {
format-icons = lib.mkForce [ "" ];
};
}
];
};
};
services.swayidle =
let
lock = "${pkgs.swaylock}/bin/swaylock --daemonize --color=333333";
in
{
enable = true;
events = [
{ event = "lock"; command = lock; }
{ event = "before-sleep"; command = lock; }
];
timeouts = [
{ timeout = 600; command = lock; }
];
};
};
environment.systemPackages = with pkgs; [
alacritty
clipman
pulseaudio # pactl
pavucontrol # PulseAudio Volume Control
swaylock
wl-clipboard
];
# Audio
@ -49,10 +122,27 @@
# Allow sharing screen
#xdg.portal.wlr.enable = true;
security.polkit.enable = true;
security.pam.services.swaylock.text = ''
# PAM configuration file for the swaylock screen locker. By default, it includes
# the 'login' configuration file (see /etc/pam.d/login)
auth include login
'';
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [ intel-media-driver ];
};
fonts.fonts = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
font-awesome # for waybar
];
}