a lot of changes
This commit is contained in:
parent
4c8bc2797c
commit
be764a326d
1
compat/default.nix
Normal file
1
compat/default.nix
Normal file
@ -0,0 +1 @@
|
|||||||
|
{ ... }: (builtins.getFlake (toString ../.)).legacyPackages.${builtins.currentSystem}
|
9
default.nix
Normal file
9
default.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
let
|
||||||
|
self = (import (let lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||||
|
in fetchTarball {
|
||||||
|
url =
|
||||||
|
"https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
||||||
|
sha256 = lock.nodes.flake-compat.locked.narHash;
|
||||||
|
}) { src = ./.; }).defaultNix;
|
||||||
|
in self // self.legacyPackages.${builtins.currentSystem}
|
85
flake.lock
generated
85
flake.lock
generated
@ -5,11 +5,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1612815054,
|
"lastModified": 1623806441,
|
||||||
"narHash": "sha256-5FA1MW0sLGBUuEOq25iXx7f17TPE1+FLlL+ah7nLIP0=",
|
"narHash": "sha256-nXkU8yCtSLz2oqPPdY2WEOQ0PZlWXAzcP1djf5lx6A0=",
|
||||||
"owner": "alukardbf",
|
"owner": "alukardbf",
|
||||||
"repo": "base16-nix",
|
"repo": "base16-nix",
|
||||||
"rev": "f35d18e9912423e99d62c1d29529f518bdb5ce1d",
|
"rev": "462f0033e6681b993165dd46bcdc1c153a7daaa9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -34,32 +34,20 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"base16-material-ocean-scheme": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-WAVSMhWqwzR34pHalWGkpKkP6+TfEE+Fv3Adj0G2isk=",
|
|
||||||
"path": "/home/alukard/projects/base16-material-ocean-scheme",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"path": "/home/alukard/projects/base16-material-ocean-scheme",
|
|
||||||
"type": "path"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623343236,
|
"lastModified": 1623806118,
|
||||||
"narHash": "sha256-Cl/0/WW3AWjkO7gphw9FqUr4P7T98KKyFCX3Vxv22Sk=",
|
"narHash": "sha256-c7JrIkdhF9hJdx4+9W7NcYd05PvHppyMNJkM2cIMvjc=",
|
||||||
"owner": "nix-community",
|
"owner": "AlukardBF",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "666eee4f72979b0ebbd2e065a3846d7a8a16895c",
|
"rev": "97f2897d27cdbcae2179abcad20c4bf66382c777",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "AlukardBF",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -83,17 +71,16 @@
|
|||||||
"materia-theme": {
|
"materia-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1615115449,
|
"lastModified": 1620818711,
|
||||||
"narHash": "sha256-Ee3ssXytFuKbWKMv/RCfD5FehSxrMwoos9Evmgljir8=",
|
"narHash": "sha256-0eCAfm/MWXv6BbCl2vbVbvgv8DiUH09TAUhoKq7Ow0k=",
|
||||||
"owner": "nana-4",
|
"owner": "nana-4",
|
||||||
"repo": "materia-theme",
|
"repo": "materia-theme",
|
||||||
"rev": "3e2220a133746a7fc80b0f995a40ffda55443de0",
|
"rev": "76cac96ca7fe45dc9e5b9822b0fbb5f4cad47984",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nana-4",
|
"owner": "nana-4",
|
||||||
"repo": "materia-theme",
|
"repo": "materia-theme",
|
||||||
"rev": "3e2220a133746a7fc80b0f995a40ffda55443de0",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -118,26 +105,26 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1593360652,
|
"lastModified": 1623798125,
|
||||||
"narHash": "sha256-8dXbDWhLzgZfiQ+XZ2rtSnUAafFizeeXJa5fuF/9n4w=",
|
"narHash": "sha256-I6xUuLZWCkdNNvZdNm7P4NtmqMaCI2QHQcrAYvTB3B0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c5299e9d5bb18f1ebd817e0a4767103b9935f0ee",
|
"rev": "c0c5925832c1da45b1100a10ae5c5a55a6952acf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "release-20.03",
|
"ref": "release-21.05",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-master": {
|
"nixpkgs-master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623544386,
|
"lastModified": 1623809531,
|
||||||
"narHash": "sha256-AQ8pcr2qUgHJ11SlV4BAIjWKo739mHWliMD9mMDbyLE=",
|
"narHash": "sha256-cwB6PPsUn7h+6lFUlaEGwE45zyBUmD1NN4m8RO/VGZU=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "722e5ccfea7f42e11cfb10e92d444da1a9c9fc26",
|
"rev": "56e1dac7c81ec3efd937111966949e55134efab8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -165,11 +152,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-old": {
|
"nixpkgs-old": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623351452,
|
"lastModified": 1623585158,
|
||||||
"narHash": "sha256-V7DDbbl6h9OyVVMviURW1+pWU6ttYmuRuQRlFrlKZb0=",
|
"narHash": "sha256-AjK7M1/six8IBPOI28nm7yC2k8mZIR2F9QrOwFYHAS0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6f3e97e3f8cca69ad2528c8459682900a9b34a2f",
|
"rev": "115dbbe82eb4ec8aabf959068286468a68e0b244",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -181,11 +168,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623544386,
|
"lastModified": 1623809531,
|
||||||
"narHash": "sha256-AQ8pcr2qUgHJ11SlV4BAIjWKo739mHWliMD9mMDbyLE=",
|
"narHash": "sha256-cwB6PPsUn7h+6lFUlaEGwE45zyBUmD1NN4m8RO/VGZU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "722e5ccfea7f42e11cfb10e92d444da1a9c9fc26",
|
"rev": "56e1dac7c81ec3efd937111966949e55134efab8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -210,11 +197,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1623324058,
|
"lastModified": 1623580589,
|
||||||
"narHash": "sha256-Jm9GUTXdjXz56gWDKy++EpFfjrBaxqXlLvTLfgEi8lo=",
|
"narHash": "sha256-Ayp1cjXpwFCkAiWUE46rj9APTltsiEBdIs2+cj+U7+c=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "432fc2d9a67f92e05438dff5fdc2b39d33f77997",
|
"rev": "fa0326ce5233f7d592271df52c9d0812bec47b84",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -228,7 +215,6 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"base16": "base16",
|
"base16": "base16",
|
||||||
"base16-horizon-scheme": "base16-horizon-scheme",
|
"base16-horizon-scheme": "base16-horizon-scheme",
|
||||||
"base16-material-ocean-scheme": "base16-material-ocean-scheme",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"i3lock-fancy-rapid": "i3lock-fancy-rapid",
|
"i3lock-fancy-rapid": "i3lock-fancy-rapid",
|
||||||
"materia-theme": "materia-theme",
|
"materia-theme": "materia-theme",
|
||||||
@ -237,12 +223,29 @@
|
|||||||
"nixpkgs-master": "nixpkgs-master",
|
"nixpkgs-master": "nixpkgs-master",
|
||||||
"nixpkgs-mozilla": "nixpkgs-mozilla",
|
"nixpkgs-mozilla": "nixpkgs-mozilla",
|
||||||
"nixpkgs-old": "nixpkgs-old",
|
"nixpkgs-old": "nixpkgs-old",
|
||||||
|
"rycee": "rycee",
|
||||||
"zsh-autosuggestions": "zsh-autosuggestions",
|
"zsh-autosuggestions": "zsh-autosuggestions",
|
||||||
"zsh-cod": "zsh-cod",
|
"zsh-cod": "zsh-cod",
|
||||||
"zsh-nix-shell": "zsh-nix-shell",
|
"zsh-nix-shell": "zsh-nix-shell",
|
||||||
"zsh-you-should-use": "zsh-you-should-use"
|
"zsh-you-should-use": "zsh-you-should-use"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rycee": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1623795125,
|
||||||
|
"narHash": "sha256-EaKQqs7aCUHrKTZz/TXv37CCIsTf5qDYFX/5RbffcCg=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"rev": "19b4931631e1f6cc3208270f862d7436e5b03805",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
"zsh-autosuggestions": {
|
"zsh-autosuggestions": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
14
flake.nix
14
flake.nix
@ -6,18 +6,16 @@
|
|||||||
nixpkgs-master.url = github:nixos/nixpkgs/master;
|
nixpkgs-master.url = github:nixos/nixpkgs/master;
|
||||||
nixpkgs-old.url = github:nixos/nixpkgs/nixos-20.09;
|
nixpkgs-old.url = github:nixos/nixpkgs/nixos-20.09;
|
||||||
nix.url = github:NixOS/nix/8a5203d3b836497c2c5f157f85008aa8bcb6a1d2;
|
nix.url = github:NixOS/nix/8a5203d3b836497c2c5f157f85008aa8bcb6a1d2;
|
||||||
home-manager.url = github:nix-community/home-manager;
|
home-manager.url = github:AlukardBF/home-manager;
|
||||||
|
# home-manager.url = github:nix-community/home-manager;
|
||||||
|
# base16.url = "/shared/nixos/base16-nix";
|
||||||
base16.url = github:alukardbf/base16-nix;
|
base16.url = github:alukardbf/base16-nix;
|
||||||
base16-horizon-scheme = {
|
base16-horizon-scheme = {
|
||||||
url = github:michael-ball/base16-horizon-scheme;
|
url = github:michael-ball/base16-horizon-scheme;
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
base16-material-ocean-scheme = {
|
|
||||||
url = "/home/alukard/projects/base16-material-ocean-scheme";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
materia-theme = {
|
materia-theme = {
|
||||||
url = github:nana-4/materia-theme/3e2220a133746a7fc80b0f995a40ffda55443de0;
|
url = github:nana-4/materia-theme;
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
zsh-autosuggestions = {
|
zsh-autosuggestions = {
|
||||||
@ -44,6 +42,10 @@
|
|||||||
url = github:mozilla/nixpkgs-mozilla;
|
url = github:mozilla/nixpkgs-mozilla;
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
rycee = {
|
||||||
|
url = gitlab:rycee/nur-expressions;
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { nixpkgs, nix, self, ... }@inputs: {
|
outputs = { nixpkgs, nix, self, ... }@inputs: {
|
||||||
|
242
install/install-btrfs.sh
Normal file
242
install/install-btrfs.sh
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p perl -p gptfdisk -p parted
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
CONFIG_FOLDER="$(dirname "$(pwd)")"
|
||||||
|
DEVICE_NAME=NixOS-VM
|
||||||
|
MAX_JOBS=4
|
||||||
|
SWAP_SIZE=2GiB
|
||||||
|
NIXOS_COMMIT="432fc2d9a67f92e05438dff5fdc2b39d33f77997"
|
||||||
|
USE_ECNRYPTION=false
|
||||||
|
|
||||||
|
clean_stdin() {
|
||||||
|
while read -r -t 0; do read -r; done
|
||||||
|
}
|
||||||
|
|
||||||
|
pprint () {
|
||||||
|
local cyan="\e[96m"
|
||||||
|
local default="\e[39m"
|
||||||
|
local timestamp
|
||||||
|
timestamp=$(date +%FT%T.%3NZ)
|
||||||
|
echo -e "${cyan}${timestamp} $1${default}" 1>&2
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create new partitions
|
||||||
|
create_new_part_table() {
|
||||||
|
select ENTRY in $(ls /dev/disk/by-id/);
|
||||||
|
do
|
||||||
|
DISK="/dev/disk/by-id/$ENTRY"
|
||||||
|
echo "Installing system on $ENTRY"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "> Do you want to wipe all data on $ENTRY ?" -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ "$REPLY" =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
wipefs -af "$DISK"
|
||||||
|
sgdisk -Zo "$DISK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
pprint "Creating boot (EFI) partition"
|
||||||
|
sgdisk -n 1:1MiB:+256MiB -t 1:EF00 "$DISK"
|
||||||
|
BOOT="$DISK-part1"
|
||||||
|
|
||||||
|
pprint "Creating SWAP partition"
|
||||||
|
sgdisk -n 2::+$SWAP_SIZE -t 2:8200 "$DISK"
|
||||||
|
SWAP="$DISK-part2"
|
||||||
|
|
||||||
|
if [[ "$USE_ECNRYPTION" = true ]]
|
||||||
|
then
|
||||||
|
pprint "Creating LUKS partition"
|
||||||
|
sgdisk -n 3 -t 3:8309 "$DISK"
|
||||||
|
else
|
||||||
|
pprint "Creating ROOT partition"
|
||||||
|
sgdisk -n 3 -t 3:8300 "$DISK"
|
||||||
|
fi
|
||||||
|
LINUX="$DISK-part3"
|
||||||
|
|
||||||
|
partprobe "$DISK"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
pprint "Format BOOT partition $BOOT"
|
||||||
|
mkfs.vfat "$BOOT"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Using existed partitions
|
||||||
|
use_old_part_table() {
|
||||||
|
lsblk -o name,type,size,mountpoint | grep part
|
||||||
|
|
||||||
|
pprint "Select BOOT partition (must already be formatted in vfat!)"
|
||||||
|
|
||||||
|
select ENTRY in $(lsblk -o path,size,type | grep part | awk '{print $1}');
|
||||||
|
do
|
||||||
|
BOOT="$ENTRY"
|
||||||
|
echo "You select $BOOT as BOOT"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$USE_ECNRYPTION" = true ]]
|
||||||
|
then
|
||||||
|
pprint "Select the partition on which LUKS will be created"
|
||||||
|
else
|
||||||
|
pprint "Select the partition on which ROOT will be created"
|
||||||
|
fi
|
||||||
|
|
||||||
|
select ENTRY in $(lsblk -o path,size,type | grep part | awk '{print $1}');
|
||||||
|
do
|
||||||
|
LINUX="$ENTRY"
|
||||||
|
echo "Installing system on $LINUX"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
pprint "Select the partition on which SWAP will be created"
|
||||||
|
|
||||||
|
select ENTRY in $(lsblk -o path,size,type | grep part | awk '{print $1}' && echo NONE);
|
||||||
|
do
|
||||||
|
SWAP="$ENTRY"
|
||||||
|
echo "You select $SWAP as SWAP"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
clean_stdin
|
||||||
|
read -p "> Do you want to format BOOT partition in $BOOT?" -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ "$REPLY" =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
mkfs.vfat "$BOOT"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### INSTALLATION BEGIN ###
|
||||||
|
|
||||||
|
read -p "> Do you want to encrypt your disk with LUKS?" -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ "$REPLY" =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
USE_ECNRYPTION=true
|
||||||
|
else
|
||||||
|
USE_ECNRYPTION=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -p "> Do you want to partition the disk (new gpt table)?" -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ "$REPLY" =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
create_new_part_table
|
||||||
|
else
|
||||||
|
use_old_part_table
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$USE_ECNRYPTION" = true ]]
|
||||||
|
then
|
||||||
|
pprint "Creating LUKS container on $LINUX"
|
||||||
|
clean_stdin
|
||||||
|
cryptsetup --type luks2 --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat "$LINUX"
|
||||||
|
|
||||||
|
pprint "Open LUKS container on $LINUX"
|
||||||
|
LUKS_DEVICE_NAME=cryptroot
|
||||||
|
clean_stdin
|
||||||
|
cryptsetup luksOpen "$LINUX" "$LUKS_DEVICE_NAME"
|
||||||
|
|
||||||
|
LUKS_DISK="/dev/mapper/$LUKS_DEVICE_NAME"
|
||||||
|
|
||||||
|
pprint "Create BTRFS partition on $LUKS_DISK"
|
||||||
|
BTRFS="${LUKS_DISK}"
|
||||||
|
else
|
||||||
|
LINUX_PARTUUID=$(blkid --match-tag PARTUUID --output value "$LINUX")
|
||||||
|
BTRFS="/dev/disk/by-partuuid/$LINUX_PARTUUID"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$SWAP" != "NONE" ]]; then
|
||||||
|
pprint "Create SWAP partition on $SWAP"
|
||||||
|
mkswap $SWAP
|
||||||
|
fi
|
||||||
|
|
||||||
|
pprint "Create BTRFS partition on $BTRFS"
|
||||||
|
mkfs.btrfs -L root -f "$BTRFS"
|
||||||
|
|
||||||
|
pprint "Mount BTRFS partition"
|
||||||
|
mkdir -p /mnt
|
||||||
|
mount -t btrfs "$BTRFS" /mnt
|
||||||
|
|
||||||
|
pprint "Create and mount BTRFS subvolumes"
|
||||||
|
btrfs subvolume create /mnt/nixos
|
||||||
|
btrfs subvolume create /mnt/nix
|
||||||
|
btrfs subvolume create /mnt/home
|
||||||
|
btrfs subvolume create /mnt/var
|
||||||
|
btrfs subvolume create /mnt/bittorrent
|
||||||
|
|
||||||
|
umount /mnt
|
||||||
|
|
||||||
|
mount -t btrfs -o subvol=nixos,compress-force=zstd,noatime,autodefrag,ssd "$BTRFS" /mnt
|
||||||
|
mkdir -p /mnt/nix
|
||||||
|
mount -t btrfs -o subvol=nix,compress-force=zstd,noatime,autodefrag,ssd "$BTRFS" /mnt/nix
|
||||||
|
mkdir -p /mnt/home
|
||||||
|
mount -t btrfs -o subvol=home,compress-force=zstd,noatime,autodefrag,ssd "$BTRFS" /mnt/home
|
||||||
|
mkdir -p /mnt/var
|
||||||
|
mount -t btrfs -o subvol=var,compress-force=zstd,noatime,autodefrag,ssd "$BTRFS" /mnt/var
|
||||||
|
mkdir -p /mnt/media/bittorrent
|
||||||
|
mount -t btrfs -o subvol=bittorrent,nodatacow,ssd "$BTRFS" /mnt/media/bittorrent
|
||||||
|
|
||||||
|
mkdir /mnt/boot
|
||||||
|
mount "$BOOT" /mnt/boot
|
||||||
|
|
||||||
|
pprint "Generate NixOS configuration"
|
||||||
|
nixos-generate-config --root /mnt
|
||||||
|
|
||||||
|
HOSTID=$(head -c8 /etc/machine-id)
|
||||||
|
LINUX_DISK_UUID=$(blkid --match-tag PARTUUID --output value "$LINUX")
|
||||||
|
if [[ "$SWAP" != "NONE" ]]; then
|
||||||
|
SWAP_UUID=$(blkid --match-tag PARTUUID --output value "$SWAP")
|
||||||
|
fi
|
||||||
|
|
||||||
|
HARDWARE_CONFIG=$(mktemp)
|
||||||
|
if [[ "$USE_ECNRYPTION" = true ]]
|
||||||
|
then
|
||||||
|
cat <<CONFIG > "$HARDWARE_CONFIG"
|
||||||
|
networking.hostId = "$HOSTID";
|
||||||
|
boot.initrd.luks.devices."$LUKS_DEVICE_NAME".device = "/dev/disk/by-partuuid/$LINUX_DISK_UUID";
|
||||||
|
boot.initrd.supportedFilesystems = [ "btrfs" ];
|
||||||
|
boot.supportedFilesystems = [ "btrfs" ];
|
||||||
|
CONFIG
|
||||||
|
else
|
||||||
|
cat <<CONFIG > "$HARDWARE_CONFIG"
|
||||||
|
networking.hostId = "$HOSTID";
|
||||||
|
boot.initrd.supportedFilesystems = [ "btrfs" ];
|
||||||
|
boot.supportedFilesystems = [ "btrfs" ];
|
||||||
|
CONFIG
|
||||||
|
fi
|
||||||
|
|
||||||
|
pprint "Append BTRFS configuration to hardware-configuration.nix"
|
||||||
|
sed -i "\$e cat $HARDWARE_CONFIG" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
|
||||||
|
if [[ "$SWAP" != "NONE" ]]; then
|
||||||
|
perl -0777 -pi -e "s#swapDevices.+#swapDevices = [\n {\n device = \"/dev/disk/by-partuuid/$SWAP_UUID\";\n randomEncryption.enable = true;\n }\n ];#" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed -i "s#\"subvol=nixos\"#\"subvol=nixos\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
sed -i "s#\"subvol=home\"#\"subvol=home\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
sed -i "s#\"subvol=nix\"#\"subvol=nix\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
sed -i "s#\"subvol=var\"#\"subvol=var\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
sed -i "s#\"subvol=bittorrent\"#\"subvol=bittorrent\" \"nodatacow\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix
|
||||||
|
|
||||||
|
pprint "Copy minimal config to destination system"
|
||||||
|
cp /mnt/etc/nixos/hardware-configuration.nix $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix
|
||||||
|
# Change <not-detected> for flakes
|
||||||
|
sed -i "s#<nixpkgs/nixos/modules/installer/scan/not-detected.nix>#\"\${inputs.nixpkgs}/nixos/modules/installer/scan/not-detected.nix\"#" $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix
|
||||||
|
cp ./min-config.nix /mnt/etc/nixos/configuration.nix
|
||||||
|
sed -i "s/changeme/$DEVICE_NAME/" /mnt/etc/nixos/configuration.nix
|
||||||
|
|
||||||
|
clean_stdin
|
||||||
|
read -p "> Do you want to execute nixos-install command?" -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ "$REPLY" =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
nixos-install -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/$NIXOS_COMMIT.tar.gz --max-jobs $MAX_JOBS --no-root-passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
pprint "Copy config to destination system"
|
||||||
|
mkdir -p /mnt/home/alukard/nixos-config
|
||||||
|
cp -aT $CONFIG_FOLDER /mnt/home/alukard/nixos-config
|
0
install/install.sh → install/install-zsh.sh
Executable file → Normal file
0
install/install.sh → install/install-zsh.sh
Executable file → Normal file
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
useSandbox = true;
|
useSandbox = true;
|
||||||
# autoOptimiseStore = true;
|
autoOptimiseStore = false;
|
||||||
optimise.automatic = true;
|
optimise.automatic = true;
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
@ -72,6 +72,6 @@
|
|||||||
hashedPassword = "$6$kDBGyd99tto$9LjQwixa7NYB9Kaey002MD94zHob1MmNbVz9kx3yX6Q4AmVgsFMGUyNuHozXprxyuXHIbOlTcf8nd4rK8MWfI/";
|
hashedPassword = "$6$kDBGyd99tto$9LjQwixa7NYB9Kaey002MD94zHob1MmNbVz9kx3yX6Q4AmVgsFMGUyNuHozXprxyuXHIbOlTcf8nd4rK8MWfI/";
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "20.09";
|
system.stateVersion = "21.05";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
{ inputs, ... }: {
|
{ inputs, ... }: {
|
||||||
imports = [
|
imports = with inputs.self.nixosModules; [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
inputs.self.nixosProfiles.desktop
|
inputs.self.nixosProfiles.desktop
|
||||||
];
|
];
|
||||||
|
|
||||||
deviceSpecific.devInfo = {
|
deviceSpecific.devInfo = {
|
||||||
cpu = {
|
cpu = {
|
||||||
vendor = "amd";
|
vendor = "amd";
|
||||||
|
@ -6,56 +6,55 @@
|
|||||||
{
|
{
|
||||||
imports = [ ];
|
imports = [ ];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "xhci_pci" "ahci" "sd_mod" "sr_mod" ];
|
boot.initrd.availableKernelModules = [ "ata_piix" "xhci_pci" "ahci" "nvme" "sd_mod" "sr_mod" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "rpool/system/root";
|
{ device = "/dev/disk/by-uuid/95b3583e-41d8-4a34-9ff5-52a7546b9baa";
|
||||||
fsType = "zfs";
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=nixos" "compress-force=zstd" "noatime" "autodefrag" "ssd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/nix" =
|
fileSystems."/nix" =
|
||||||
{ device = "rpool/local/nix";
|
{ device = "/dev/disk/by-uuid/95b3583e-41d8-4a34-9ff5-52a7546b9baa";
|
||||||
fsType = "zfs";
|
fsType = "btrfs";
|
||||||
};
|
options = [ "subvol=nix" "compress-force=zstd" "noatime" "autodefrag" "ssd" ];
|
||||||
|
|
||||||
fileSystems."/var" =
|
|
||||||
{ device = "rpool/system/var";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home" =
|
fileSystems."/home" =
|
||||||
{ device = "rpool/user/home";
|
{ device = "/dev/disk/by-uuid/95b3583e-41d8-4a34-9ff5-52a7546b9baa";
|
||||||
fsType = "zfs";
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=home" "compress-force=zstd" "noatime" "autodefrag" "ssd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home/alukard/.libvirt" =
|
fileSystems."/var" =
|
||||||
{ device = "rpool/local/libvirt";
|
{ device = "/dev/disk/by-uuid/95b3583e-41d8-4a34-9ff5-52a7546b9baa";
|
||||||
fsType = "zfs";
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=var" "compress-force=zstd" "noatime" "autodefrag" "ssd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/bittorrent" =
|
fileSystems."/media/bittorrent" =
|
||||||
{ device = "rpool/local/bittorrent";
|
{ device = "/dev/disk/by-uuid/95b3583e-41d8-4a34-9ff5-52a7546b9baa";
|
||||||
fsType = "zfs";
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=bittorrent" "nodatacow" "ssd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/9D49-7087";
|
{ device = "/dev/disk/by-uuid/CA29-07D6";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{
|
{
|
||||||
device = "/dev/disk/by-partuuid/6e22eab7-2e47-4108-bd97-76e3bdc2c6c1";
|
device = "/dev/disk/by-partuuid/1bba72d3-9a12-4407-87ab-f2640dbbadf5";
|
||||||
randomEncryption.enable = true;
|
randomEncryption.enable = true;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
virtualisation.virtualbox.guest.enable = true;
|
virtualisation.virtualbox.guest.enable = true;
|
||||||
networking.hostId = "524df2e8";
|
networking.hostId = "c4ab8679";
|
||||||
boot.zfs.devNodes = "/dev/disk/by-partuuid/37beaf62-685a-43b2-95b2-e777a77993e1";
|
boot.initrd.supportedFilesystems = [ "btrfs" ];
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [ "btrfs" ];
|
||||||
boot.kernelParams = [ "zfs.zfs_arc_max=1073741824" ];
|
|
||||||
}
|
}
|
||||||
|
83
modules/applications-setup.nix
Normal file
83
modules/applications-setup.nix
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{ config, pkgs, ... }: {
|
||||||
|
defaultApplications = {
|
||||||
|
fm = {
|
||||||
|
cmd = "${pkgs.xfce4-14.thunar}/bin/thunar";
|
||||||
|
desktop = "thunar";
|
||||||
|
};
|
||||||
|
monitor = {
|
||||||
|
cmd = "${pkgs.xfce4-14.xfce4-taskmanager}/bin/xfce4-taskmanager";
|
||||||
|
desktop = "taskmanager";
|
||||||
|
};
|
||||||
|
torrent = {
|
||||||
|
cmd = "${pkgs.qbittorrent}/bin/qbittorrent";
|
||||||
|
desktop = "qbittorrent";
|
||||||
|
};
|
||||||
|
archive = {
|
||||||
|
cmd = "${pkgs.xarchiver}/bin/xarchiver";
|
||||||
|
desktop = "xarchiver";
|
||||||
|
};
|
||||||
|
messenger = {
|
||||||
|
cmd = "${pkgs.tdesktop}/bin/telegram-desktop";
|
||||||
|
desktop = "telegram-desktop";
|
||||||
|
};
|
||||||
|
# mail = {
|
||||||
|
# cmd = "${pkgs.trojita}/bin/trojita";
|
||||||
|
# desktop = "trojita";
|
||||||
|
# };
|
||||||
|
# text_processor = {
|
||||||
|
# cmd = "${pkgs.libreoffice}/bin/libreoffice";
|
||||||
|
# desktop = "libreoffice";
|
||||||
|
# };
|
||||||
|
# spreadsheet = {
|
||||||
|
# cmd = "${pkgs.gnumeric}/bin/gnumeric";
|
||||||
|
# desktop = "gnumeric";
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
startupApplications = with config.defaultApplications; [
|
||||||
|
messenger.cmd
|
||||||
|
"${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx"
|
||||||
|
"${term.cmd} spt"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
EDITOR = config.defaultApplications.editor.cmd;
|
||||||
|
VISUAL = config.defaultApplications.editor.cmd;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.alukard = {
|
||||||
|
home.activation."mimeapps-remove" = {
|
||||||
|
before = [ "checkLinkTargets" ];
|
||||||
|
after = [ ];
|
||||||
|
data = "rm -f /home/alukard/.config/mimeapps.list";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications =
|
||||||
|
with config.defaultApplications;
|
||||||
|
builtins.mapAttrs (name: value:
|
||||||
|
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
|
||||||
|
"text/html" = browser;
|
||||||
|
"image/*" = { desktop = "org.gnome.eog"; };
|
||||||
|
"application/x-bittorrent" = torrent;
|
||||||
|
"application/zip" = archive;
|
||||||
|
"application/rar" = archive;
|
||||||
|
"application/7z" = archive;
|
||||||
|
"application/*tar" = archive;
|
||||||
|
"x-scheme-handler/http" = browser;
|
||||||
|
"x-scheme-handler/https" = browser;
|
||||||
|
"x-scheme-handler/about" = browser;
|
||||||
|
# "x-scheme-handler/mailto" = mail;
|
||||||
|
"application/pdf" = pdf;
|
||||||
|
# "application/vnd.openxmlformats-officedocument.wordprocessingml.document" =
|
||||||
|
# text_processor;
|
||||||
|
# "application/msword" = text_processor;
|
||||||
|
# "application/vnd.oasis.opendocument.text" = text_processor;
|
||||||
|
# "text/csv" = spreadsheet;
|
||||||
|
# "application/vnd.oasis.opendocument.spreadsheet" = spreadsheet;
|
||||||
|
"text/plain" = editor;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,102 +1,29 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
with config.deviceSpecific;
|
with config.deviceSpecific;
|
||||||
{
|
{
|
||||||
options.defaultApplications = lib.mkOption {
|
options = with lib;
|
||||||
type = lib.types.attrs;
|
with types; {
|
||||||
|
defaultApplications = mkOption {
|
||||||
|
type = attrsOf (submodule ({ name, ... }: {
|
||||||
|
options = {
|
||||||
|
cmd = mkOption { type = path; };
|
||||||
|
desktop = mkOption { type = str; };
|
||||||
|
};
|
||||||
|
}));
|
||||||
description = "Preferred applications";
|
description = "Preferred applications";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
startupApplications = mkOption {
|
||||||
|
type = listOf path;
|
||||||
|
description = "Applications to run on startup";
|
||||||
|
};
|
||||||
|
};
|
||||||
config = rec {
|
config = rec {
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
term = if (isLaptop || isVM) then {
|
|
||||||
cmd = "${pkgs.kitty}/bin/kitty";
|
|
||||||
desktop = "kitty";
|
|
||||||
} else {
|
|
||||||
cmd = "${pkgs.alacritty}/bin/alacritty";
|
|
||||||
desktop = "alacritty";
|
|
||||||
};
|
|
||||||
dmenu = {
|
|
||||||
cmd = "${pkgs.rofi}/bin/rofi -show run";
|
|
||||||
desktop = "rofi";
|
|
||||||
};
|
|
||||||
editor = {
|
|
||||||
cmd = "${pkgs.vscode}/bin/code";
|
|
||||||
desktop = "code";
|
|
||||||
};
|
|
||||||
browser = {
|
|
||||||
cmd = "${pkgs.vivaldi}/bin/vivaldi";
|
|
||||||
desktop = "vivaldi";
|
|
||||||
};
|
|
||||||
fm = {
|
|
||||||
cmd = "${pkgs.xfce4-14.thunar}/bin/thunar";
|
|
||||||
desktop = "thunar";
|
|
||||||
};
|
|
||||||
monitor = {
|
|
||||||
cmd = "${pkgs.xfce4-14.xfce4-taskmanager}/bin/xfce4-taskmanager";
|
|
||||||
desktop = "taskmanager";
|
|
||||||
};
|
|
||||||
torrent = {
|
|
||||||
cmd = "${pkgs.qbittorrent}/bin/qbittorrent";
|
|
||||||
desktop = "qbittorrent";
|
|
||||||
};
|
|
||||||
archive = {
|
|
||||||
cmd = "${pkgs.xarchiver}/bin/xarchiver";
|
|
||||||
desktop = "xarchiver";
|
|
||||||
};
|
|
||||||
pdf = {
|
pdf = {
|
||||||
cmd = "${pkgs.zathura}/bin/zathura";
|
cmd = "${pkgs.zathura}/bin/zathura";
|
||||||
desktop = "zathura";
|
desktop = "zathura";
|
||||||
};
|
};
|
||||||
# archive = {
|
|
||||||
# cmd = "${pkgs.ark}/bin/ark";
|
|
||||||
# desktop = "org.kde.ark";
|
|
||||||
# };
|
|
||||||
# mail = {
|
|
||||||
# cmd = "${pkgs.trojita}/bin/trojita";
|
|
||||||
# desktop = "trojita";
|
|
||||||
# };
|
|
||||||
# text_processor = {
|
|
||||||
# cmd = "${pkgs.abiword}/bin/abiword";
|
|
||||||
# desktop = "abiword";
|
|
||||||
# };
|
|
||||||
# spreadsheet = {
|
|
||||||
# cmd = "${pkgs.gnumeric}/bin/gnumeric";
|
|
||||||
# desktop = "gnumeric";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
EDITOR = config.defaultApplications.editor.cmd;
|
|
||||||
VISUAL = config.defaultApplications.editor.cmd;
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.alukard.xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
defaultApplications =
|
|
||||||
with config.defaultApplications;
|
|
||||||
builtins.mapAttrs (name: value:
|
|
||||||
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
|
|
||||||
"text/html" = browser;
|
|
||||||
# "image/*" = { desktop = "org.gnome.eog"; };
|
|
||||||
"application/x-bittorrent" = torrent;
|
|
||||||
"application/zip" = archive;
|
|
||||||
"application/rar" = archive;
|
|
||||||
"application/7z" = archive;
|
|
||||||
"application/*tar" = archive;
|
|
||||||
"x-scheme-handler/http" = browser;
|
|
||||||
"x-scheme-handler/https" = browser;
|
|
||||||
"x-scheme-handler/about" = browser;
|
|
||||||
"x-scheme-handler/unknown" = browser;
|
|
||||||
# "x-scheme-handler/mailto" = mail;
|
|
||||||
"application/pdf" = pdf;
|
|
||||||
# "application/vnd.openxmlformats-officedocument.wordprocessingml.document" =
|
|
||||||
# text_processor;
|
|
||||||
# "application/msword" = text_processor;
|
|
||||||
# "application/vnd.oasis.opendocument.text" = text_processor;
|
|
||||||
# "text/csv" = spreadsheet;
|
|
||||||
# "application/vnd.oasis.opendocument.spreadsheet" = spreadsheet;
|
|
||||||
"text/plain" = editor;
|
|
||||||
"inode/directory" = fm;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,15 @@
|
|||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in
|
in
|
||||||
|
with config.deviceSpecific;
|
||||||
{
|
{
|
||||||
|
defaultApplications.term = lib.mkIf (!isLaptop && !isVM && !isISO) {
|
||||||
|
cmd = "${pkgs.alacritty}/bin/alacritty";
|
||||||
|
desktop = "alacritty";
|
||||||
|
};
|
||||||
home-manager.users.alukard = {
|
home-manager.users.alukard = {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = !config.deviceSpecific.isLaptop;
|
enable = !(isLaptop || isVM || isISO);
|
||||||
settings = {
|
settings = {
|
||||||
font = {
|
font = {
|
||||||
normal = {
|
normal = {
|
||||||
|
@ -3,6 +3,10 @@ let
|
|||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
defaultApplications.term = lib.mkIf (config.deviceSpecific.isLaptop) {
|
||||||
|
cmd = "${pkgs.kitty}/bin/kitty";
|
||||||
|
desktop = "kitty";
|
||||||
|
};
|
||||||
home-manager.users.alukard = {
|
home-manager.users.alukard = {
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = config.deviceSpecific.isLaptop;
|
enable = config.deviceSpecific.isLaptop;
|
||||||
|
@ -64,10 +64,11 @@ with config.deviceSpecific; {
|
|||||||
|
|
||||||
# gui
|
# gui
|
||||||
# audacity # fixit
|
# audacity # fixit
|
||||||
|
blueman
|
||||||
bookworm
|
bookworm
|
||||||
discord
|
discord
|
||||||
feh
|
feh
|
||||||
gnome3.simple-scan
|
gnome.eog
|
||||||
gparted
|
gparted
|
||||||
keepassxc
|
keepassxc
|
||||||
pinta
|
pinta
|
||||||
@ -77,7 +78,6 @@ with config.deviceSpecific; {
|
|||||||
spotifywm
|
spotifywm
|
||||||
system-config-printer
|
system-config-printer
|
||||||
tdesktop
|
tdesktop
|
||||||
(vivaldi.override { proprietaryCodecs = true; })
|
|
||||||
vscode
|
vscode
|
||||||
xarchiver
|
xarchiver
|
||||||
xfce4-14.thunar
|
xfce4-14.thunar
|
||||||
@ -88,7 +88,7 @@ with config.deviceSpecific; {
|
|||||||
# misc
|
# misc
|
||||||
i3status-rust
|
i3status-rust
|
||||||
papirus-icon-theme
|
papirus-icon-theme
|
||||||
] ++ lib.optionals (!isVM) [
|
] ++ lib.optionals (!(isVM || isISO)) [
|
||||||
# rust-stable
|
# rust-stable
|
||||||
libreoffice
|
libreoffice
|
||||||
] ++ lib.optionals isGaming [
|
] ++ lib.optionals isGaming [
|
||||||
@ -102,7 +102,6 @@ with config.deviceSpecific; {
|
|||||||
wineWowPackages.full
|
wineWowPackages.full
|
||||||
] ++ lib.optionals isLaptop [
|
] ++ lib.optionals isLaptop [
|
||||||
acpi
|
acpi
|
||||||
# blueman
|
|
||||||
] ++ lib.optionals (config.device == "AMD-Workstation") [
|
] ++ lib.optionals (config.device == "AMD-Workstation") [
|
||||||
multimc
|
multimc
|
||||||
# xonar-fp
|
# xonar-fp
|
||||||
|
@ -4,6 +4,11 @@ let
|
|||||||
themeFile = config.lib.base16.templateFile { name = "rofi"; };
|
themeFile = config.lib.base16.templateFile { name = "rofi"; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
defaultApplications.dmenu = {
|
||||||
|
cmd = "${pkgs.rofi}/bin/rofi -show run";
|
||||||
|
desktop = "rofi";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.users.alukard = {
|
home-manager.users.alukard = {
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
with config.lib.base16.theme;
|
with config.lib.base16.theme;
|
||||||
|
with config.deviceSpecific;
|
||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
defaultApplications.term = lib.mkIf (isISO || isVM) {
|
||||||
|
cmd = "${pkgs.rxvt-unicode}/bin/urxvt";
|
||||||
|
desktop = "urxvt";
|
||||||
|
};
|
||||||
home-manager.users.alukard = {
|
home-manager.users.alukard = {
|
||||||
programs.urxvt = {
|
programs.urxvt = {
|
||||||
enable = config.deviceSpecific.isLaptop;
|
enable = (isISO || isVM);
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
"font" = "xft:${thm.powerlineFont}:style=Regular:size=${thm.smallFontSize}";
|
"font" = "xft:${thm.powerlineFont}:style=Regular:size=${thm.smallFontSize}";
|
||||||
"boldFont" = "xft:${thm.powerlineFont}:style=Bold:size=${thm.smallFontSize}";
|
"boldFont" = "xft:${thm.powerlineFont}:style=Bold:size=${thm.smallFontSize}";
|
||||||
|
10
modules/applications/vivaldi.nix
Normal file
10
modules/applications/vivaldi.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{ pkgs, ... }: {
|
||||||
|
defaultApplications.browser = {
|
||||||
|
cmd = "${pkgs.vivaldi}/bin/vivaldi";
|
||||||
|
desktop = "vivaldi";
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.alukard.home.packages = with pkgs; [
|
||||||
|
(vivaldi.override { proprietaryCodecs = true; })
|
||||||
|
];
|
||||||
|
}
|
@ -26,6 +26,10 @@ in
|
|||||||
# #${thm.base0F-hex}
|
# #${thm.base0F-hex}
|
||||||
# #${thm.base07-hex}
|
# #${thm.base07-hex}
|
||||||
# '';
|
# '';
|
||||||
|
defaultApplications.editor = {
|
||||||
|
cmd = "${pkgs.vscode}/bin/code";
|
||||||
|
desktop = "code";
|
||||||
|
};
|
||||||
home-manager.users.alukard.home.file.".cache/wal/colors".text = ''
|
home-manager.users.alukard.home.file.".cache/wal/colors".text = ''
|
||||||
#${thm.base00-hex}
|
#${thm.base00-hex}
|
||||||
#${thm.base08-hex}
|
#${thm.base08-hex}
|
||||||
|
@ -5,11 +5,12 @@
|
|||||||
# efi.canTouchEfiVariables = true;
|
# efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelPackages = if config.deviceSpecific.isVM then
|
# kernelPackages = if config.deviceSpecific.isVM then
|
||||||
pkgs.linuxPackages
|
# pkgs.linuxPackages
|
||||||
else
|
# else
|
||||||
# pkgs.linuxPackages_latest;
|
# # pkgs.linuxPackages_latest;
|
||||||
pkgs.linuxPackages; # FIXME
|
# pkgs.linuxPackages; # FIXME
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
supportedFilesystems = [ "ntfs" ];
|
supportedFilesystems = [ "ntfs" ];
|
||||||
|
|
||||||
|
@ -1,55 +1,17 @@
|
|||||||
builtins.listToAttrs (builtins.map (path: {
|
let
|
||||||
name = builtins.head (let
|
findModules = dir:
|
||||||
b = builtins.baseNameOf path;
|
builtins.concatLists (builtins.attrValues (builtins.mapAttrs (name: type:
|
||||||
m = builtins.match "(.*)\\.nix" b;
|
if type == "regular" then
|
||||||
in if isNull m then [ b ] else m);
|
(if name == "default.nix" then
|
||||||
value = import path;
|
[ ]
|
||||||
}) [
|
else [{
|
||||||
./applications/alacritty.nix
|
name = builtins.elemAt (builtins.match "(.*)\\.nix" name) 0;
|
||||||
./applications/kitty.nix
|
value = dir + "/${name}";
|
||||||
./applications/mpv.nix
|
}])
|
||||||
./applications/packages.nix
|
else if (builtins.readDir (dir + "/${name}")) ? "default.nix" then [{
|
||||||
./applications/rofi.nix
|
inherit name;
|
||||||
./applications/spotify
|
value = dir + "/${name}";
|
||||||
./applications/urxvt.nix
|
}] else
|
||||||
./applications/vscode.nix
|
findModules (dir + "/${name}")) (builtins.readDir dir)));
|
||||||
|
|
||||||
# ./sound/pulseeffects
|
in builtins.listToAttrs (findModules ./.)
|
||||||
|
|
||||||
# ./workspace/barrier.nix
|
|
||||||
./workspace/cursor.nix
|
|
||||||
./workspace/dunst.nix
|
|
||||||
./workspace/fonts.nix
|
|
||||||
./workspace/git.nix
|
|
||||||
./workspace/gpg.nix
|
|
||||||
./workspace/gtk.nix
|
|
||||||
./workspace/i3
|
|
||||||
./workspace/i3status-rust
|
|
||||||
./workspace/kde
|
|
||||||
./workspace/light.nix
|
|
||||||
./workspace/locale.nix
|
|
||||||
./workspace/misc.nix
|
|
||||||
./workspace/picom.nix
|
|
||||||
./workspace/ssh.nix
|
|
||||||
./workspace/xresources.nix
|
|
||||||
./workspace/zsh.nix
|
|
||||||
|
|
||||||
./applications.nix
|
|
||||||
./boot.nix
|
|
||||||
./devices.nix
|
|
||||||
./filesystems.nix
|
|
||||||
./hardware.nix
|
|
||||||
./network.nix
|
|
||||||
./nix.nix
|
|
||||||
./overlay.nix
|
|
||||||
./power.nix
|
|
||||||
./samba.nix
|
|
||||||
./secrets.nix
|
|
||||||
./security.nix
|
|
||||||
./services.nix
|
|
||||||
./sound
|
|
||||||
./themes.nix
|
|
||||||
./virtualisation.nix
|
|
||||||
./wireguard.nix
|
|
||||||
./xserver.nix
|
|
||||||
])
|
|
@ -36,6 +36,11 @@ with types; {
|
|||||||
default =
|
default =
|
||||||
!isNull (builtins.match ".*VM" config.networking.hostName);
|
!isNull (builtins.match ".*VM" config.networking.hostName);
|
||||||
};
|
};
|
||||||
|
isISO = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default =
|
||||||
|
!isNull (builtins.match ".*ISO" config.networking.hostName);
|
||||||
|
};
|
||||||
isHost = mkOption {
|
isHost = mkOption {
|
||||||
type = bool;
|
type = bool;
|
||||||
default = false;
|
default = false;
|
||||||
|
@ -8,20 +8,20 @@ with deviceSpecific;
|
|||||||
# in
|
# in
|
||||||
{
|
{
|
||||||
|
|
||||||
services.zfs = {
|
# services.zfs = {
|
||||||
trim.enable = true;
|
# trim.enable = true;
|
||||||
trim.interval = "weekly";
|
# trim.interval = "weekly";
|
||||||
autoScrub.enable = true;
|
# autoScrub.enable = true;
|
||||||
autoScrub.interval = "weekly";
|
# autoScrub.interval = "weekly";
|
||||||
autoSnapshot = {
|
# autoSnapshot = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
frequent = 8;
|
# frequent = 8;
|
||||||
hourly = 8;
|
# hourly = 8;
|
||||||
daily = 4;
|
# daily = 4;
|
||||||
weekly = 2;
|
# weekly = 2;
|
||||||
monthly = 2;
|
# monthly = 2;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/shared/nixos" = lib.mkIf isVM {
|
"/shared/nixos" = lib.mkIf isVM {
|
||||||
@ -140,7 +140,7 @@ with deviceSpecific;
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Music folder
|
# Music folder
|
||||||
# TODOL FIXIT
|
# TODO: FIXIT
|
||||||
"/home/alukard/Music" = {
|
"/home/alukard/Music" = {
|
||||||
fsType = "none";
|
fsType = "none";
|
||||||
device = "/media/windows/files/Music";
|
device = "/media/windows/files/Music";
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }: {
|
{ config, lib, pkgs, inputs, ... }: {
|
||||||
nix = rec {
|
nix = rec {
|
||||||
nixPath = lib.mkForce [ "nixpkgs=/etc/nixpkgs" ];
|
nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ];
|
||||||
binaryCaches = [ "https://cache.nixos.org" ];
|
binaryCaches = [ "https://cache.nixos.org" ];
|
||||||
|
|
||||||
registry.self.flake = inputs.self;
|
registry.self.flake = inputs.self;
|
||||||
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
|
|
||||||
trustedUsers = [ "root" "alukard" "@wheel" ];
|
trustedUsers = [ "root" "alukard" "@wheel" ];
|
||||||
|
|
||||||
@ -15,15 +16,16 @@
|
|||||||
# autoOptimiseStore = config.deviceSpecific.isSSD;
|
# autoOptimiseStore = config.deviceSpecific.isSSD;
|
||||||
autoOptimiseStore = false;
|
autoOptimiseStore = false;
|
||||||
|
|
||||||
package = pkgs.nixFlakes;
|
# package = pkgs.nixFlakes;
|
||||||
# package = inputs.nix.packages.x86_64-linux.nix;
|
package = inputs.nix.packages.x86_64-linux.nix;
|
||||||
|
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
|
|
||||||
requireSignedBinaryCaches = false;
|
requireSignedBinaryCaches = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc.nixpkgs.source = inputs.nixpkgs;
|
environment.etc.nixpkgs.source = inputs.nixpkgs;
|
||||||
|
environment.etc.self.source = inputs.self;
|
||||||
}
|
}
|
@ -24,7 +24,7 @@ in
|
|||||||
xonar-fp = pkgs.callPackage ./packages/xonar-fp.nix { };
|
xonar-fp = pkgs.callPackage ./packages/xonar-fp.nix { };
|
||||||
advance-touch = pkgs.callPackage ./packages/advance-touch.nix { };
|
advance-touch = pkgs.callPackage ./packages/advance-touch.nix { };
|
||||||
nomino = pkgs.callPackage ./packages/nomino.nix { };
|
nomino = pkgs.callPackage ./packages/nomino.nix { };
|
||||||
bpytop = pkgs.callPackage ./packages/bpytop.nix { };
|
# bpytop = pkgs.callPackage ./packages/bpytop.nix { };
|
||||||
ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { };
|
ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { };
|
||||||
bibata-cursors = pkgs.callPackage ./packages/bibata-cursors.nix { };
|
bibata-cursors = pkgs.callPackage ./packages/bibata-cursors.nix { };
|
||||||
# spotifyd = pkgs.callPackage ./packages/spotifyd.nix { };
|
# spotifyd = pkgs.callPackage ./packages/spotifyd.nix { };
|
||||||
@ -46,54 +46,6 @@ in
|
|||||||
pipewire
|
pipewire
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
fontbh100dpi = pkgs.callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
|
|
||||||
name = "font-bh-100dpi-1.0.3";
|
|
||||||
builder = ./builder.sh;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://xorg/individual/font/font-bh-100dpi-1.0.3.tar.bz2";
|
|
||||||
sha256 = "10cl4gm38dw68jzln99ijix730y7cbx8np096gmpjjwff1i73h13";
|
|
||||||
};
|
|
||||||
hardeningDisable = [ "bindnow" "relro" ];
|
|
||||||
nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
|
|
||||||
buildInputs = [ ];
|
|
||||||
preConfigure = ''
|
|
||||||
substituteInPlace configure --replace "/bin/sh" "${pkgs.bash}/bin/sh"
|
|
||||||
'';
|
|
||||||
configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
|
|
||||||
meta.platforms = lib.platforms.unix;
|
|
||||||
}) {};
|
|
||||||
fontbhlucidatypewriter100dpi = super.callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
|
|
||||||
name = "font-bh-lucidatypewriter-100dpi-1.0.3";
|
|
||||||
builder = ./builder.sh;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2";
|
|
||||||
sha256 = "1fqzckxdzjv4802iad2fdrkpaxl4w0hhs9lxlkyraq2kq9ik7a32";
|
|
||||||
};
|
|
||||||
hardeningDisable = [ "bindnow" "relro" ];
|
|
||||||
nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
|
|
||||||
buildInputs = [ ];
|
|
||||||
preConfigure = ''
|
|
||||||
substituteInPlace configure --replace "/bin/sh" "${pkgs.bash}/bin/sh"
|
|
||||||
'';
|
|
||||||
configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
|
|
||||||
meta.platforms = lib.platforms.unix;
|
|
||||||
}) {};
|
|
||||||
fontbhlucidatypewriter75dpi = super.callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
|
|
||||||
name = "font-bh-lucidatypewriter-75dpi-1.0.3";
|
|
||||||
builder = ./builder.sh;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2";
|
|
||||||
sha256 = "0cfbxdp5m12cm7jsh3my0lym9328cgm7fa9faz2hqj05wbxnmhaa";
|
|
||||||
};
|
|
||||||
hardeningDisable = [ "bindnow" "relro" ];
|
|
||||||
nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
|
|
||||||
buildInputs = [ ];
|
|
||||||
preConfigure = ''
|
|
||||||
substituteInPlace configure --replace "/bin/sh" "${pkgs.bash}/bin/sh"
|
|
||||||
'';
|
|
||||||
configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
|
|
||||||
meta.platforms = lib.platforms.unix;
|
|
||||||
}) {};
|
|
||||||
# qbittorrent = super.qbittorrent.overrideAttrs (old: rec {
|
# qbittorrent = super.qbittorrent.overrideAttrs (old: rec {
|
||||||
# version = "4.3.4.11";
|
# version = "4.3.4.11";
|
||||||
# src = super.fetchFromGitHub {
|
# src = super.fetchFromGitHub {
|
||||||
|
@ -2,16 +2,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bibata-cursors";
|
pname = "bibata-cursors";
|
||||||
version = "1.0.3";
|
version = "1.1.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/ful1e5/Bibata_Cursor/releases/download/v${version}/Bibata.tar.gz";
|
url = "https://github.com/ful1e5/Bibata_Cursor/releases/download/v${version}/Bibata.tar.gz";
|
||||||
sha256 = "1kywj7lvpg3d4dydh2d55gcggpwjcafvm87rqc0wsj1w0p7gy10b";
|
sha256 = "1kywj7lvpg3d4dydh2d55gcggpwjcafvm87rqc0wsj1w0p7gy10b";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [
|
phases = [ "installPhase" ];
|
||||||
"installPhase"
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p "$out/share/icons"
|
mkdir -p "$out/share/icons"
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
{ stdenv, fetchFromGitHub, gtk-engine-murrine }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "flatcolor-gtk-theme";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "deviantfero";
|
|
||||||
repo = "wpgtk-templates";
|
|
||||||
rev = "90da48ecb26a0b36423db7fb8076615b43b72b47";
|
|
||||||
sha256 = "1k7navk73mzw9lgvgikj96mqdkfb2icw60mdc59dq51rd0nk6d2b";
|
|
||||||
};
|
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/themes
|
|
||||||
cp -r FlatColor $out/share/themes
|
|
||||||
rm $out/share/themes/FlatColor/LICENSE
|
|
||||||
'';
|
|
||||||
}
|
|
@ -19,7 +19,7 @@ let
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
version = "5.1.0";
|
version = "5.1.3";
|
||||||
in fetchzip {
|
in fetchzip {
|
||||||
name = "ibm-plex-powerline-${version}";
|
name = "ibm-plex-powerline-${version}";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchurl, pkgs }:
|
{ stdenv, fetchurl, pkgs }:
|
||||||
let
|
let
|
||||||
icons = "https://gist.github.com/draoncc/3c20d8d4262892ccd2e227eefeafa8ef/raw/3e6e12c213fba1ec28aaa26430c3606874754c30/MaterialIcons-Regular-for-inline.ttf";
|
icons = "https://gist.github.com/AlukardBF/e92009045bbfc6f7a84e082c6634b18f/raw/3e6e12c213fba1ec28aaa26430c3606874754c30/MaterialIcons-Regular-for-inline.ttf";
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "material-icons-inline";
|
name = "material-icons-inline";
|
||||||
|
|
||||||
|
@ -1,36 +1,10 @@
|
|||||||
# { stdenv, fetchFromGitHub, rustPlatform, cmake, pkgconfig, pkgs }:
|
|
||||||
|
|
||||||
# with rustPlatform;
|
|
||||||
|
|
||||||
# buildRustPackage rec {
|
|
||||||
# pname = "nomino";
|
|
||||||
# version = "0.4.2";
|
|
||||||
|
|
||||||
# cargoSha256 = "sha256-9p/HD16yreWdjbCaUaan07fnVpPwOCiHaVemfXP6L8c=";
|
|
||||||
|
|
||||||
# src = fetchFromGitHub {
|
|
||||||
# owner = "yaa110";
|
|
||||||
# repo = "nomino";
|
|
||||||
# rev = "8f437051ea51d333aa685679f0e5902d6709d7ef";
|
|
||||||
# sha256 = "1qmy73gmmf0i9svzrw2jz7nlypfybyd1izwd1a13fgm9dn7amja3";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# nativeBuildInputs = [ cmake pkgconfig ];
|
|
||||||
|
|
||||||
# meta = with pkgs.lib; {
|
|
||||||
# description = "Batch rename utility for developers";
|
|
||||||
# homepage = "https://github.com/yaa110/nomino";
|
|
||||||
# license = licenses.mit;
|
|
||||||
# maintainers = with maintainers; [ alukardbf ];
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
{ stdenv, lib, fetchurl }:
|
{ stdenv, lib, fetchurl }:
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
pname = "nomino";
|
pname = "nomino";
|
||||||
version = "0.4.5";
|
version = "1.1.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/yaa110/nomino/releases/download/0.4.5/nomino-linux-64bit";
|
url = "https://github.com/yaa110/nomino/releases/download/${version}/nomino-linux-64bit";
|
||||||
sha256 = "03ymw74xprgxwxizlpcd5fbhv6zc7avjqw881lm74xsn3ax4m3b8";
|
sha256 = "03ymw74xprgxwxizlpcd5fbhv6zc7avjqw881lm74xsn3ax4m3b8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
{ lib, fetchFromGitHub, rustPackages_1_45, pkg-config, openssl
|
|
||||||
, withALSA ? true, alsaLib ? null
|
|
||||||
, withPulseAudio ? false, libpulseaudio ? null
|
|
||||||
, withPortAudio ? false, portaudio ? null
|
|
||||||
, withMpris ? false
|
|
||||||
, withKeyring ? false
|
|
||||||
, dbus ? null
|
|
||||||
}:
|
|
||||||
|
|
||||||
rustPackages_1_45.rustPlatform.buildRustPackage rec {
|
|
||||||
pname = "spotifyd";
|
|
||||||
version = "0.3.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "Spotifyd";
|
|
||||||
repo = "spotifyd";
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "055njhy9if4qpsbgbr6615xxhcx9plava1m4l323vi4dbw09wh5r";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoSha256 = "1ijrl208607abjwpr3cajcbj6sr35bk6ik778a58zf28kzdhrawc";
|
|
||||||
|
|
||||||
cargoBuildFlags = [
|
|
||||||
"--no-default-features"
|
|
||||||
"--features"
|
|
||||||
"${lib.optionalString withALSA "alsa_backend,"}${lib.optionalString withPulseAudio "pulseaudio_backend,"}${lib.optionalString withPortAudio "portaudio_backend,"}${lib.optionalString withMpris "dbus_mpris,"}${lib.optionalString withKeyring "dbus_keyring,"}"
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
|
||||||
|
|
||||||
buildInputs = [ openssl ]
|
|
||||||
++ lib.optional withALSA alsaLib
|
|
||||||
++ lib.optional withPulseAudio libpulseaudio
|
|
||||||
++ lib.optional withPortAudio portaudio
|
|
||||||
++ lib.optional (withMpris || withKeyring) dbus;
|
|
||||||
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "An open source Spotify client running as a UNIX daemon";
|
|
||||||
homepage = "https://github.com/Spotifyd/spotifyd";
|
|
||||||
license = with licenses; [ gpl3 ];
|
|
||||||
maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
|
|
||||||
platforms = platforms.unix;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
{ stdenv, pkgs, term }:
|
{ stdenv, pkgs, term }:
|
||||||
# TODO: config.defaultApplications doesn't work
|
|
||||||
let
|
let
|
||||||
yt-mpv = pkgs.writeShellScriptBin "yt-mpv" ''
|
yt-mpv = pkgs.writeShellScriptBin "yt-mpv" ''
|
||||||
if [[ "$1" != "--no-video" ]]; then
|
if [[ "$1" != "--no-video" ]]; then
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with config.deviceSpecific; {
|
|
||||||
services.tlp = {
|
|
||||||
enable = isLaptop;
|
|
||||||
settings = {
|
|
||||||
CPU_SCALING_GOVERNOR_ON_AC = "powersave";
|
|
||||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
|
||||||
CPU_HWP_ON_AC = "balance_performance";
|
|
||||||
CPU_HWP_ON_BAT = "balance_power";
|
|
||||||
CPU_BOOST_ON_AC = 1;
|
|
||||||
CPU_BOOST_ON_BAT = 0;
|
|
||||||
SCHED_POWERSAVE_ON_AC = 0;
|
|
||||||
SCHED_POWERSAVE_ON_BAT = 1;
|
|
||||||
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
|
|
||||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
|
||||||
DISK_DEVICES = "\"nvme0n1 sda\"";
|
|
||||||
DISK_APM_LEVEL_ON_AC = "\"255 254\"";
|
|
||||||
DISK_APM_LEVEL_ON_BAT = "\"255 254\"";
|
|
||||||
SATA_LINKPWR_ON_BAT = "\"med_power_with_dipm max_performance\"";
|
|
||||||
SATA_LINKPWR_ON_AC = "\"med_power_with_dipm max_performance\"";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# services.undervolt = lib.mkIf (config.device == "Dell-Laptop") {
|
|
||||||
# enable = true;
|
|
||||||
# coreOffset = -120;
|
|
||||||
# gpuOffset = -54;
|
|
||||||
# };
|
|
||||||
|
|
||||||
services.thermald.enable = isLaptop;
|
|
||||||
}
|
|
@ -4,6 +4,8 @@ with config.deviceSpecific; {
|
|||||||
services.acpid.enable = true;
|
services.acpid.enable = true;
|
||||||
services.acpid.logEvents = false;
|
services.acpid.logEvents = false;
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
|
||||||
services.redshift = {
|
services.redshift = {
|
||||||
enable = true;
|
enable = true;
|
||||||
temperature.day = 5500;
|
temperature.day = 5500;
|
||||||
@ -25,14 +27,6 @@ with config.deviceSpecific; {
|
|||||||
};
|
};
|
||||||
boot.kernelParams = [ "zswap.enabled=0" ];
|
boot.kernelParams = [ "zswap.enabled=0" ];
|
||||||
|
|
||||||
services.printing = {
|
|
||||||
enable = true;
|
|
||||||
drivers = [ pkgs.samsungUnifiedLinuxDriver pkgs.gutenprint ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.sane.enable = true;
|
|
||||||
services.saned.enable = true;
|
|
||||||
|
|
||||||
services.fstrim = {
|
services.fstrim = {
|
||||||
enable = isSSD;
|
enable = isSSD;
|
||||||
interval = "weekly";
|
interval = "weekly";
|
||||||
@ -53,4 +47,33 @@ with config.deviceSpecific; {
|
|||||||
systemd.services.systemd-udev-settle.enable = false;
|
systemd.services.systemd-udev-settle.enable = false;
|
||||||
|
|
||||||
services.upower.enable = true;
|
services.upower.enable = true;
|
||||||
|
|
||||||
|
services.tlp = {
|
||||||
|
enable = isLaptop;
|
||||||
|
settings = {
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "powersave";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||||
|
CPU_HWP_ON_AC = "balance_performance";
|
||||||
|
CPU_HWP_ON_BAT = "balance_power";
|
||||||
|
CPU_BOOST_ON_AC = 1;
|
||||||
|
CPU_BOOST_ON_BAT = 0;
|
||||||
|
SCHED_POWERSAVE_ON_AC = 0;
|
||||||
|
SCHED_POWERSAVE_ON_BAT = 1;
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
||||||
|
DISK_DEVICES = "\"nvme0n1 sda\"";
|
||||||
|
DISK_APM_LEVEL_ON_AC = "\"255 254\"";
|
||||||
|
DISK_APM_LEVEL_ON_BAT = "\"255 254\"";
|
||||||
|
SATA_LINKPWR_ON_BAT = "\"med_power_with_dipm max_performance\"";
|
||||||
|
SATA_LINKPWR_ON_AC = "\"med_power_with_dipm max_performance\"";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.undervolt = lib.mkIf (config.device == "Dell-Laptop") {
|
||||||
|
enable = true;
|
||||||
|
coreOffset = -110; # -120
|
||||||
|
gpuOffset = -46; # -54
|
||||||
|
};
|
||||||
|
|
||||||
|
services.thermald.enable = isLaptop;
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
actions = {
|
actions = {
|
||||||
"update-props" = {
|
"update-props" = {
|
||||||
"bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
|
"bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
|
||||||
|
"bluez5.hw-volume" = [ "hfp_ag" "hsp_ag" "a2dp_source" "a2dp_sink" ];
|
||||||
# mSBC is not expected to work on all headset + adapter combinations.
|
# mSBC is not expected to work on all headset + adapter combinations.
|
||||||
"bluez5.msbc-support" = true;
|
"bluez5.msbc-support" = true;
|
||||||
# SBC-XQ is not expected to work on all headset + adapter combinations.
|
# SBC-XQ is not expected to work on all headset + adapter combinations.
|
||||||
@ -33,6 +34,28 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
# media-session.config.bluez-monitor = {
|
||||||
|
# properties = { };
|
||||||
|
# rules = [
|
||||||
|
# {
|
||||||
|
# actions = {
|
||||||
|
# update-props = {
|
||||||
|
# "bluez5.auto-connect" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
|
||||||
|
# "bluez5.hw-volume" =
|
||||||
|
# [ "hfp_ag" "hsp_ag" "a2dp_source" "a2dp_sink" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# matches = [{ "device.name" = "~bluez_card.*"; }];
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# actions = { update-props = { "node.pause-on-idle" = false; }; };
|
||||||
|
# matches = [
|
||||||
|
# { "node.name" = "~bluez_input.*"; }
|
||||||
|
# { "node.name" = "~bluez_output.*"; }
|
||||||
|
# ];
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
iconFont = "Font Awesome 5 Free";
|
iconFont = "Font Awesome 5 Free";
|
||||||
fallbackIcon = "Material Icons";
|
fallbackIcon = "Material Icons";
|
||||||
iconTheme = "Papirus-Dark";
|
iconTheme = "Papirus-Dark";
|
||||||
|
iconPackage = pkgs.papirus-icon-theme;
|
||||||
|
|
||||||
normalFontSize = "12";
|
normalFontSize = "12";
|
||||||
headerFontSize = "14";
|
headerFontSize = "14";
|
||||||
|
14
modules/workspace/auto-run.nix
Normal file
14
modules/workspace/auto-run.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ config, pkgs, lib, ... }: {
|
||||||
|
home-manager.users.alukard = {
|
||||||
|
|
||||||
|
programs.command-not-found = {
|
||||||
|
enable = true;
|
||||||
|
dbPath = ../../misc/programs.sqlite;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
NIX_AUTO_RUN = "1";
|
||||||
|
};
|
||||||
|
}
|
12
modules/workspace/direnv.nix
Normal file
12
modules/workspace/direnv.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ ... }: {
|
||||||
|
home-manager.users.alukard = {
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
nix-direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableFlakes = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -7,7 +7,7 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "${thm.iconTheme}";
|
name = "${thm.iconTheme}";
|
||||||
package = pkgs.papirus-icon-theme;
|
package = thm.iconPackage;
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
global = {
|
global = {
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
signByDefault = true;
|
signByDefault = true;
|
||||||
key = "922DA6E758A0FE4CFAB4E4B2FD266B810DF48DF2";
|
key = "922DA6E758A0FE4CFAB4E4B2FD266B810DF48DF2";
|
||||||
};
|
};
|
||||||
|
ignores = [ ".envrc" ".direnv" "*~" ];
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
core = {
|
core = {
|
||||||
editor = "code --wait";
|
editor = "code --wait";
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users.alukard = {
|
home-manager.users.alukard = {
|
||||||
programs.gpg.enable = true;
|
programs.gpg = {
|
||||||
|
enable = true;
|
||||||
|
homedir = "${config.home-manager.users.alukard.xdg.dataHome}/gnupg";
|
||||||
|
};
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSshSupport = true;
|
enableSshSupport = true;
|
||||||
|
@ -1,71 +1,33 @@
|
|||||||
{ pkgs, config, lib, inputs, ... }:
|
{ pkgs, config, lib, inputs, ... }:
|
||||||
let
|
let
|
||||||
thm = config.lib.base16.theme;
|
thm = config.lib.base16.theme;
|
||||||
materia_colors = pkgs.writeTextFile {
|
|
||||||
name = "gtk-generated-colors";
|
|
||||||
# https://github.com/themix-project/themix-plugin-base16/blob/453cccbd2e22f69078c6ded894421c4c0f943bc0/oomox_plugin.py#L424
|
|
||||||
# text = ''
|
|
||||||
# BG=${thm.base00-hex}
|
|
||||||
# FG=${thm.base07-hex}
|
|
||||||
# BTN_BG=${thm.base00-hex}
|
|
||||||
# BTN_FG=${thm.base07-hex}
|
|
||||||
# MENU_BG=${thm.base00-hex}
|
|
||||||
# MENU_FG=${thm.base07-hex}
|
|
||||||
# ACCENT_BG=${thm.base02-hex}
|
|
||||||
# SEL_BG=${thm.base0D-hex}
|
|
||||||
# SEL_FG=${thm.base00-hex}
|
|
||||||
# TXT_BG=${thm.base00-hex}
|
|
||||||
# TXT_FG=${thm.base07-hex}
|
|
||||||
# HDR_BTN_BG=${thm.base00-hex}
|
|
||||||
# HDR_BTN_FG=${thm.base07-hex}
|
|
||||||
# WM_BORDER_FOCUS=${thm.base02-hex}
|
|
||||||
# WM_BORDER_UNFOCUS=${thm.base01-hex}
|
|
||||||
# MATERIA_STYLE_COMPACT=True
|
|
||||||
# MATERIA_COLOR_VARIANT=dark
|
|
||||||
# UNITY_DEFAULT_LAUNCHER_STYLE=False
|
|
||||||
# NAME=generated
|
|
||||||
# '';
|
|
||||||
text = ''
|
|
||||||
BG=${thm.base01-hex}
|
|
||||||
FG=${thm.base06-hex}
|
|
||||||
HDR_BG=${thm.base00-hex}
|
|
||||||
HDR_FG=${thm.base05-hex}
|
|
||||||
SEL_BG=${thm.base0E-hex}
|
|
||||||
SEL_FG=${thm.base00-hex}
|
|
||||||
ACCENT_BG=${thm.base0E-hex}
|
|
||||||
TXT_BG=${thm.base02-hex}
|
|
||||||
TXT_FG=${thm.base07-hex}
|
|
||||||
BTN_BG=${thm.base00-hex}
|
|
||||||
BTN_FG=${thm.base05-hex}
|
|
||||||
HDR_BTN_BG=${thm.base01-hex}
|
|
||||||
HDR_BTN_FG=${thm.base05-hex}
|
|
||||||
ICONS_LIGHT_FOLDER=${thm.base0D-hex}
|
|
||||||
ICONS_LIGHT=${thm.base0D-hex}
|
|
||||||
ICONS_MEDIUM=${thm.base0E-hex}
|
|
||||||
ICONS_DARK=${thm.base00-hex}
|
|
||||||
MATERIA_STYLE_COMPACT=True
|
|
||||||
MATERIA_COLOR_VARIANT=dark
|
|
||||||
UNITY_DEFAULT_LAUNCHER_STYLE=False
|
|
||||||
NAME=generated
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
in {
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(self: super: {
|
(self: super: {
|
||||||
generated-gtk-theme = self.stdenv.mkDerivation rec {
|
generated-gtk-theme =
|
||||||
name = "generated-gtk-theme";
|
pkgs.callPackage "${inputs.rycee}/pkgs/materia-theme" {
|
||||||
src = inputs.materia-theme;
|
configBase16 = {
|
||||||
buildInputs = with self; [ sassc bc which inkscape optipng ];
|
name = "Generated";
|
||||||
installPhase = ''
|
kind = "dark";
|
||||||
HOME=/build
|
colors = {
|
||||||
chmod 777 -R .
|
base00.hex.rgb = "${thm.base00-hex}";
|
||||||
patchShebangs .
|
base01.hex.rgb = "${thm.base00-hex}";
|
||||||
mkdir -p $out/share/themes
|
base02.hex.rgb = "${thm.base00-hex}";
|
||||||
substituteInPlace change_color.sh --replace "\$HOME/.themes" "$out/share/themes"
|
base03.hex.rgb = "${thm.base03-hex}";
|
||||||
echo "Changing colours:"
|
base04.hex.rgb = "${thm.base04-hex}";
|
||||||
./change_color.sh -o Generated ${materia_colors}
|
base05.hex.rgb = "${thm.base05-hex}";
|
||||||
chmod 555 -R .
|
base06.hex.rgb = "${thm.base06-hex}";
|
||||||
'';
|
base07.hex.rgb = "${thm.base07-hex}";
|
||||||
|
base08.hex.rgb = "${thm.base08-hex}";
|
||||||
|
base09.hex.rgb = "${thm.base09-hex}";
|
||||||
|
base0A.hex.rgb = "${thm.base0A-hex}";
|
||||||
|
base0B.hex.rgb = "${thm.base0B-hex}";
|
||||||
|
base0C.hex.rgb = "${thm.base0C-hex}";
|
||||||
|
base0D.hex.rgb = "${thm.base0D-hex}";
|
||||||
|
base0E.hex.rgb = "${thm.base0E-hex}";
|
||||||
|
base0F.hex.rgb = "${thm.base0F-hex}";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
@ -76,27 +38,21 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "${thm.iconTheme}";
|
name = "${thm.iconTheme}";
|
||||||
package = pkgs.papirus-icon-theme;
|
package = thm.iconPackage;
|
||||||
};
|
};
|
||||||
theme = {
|
theme = {
|
||||||
name = "Generated";
|
name = "Generated";
|
||||||
package = pkgs.generated-gtk-theme;
|
package = pkgs.generated-gtk-theme;
|
||||||
};
|
};
|
||||||
font = {
|
font = {
|
||||||
name = "${thm.font} ${thm.normalFontSize}";
|
name = "${thm.font}";
|
||||||
};
|
size = lib.toInt thm.normalFontSize;
|
||||||
gtk3 = {
|
|
||||||
extraConfig = {
|
|
||||||
gtk-cursor-theme-name = "Bibata-Modern-Classic";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables.GTK_THEME = "Generated";
|
|
||||||
home.sessionVariables.XDG_DATA_DIRS = [
|
home.sessionVariables.XDG_DATA_DIRS = [
|
||||||
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
|
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
|
||||||
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
||||||
];
|
];
|
||||||
|
home.sessionVariables.GTK_THEME = "Generated";
|
||||||
};
|
};
|
||||||
environment.sessionVariables.XDG_CURRENT_DESKTOP = "X-Generic";
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ in {
|
|||||||
};
|
};
|
||||||
# fonts = [ "${thm.fontMono} ${thm.microFontSize}" ];
|
# fonts = [ "${thm.fontMono} ${thm.microFontSize}" ];
|
||||||
fonts = {
|
fonts = {
|
||||||
names = [ "${thm.fontMono}" ];
|
names = [ "${thm.font}" ];
|
||||||
style = "Regular";
|
style = "Regular";
|
||||||
# size = thm.microFontSize;
|
# size = thm.microFontSize;
|
||||||
size = 10.0;
|
size = 10.0;
|
||||||
@ -88,12 +88,8 @@ in {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
startup = map (a: { notification = false; } // a) [
|
startup = (map (command: { inherit command; }) config.startupApplications) ++ [
|
||||||
{ command = "${pkgs.feh}/bin/feh --bg-fill $HOME/nixos-config/misc/wallpaper"; }
|
{ command = "${pkgs.feh}/bin/feh --bg-fill $HOME/nixos-config/misc/wallpaper"; }
|
||||||
{ command = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources"; }
|
|
||||||
{ command = "${pkgs.tdesktop}/bin/telegram-desktop"; }
|
|
||||||
{ command = "${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx"; }
|
|
||||||
{ command = "${apps.term.cmd} spt"; }
|
|
||||||
];
|
];
|
||||||
keybindings = let
|
keybindings = let
|
||||||
script = name: content: "exec ${pkgs.writeScript name content}";
|
script = name: content: "exec ${pkgs.writeScript name content}";
|
||||||
@ -101,6 +97,7 @@ in {
|
|||||||
++ [ [ "c" "" ] [ "t" "" ] ];
|
++ [ [ "c" "" ] [ "t" "" ] ];
|
||||||
in ({
|
in ({
|
||||||
"${modifier}+q" = "kill";
|
"${modifier}+q" = "kill";
|
||||||
|
"${modifier}+Shift+q" = "move container to workspace temp; [workspace=__focused__] kill; workspace temp; move container to workspace temp; workspace temp";
|
||||||
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
|
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
|
||||||
"${modifier}+Return" = "exec ${apps.term.cmd}";
|
"${modifier}+Return" = "exec ${apps.term.cmd}";
|
||||||
"${modifier}+e" = "exec ${apps.editor.cmd}";
|
"${modifier}+e" = "exec ${apps.editor.cmd}";
|
||||||
|
@ -8,8 +8,8 @@ in {
|
|||||||
id = "default";
|
id = "default";
|
||||||
# fonts = [ "${thm.iconFont} Solid ${thm.microFontSize}" "${thm.fallbackIcon} ${thm.microFontSize}" "${thm.powerlineFont} SemiBold ${thm.microFontSize}" ];
|
# fonts = [ "${thm.iconFont} Solid ${thm.microFontSize}" "${thm.fallbackIcon} ${thm.microFontSize}" "${thm.powerlineFont} SemiBold ${thm.microFontSize}" ];
|
||||||
fonts = {
|
fonts = {
|
||||||
names = [ "${thm.iconFont}" "${thm.fallbackIcon}" "${thm.powerlineFont}" ];
|
names = [ "${thm.powerlineFont}" "${thm.iconFont}" "${thm.fallbackIcon}" ];
|
||||||
style = "Solid Regular SemiBold";
|
style = "Regular";
|
||||||
# size = thm.microFontSize;
|
# size = thm.microFontSize;
|
||||||
size = 10.0;
|
size = 10.0;
|
||||||
};
|
};
|
||||||
@ -134,7 +134,7 @@ in {
|
|||||||
[[block]]
|
[[block]]
|
||||||
block = "battery"
|
block = "battery"
|
||||||
interval = 10
|
interval = 10
|
||||||
format = "{percentage}% {time}"
|
format = "{percentage} {time}"
|
||||||
|
|
||||||
[[block]]
|
[[block]]
|
||||||
block = "backlight"
|
block = "backlight"
|
||||||
@ -161,7 +161,7 @@ in {
|
|||||||
[[block]]
|
[[block]]
|
||||||
block = "cpu"
|
block = "cpu"
|
||||||
interval = 1
|
interval = 1
|
||||||
format = "{utilization}% {frequency}"
|
format = "{utilization} {frequency}"
|
||||||
|
|
||||||
[[block]]
|
[[block]]
|
||||||
block = "memory"
|
block = "memory"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ iconfont, ... }: ''
|
{ iconfont, ... }: ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
echo '<span font="${iconfont} Solid"></span>' `zfs list -o space | head -2 | tail -1 | awk '{printf "%s / %s", $3, $2}'`
|
echo '<span font="${iconfont} Solid"></span>'
|
||||||
''
|
''
|
||||||
|
@ -1,124 +1,118 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
let
|
with config.lib.base16.theme; {
|
||||||
thm = config.lib.base16.theme;
|
xdg.portal.enable = true;
|
||||||
in
|
services.dbus.packages =
|
||||||
{
|
[ pkgs.systemd pkgs.papirus-icon-theme ];
|
||||||
# xdg.portal.enable = true;
|
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
|
||||||
# services.dbus.packages = [
|
|
||||||
# pkgs.systemd
|
|
||||||
# pkgs.papirus-icon-theme
|
|
||||||
# ];
|
|
||||||
# services.udev.packages = [
|
|
||||||
# pkgs.libmtp
|
|
||||||
# pkgs.media-player-info
|
|
||||||
# ];
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
# DESKTOP_SESSION = "kde";
|
|
||||||
QT_XFT = "true";
|
QT_XFT = "true";
|
||||||
QT_SELECT = "5";
|
QT_SELECT = "5";
|
||||||
KDE_SESSION_VERSION = "5";
|
KDE_SESSION_VERSION = "5";
|
||||||
QT_SCALE_FACTOR = "1";
|
QT_SCALE_FACTOR = "1";
|
||||||
QT_AUTO_SCREEN_SCALE_FACTOR = "0";
|
QT_AUTO_SCREEN_SCALE_FACTOR = "0";
|
||||||
# DE = "kde";
|
|
||||||
QT_QPA_PLATFORMTHEME = "kde";
|
QT_QPA_PLATFORMTHEME = "kde";
|
||||||
KDEDIRS = "/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
|
KDEDIRS =
|
||||||
|
"/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
|
||||||
};
|
};
|
||||||
|
home-manager.users.alukard = {
|
||||||
|
services.kdeconnect.enable = true;
|
||||||
|
|
||||||
home-manager.users.alukard.xdg.configFile."kdeglobals".text = lib.generators.toINI {} {
|
xdg.configFile."kdeglobals".text = lib.generators.toINI {} {
|
||||||
"Colors:Button" = {
|
"Colors:Button" = {
|
||||||
BackgroundAlternate = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
BackgroundAlternate = base01-hex;
|
||||||
BackgroundNormal = "${thm.base00-rgb-r}, ${thm.base00-rgb-g}, ${thm.base00-rgb-b}";
|
BackgroundNormal = base01-hex;
|
||||||
DecorationFocus = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationFocus = base02-hex;
|
||||||
DecorationHover = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationHover = base02-hex;
|
||||||
ForegroundActive = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
ForegroundActive = base05-hex;
|
||||||
ForegroundInactive = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
ForegroundInactive = base01-hex;
|
||||||
ForegroundLink = "${thm.base0D-rgb-r}, ${thm.base0D-rgb-g}, ${thm.base0D-rgb-b}";
|
ForegroundLink = base0D-hex;
|
||||||
ForegroundNegative = "${thm.base08-rgb-r}, ${thm.base08-rgb-g}, ${thm.base08-rgb-b}";
|
ForegroundNegative = base08-hex;
|
||||||
ForegroundNeutral = "${thm.base09-rgb-r}, ${thm.base09-rgb-g}, ${thm.base09-rgb-b}";
|
ForegroundNeutral = base09-hex;
|
||||||
ForegroundNormal = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundNormal = base05-hex;
|
||||||
ForegroundPositive = "${thm.base0B-rgb-r}, ${thm.base0B-rgb-g}, ${thm.base0B-rgb-b}";
|
ForegroundPositive = base0B-hex;
|
||||||
ForegroundVisited = "${thm.base03-rgb-r}, ${thm.base03-rgb-g}, ${thm.base03-rgb-b}";
|
ForegroundVisited = base03-hex;
|
||||||
};
|
};
|
||||||
"Colors:Complementary" = {
|
"Colors:Complementary" = {
|
||||||
BackgroundAlternate = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
BackgroundAlternate = base01-hex;
|
||||||
BackgroundNormal = "${thm.base00-rgb-r}, ${thm.base00-rgb-g}, ${thm.base00-rgb-b}";
|
BackgroundNormal = base03-hex;
|
||||||
DecorationFocus = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationFocus = base02-hex;
|
||||||
DecorationHover = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationHover = base02-hex;
|
||||||
ForegroundActive = "${thm.base09-rgb-r}, ${thm.base09-rgb-g}, ${thm.base09-rgb-b}";
|
ForegroundActive = base09-hex;
|
||||||
ForegroundInactive = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
ForegroundInactive = base01-hex;
|
||||||
ForegroundLink = "${thm.base0D-rgb-r}, ${thm.base0D-rgb-g}, ${thm.base0D-rgb-b}";
|
ForegroundLink = base0D-hex;
|
||||||
ForegroundNegative = "${thm.base08-rgb-r}, ${thm.base08-rgb-g}, ${thm.base08-rgb-b}";
|
ForegroundNegative = base08-hex;
|
||||||
ForegroundNeutral = "${thm.base0A-rgb-r}, ${thm.base0A-rgb-g}, ${thm.base0A-rgb-b}";
|
ForegroundNeutral = base0A-hex;
|
||||||
ForegroundNormal = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundNormal = base05-hex;
|
||||||
ForegroundPositive = "${thm.base0B-rgb-r}, ${thm.base0B-rgb-g}, ${thm.base0B-rgb-b}";
|
ForegroundPositive = base0B-hex;
|
||||||
ForegroundVisited = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
ForegroundVisited = base02-hex;
|
||||||
};
|
};
|
||||||
"Colors:Selection" = {
|
"Colors:Selection" = {
|
||||||
BackgroundAlternate = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
BackgroundAlternate = base0D-hex;
|
||||||
BackgroundNormal = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
BackgroundNormal = base0D-hex;
|
||||||
DecorationFocus = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationFocus = base0D-hex;
|
||||||
DecorationHover = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationHover = base0D-hex;
|
||||||
ForegroundActive = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundActive = base05-hex;
|
||||||
ForegroundInactive = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundInactive = base05-hex;
|
||||||
ForegroundLink = "${thm.base0D-rgb-r}, ${thm.base0D-rgb-g}, ${thm.base0D-rgb-b}";
|
ForegroundLink = base0D-hex;
|
||||||
ForegroundNegative = "${thm.base08-rgb-r}, ${thm.base08-rgb-g}, ${thm.base08-rgb-b}";
|
ForegroundNegative = base08-hex;
|
||||||
ForegroundNeutral = "${thm.base09-rgb-r}, ${thm.base09-rgb-g}, ${thm.base09-rgb-b}";
|
ForegroundNeutral = base09-hex;
|
||||||
ForegroundNormal = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundNormal = base05-hex;
|
||||||
ForegroundPositive = "${thm.base0B-rgb-r}, ${thm.base0B-rgb-g}, ${thm.base0B-rgb-b}";
|
ForegroundPositive = base0B-hex;
|
||||||
ForegroundVisited = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
ForegroundVisited = base02-hex;
|
||||||
};
|
};
|
||||||
"Colors:Tooltip" = {
|
"Colors:Tooltip" = {
|
||||||
BackgroundAlternate = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
BackgroundAlternate = base01-hex;
|
||||||
BackgroundNormal = "${thm.base00-rgb-r}, ${thm.base00-rgb-g}, ${thm.base00-rgb-b}";
|
BackgroundNormal = base00-hex;
|
||||||
DecorationFocus = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationFocus = base02-hex;
|
||||||
DecorationHover = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationHover = base02-hex;
|
||||||
ForegroundActive = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
ForegroundActive = base02-hex;
|
||||||
ForegroundInactive = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
ForegroundInactive = base01-hex;
|
||||||
ForegroundLink = "${thm.base0D-rgb-r}, ${thm.base0D-rgb-g}, ${thm.base0D-rgb-b}";
|
ForegroundLink = base0D-hex;
|
||||||
ForegroundNegative = "${thm.base08-rgb-r}, ${thm.base08-rgb-g}, ${thm.base08-rgb-b}";
|
ForegroundNegative = base08-hex;
|
||||||
ForegroundNeutral = "${thm.base09-rgb-r}, ${thm.base09-rgb-g}, ${thm.base09-rgb-b}";
|
ForegroundNeutral = base09-hex;
|
||||||
ForegroundNormal = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundNormal = base05-hex;
|
||||||
ForegroundPositive = "${thm.base0B-rgb-r}, ${thm.base0B-rgb-g}, ${thm.base0B-rgb-b}";
|
ForegroundPositive = base0B-hex;
|
||||||
ForegroundVisited = "${thm.base03-rgb-r}, ${thm.base03-rgb-g}, ${thm.base03-rgb-b}";
|
ForegroundVisited = base03-hex;
|
||||||
};
|
};
|
||||||
"Colors:View" = {
|
"Colors:View" = {
|
||||||
BackgroundAlternate = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
BackgroundAlternate = base01-hex;
|
||||||
BackgroundNormal = "${thm.base00-rgb-r}, ${thm.base00-rgb-g}, ${thm.base00-rgb-b}";
|
BackgroundNormal = base00-hex;
|
||||||
DecorationFocus = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationFocus = base02-hex;
|
||||||
DecorationHover = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationHover = base02-hex;
|
||||||
ForegroundActive = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
ForegroundActive = base02-hex;
|
||||||
ForegroundInactive = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
ForegroundInactive = base01-hex;
|
||||||
ForegroundLink = "${thm.base0D-rgb-r}, ${thm.base0D-rgb-g}, ${thm.base0D-rgb-b}";
|
ForegroundLink = base0D-hex;
|
||||||
ForegroundNegative = "${thm.base08-rgb-r}, ${thm.base08-rgb-g}, ${thm.base08-rgb-b}";
|
ForegroundNegative = base08-hex;
|
||||||
ForegroundNeutral = "${thm.base09-rgb-r}, ${thm.base09-rgb-g}, ${thm.base09-rgb-b}";
|
ForegroundNeutral = base09-hex;
|
||||||
ForegroundNormal = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundNormal = base05-hex;
|
||||||
ForegroundPositive = "${thm.base0B-rgb-r}, ${thm.base0B-rgb-g}, ${thm.base0B-rgb-b}";
|
ForegroundPositive = base0B-hex;
|
||||||
ForegroundVisited = "${thm.base03-rgb-r}, ${thm.base03-rgb-g}, ${thm.base03-rgb-b}";
|
ForegroundVisited = base03-hex;
|
||||||
};
|
};
|
||||||
"Colors:Window" = {
|
"Colors:Window" = {
|
||||||
BackgroundAlternate = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
BackgroundAlternate = base01-hex;
|
||||||
BackgroundNormal = "${thm.base00-rgb-r}, ${thm.base00-rgb-g}, ${thm.base00-rgb-b}";
|
BackgroundNormal = base00-hex;
|
||||||
DecorationFocus = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationFocus = base02-hex;
|
||||||
DecorationHover = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
DecorationHover = base02-hex;
|
||||||
ForegroundActive = "${thm.base02-rgb-r}, ${thm.base02-rgb-g}, ${thm.base02-rgb-b}";
|
ForegroundActive = base02-hex;
|
||||||
ForegroundInactive = "${thm.base01-rgb-r}, ${thm.base01-rgb-g}, ${thm.base01-rgb-b}";
|
ForegroundInactive = base01-hex;
|
||||||
ForegroundLink = "${thm.base0D-rgb-r}, ${thm.base0D-rgb-g}, ${thm.base0D-rgb-b}";
|
ForegroundLink = base0D-hex;
|
||||||
ForegroundNegative = "${thm.base08-rgb-r}, ${thm.base08-rgb-g}, ${thm.base08-rgb-b}";
|
ForegroundNegative = base08-hex;
|
||||||
ForegroundNeutral = "${thm.base09-rgb-r}, ${thm.base09-rgb-g}, ${thm.base09-rgb-b}";
|
ForegroundNeutral = base09-hex;
|
||||||
ForegroundNormal = "${thm.base05-rgb-r}, ${thm.base05-rgb-g}, ${thm.base05-rgb-b}";
|
ForegroundNormal = base05-hex;
|
||||||
ForegroundPositive = "${thm.base0B-rgb-r}, ${thm.base0B-rgb-g}, ${thm.base0B-rgb-b}";
|
ForegroundPositive = base0B-hex;
|
||||||
ForegroundVisited = "${thm.base03-rgb-r}, ${thm.base03-rgb-g}, ${thm.base03-rgb-b}";
|
ForegroundVisited = base03-hex;
|
||||||
};
|
};
|
||||||
General = {
|
General = {
|
||||||
ColorScheme = "Generated";
|
ColorScheme = "Generated";
|
||||||
Name = "Generated";
|
Name = "Generated";
|
||||||
fixed = "${thm.fontMono},${thm.smallFontSize},-1,5,50,0,0,0,0,0";
|
fixed = "${fontMono},${smallFontSize},-1,5,50,0,0,0,0,0";
|
||||||
font = "${thm.font},${thm.smallFontSize},-1,5,50,0,0,0,0,0";
|
font = "${font},${smallFontSize},-1,5,50,0,0,0,0,0";
|
||||||
menuFont = "${thm.font},${thm.smallFontSize},-1,5,50,0,0,0,0,0";
|
menuFont = "${font},${smallFontSize},-1,5,50,0,0,0,0,0";
|
||||||
shadeSortColumn = true;
|
shadeSortColumn = true;
|
||||||
smallestReadableFont = "${thm.font},${thm.minimalFontSize},-1,5,57,0,0,0,0,0,Medium";
|
smallestReadableFont =
|
||||||
toolBarFont = "${thm.font},${thm.smallFontSize},-1,5,50,0,0,0,0,0";
|
"${font},${minimalFontSize},-1,5,57,0,0,0,0,0,Medium";
|
||||||
|
toolBarFont = "${font},${smallFontSize},-1,5,50,0,0,0,0,0";
|
||||||
};
|
};
|
||||||
KDE = {
|
KDE = {
|
||||||
DoubleClickInterval = 400;
|
DoubleClickInterval = 400;
|
||||||
@ -130,6 +124,7 @@ in
|
|||||||
contrast = 4;
|
contrast = 4;
|
||||||
widgetStyle = "Breeze";
|
widgetStyle = "Breeze";
|
||||||
};
|
};
|
||||||
Icons = { Theme = "${thm.iconTheme}"; };
|
Icons = { Theme = "${iconTheme}"; };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,39 +1,20 @@
|
|||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, lib, config, ... }: {
|
||||||
|
|
||||||
environment.sessionVariables = config.home-manager.users.alukard.home.sessionVariables // {
|
environment.sessionVariables = config.home-manager.users.alukard.home.sessionVariables // rec {
|
||||||
NIX_AUTO_RUN = "1";
|
LESS = "MR";
|
||||||
|
LESSHISTFILE = "~/.local/share/lesshist";
|
||||||
|
SYSTEMD_LESS = LESS;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.alukard = {
|
home-manager.users.alukard = {
|
||||||
xdg.enable = true;
|
|
||||||
|
|
||||||
home.activation."mimeapps-remove" = {
|
|
||||||
before = [ "linkGeneration" ];
|
|
||||||
after = [ ];
|
|
||||||
data = "rm -f /home/alukard/.config/mimeapps.list";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.udiskie.enable = true;
|
services.udiskie.enable = true;
|
||||||
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
# enable use_flake support
|
|
||||||
stdlib = ''
|
|
||||||
use_flake() {
|
|
||||||
watch_file flake.nix
|
|
||||||
watch_file flake.lock
|
|
||||||
eval "$(nix print-dev-env)"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
news.display = "silent";
|
news.display = "silent";
|
||||||
|
|
||||||
systemd.user.startServices = true;
|
systemd.user.startServices = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.alukard.home.stateVersion = "20.09";
|
home-manager.users.alukard.home.stateVersion = "21.11";
|
||||||
|
system.stateVersion = "21.11";
|
||||||
|
|
||||||
system.stateVersion = "20.03";
|
systemd.services.systemd-timesyncd.wantedBy = [ "multi-user.target" ];
|
||||||
|
systemd.timers.systemd-timesyncd = { timerConfig.OnCalendar = "hourly"; };
|
||||||
}
|
}
|
||||||
|
12
modules/workspace/print-scan.nix
Normal file
12
modules/workspace/print-scan.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
services.printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = [ pkgs.samsungUnifiedLinuxDriver pkgs.gutenprint ];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.sane.enable = true;
|
||||||
|
services.saned.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.gnome3.simple-scan ];
|
||||||
|
}
|
@ -16,25 +16,4 @@
|
|||||||
Match host * exec "gpg-connect-agent UPDATESTARTUPTTY /bye"
|
Match host * exec "gpg-connect-agent UPDATESTARTUPTTY /bye"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.openssh = {
|
|
||||||
# enable = true;
|
|
||||||
# passwordAuthentication = false;
|
|
||||||
# permitRootLogin = "yes";
|
|
||||||
# forwardX11 = true;
|
|
||||||
# ports = [ 22 ];
|
|
||||||
# };
|
|
||||||
# home-manager.users.alukard.programs.ssh = {
|
|
||||||
# enable = true;
|
|
||||||
# matchBlocks = {
|
|
||||||
# "*" = {
|
|
||||||
# compression = false;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# users.users.alukard.openssh.authorizedKeys.keys = [
|
|
||||||
# "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+xd8ClJPvJuAdYC9HlNnjiubEtYfvnKjYr9ROV+UmPVvI3ZITF24OaMI+fxgR0EqGfcUzSGom8528IB53Q3aFMIAaA0vKjW+jrByyB2l/k/+ttpLbH75c9WyOpAcUDTen8BhHKPyXOHoJ1jLu7GFmtPZ+mZo8thFB/VIRrwECHd8DnF0drsSCorkRp1bZC7bAHgztaYHNBUoAVGgJ7nLwW7DotlgbUEDiPJHXOxd/c/ZlXIB/cfUUqF+L5ThbMPhMcwRMspLy+nQdmHhih9k6SkvYqJoNqHT5/XeShb0RkIzvUWT2CYTPop5kAY5mMnatVTOY1FZPhHzk3G8MhOQ3r/elM/ecZxmjL8uozMN9kRGf1IL4DgQZfVqQRILdNSQGb0tfeiyirNZe1RlDw9UvMnZJOw0EkiC9lSSRhBWXXxAmxRrbNFTPQSp+/kiIGDmp2AsGhD11CfTDEU3wcLEUPBUqp1FYSzHncJyEKGy2Dpa5xaUJ0cuyGL4W3WHDXa4sTfY+AIXbQTD88Ujdsbfzyd6lrikG4D/crCurXissrh7q9DuYKWRI24cp5bw9lG33U1EXisnZqFyZNwMAmSj2QEGsHCwSevn0FgyRa2WYXgpZ9hfgY4le+ZSMo2JTosQ6DjGyxMDyQAHJ/ismTTzL67Q2p6U+73toYm62Qqdspw== (none)"
|
|
||||||
# ];
|
|
||||||
# programs.ssh.askPassword = "${pkgs.plasma5.ksshaskpass}/bin/ksshaskpass";
|
|
||||||
}
|
}
|
||||||
|
16
modules/workspace/xdg.nix
Normal file
16
modules/workspace/xdg.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ config, pkgs, lib, ... }: {
|
||||||
|
home-manager.users.alukard = {
|
||||||
|
xdg.enable = true;
|
||||||
|
xdg.userDirs.enable = true;
|
||||||
|
|
||||||
|
home.sessionVariables.XDG_DATA_DIRS = [
|
||||||
|
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
|
||||||
|
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
XDG_CURRENT_DESKTOP = "X-Generic";
|
||||||
|
DE = "generic";
|
||||||
|
};
|
||||||
|
}
|
@ -28,6 +28,14 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dotDir = ".config/zsh";
|
||||||
|
|
||||||
|
history = rec {
|
||||||
|
size = 1000000;
|
||||||
|
save = size;
|
||||||
|
path = "$HOME/.local/share/zsh/history";
|
||||||
|
};
|
||||||
|
|
||||||
envExtra = ''
|
envExtra = ''
|
||||||
SHELL="${pkgs.zsh}/bin/zsh";
|
SHELL="${pkgs.zsh}/bin/zsh";
|
||||||
'';
|
'';
|
||||||
@ -92,6 +100,10 @@
|
|||||||
manix-fzf() {
|
manix-fzf() {
|
||||||
manix "" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | fzf --preview="manix '{}'" | xargs manix
|
manix "" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | fzf --preview="manix '{}'" | xargs manix
|
||||||
}
|
}
|
||||||
|
|
||||||
|
source ${pkgs.nix-zsh-completions}/share/zsh/plugins/nix/nix-zsh-completions.plugin.zsh
|
||||||
|
fpath=(${pkgs.nix-zsh-completions}/share/zsh/site-functions $fpath)
|
||||||
|
autoload -U compinit && compinit
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
imports = with inputs.self.nixosModules; [
|
imports = with inputs.self.nixosModules; [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
|
||||||
|
applications
|
||||||
|
# auto-run
|
||||||
boot
|
boot
|
||||||
devices
|
devices
|
||||||
git
|
git
|
||||||
@ -14,6 +16,7 @@
|
|||||||
secrets
|
secrets
|
||||||
security
|
security
|
||||||
ssh
|
ssh
|
||||||
|
xdg
|
||||||
zsh
|
zsh
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,9 @@
|
|||||||
./base.nix
|
./base.nix
|
||||||
inputs.base16.hmModule
|
inputs.base16.hmModule
|
||||||
|
|
||||||
applications
|
applications-setup
|
||||||
filesystems
|
filesystems
|
||||||
hardware
|
hardware
|
||||||
power
|
|
||||||
samba
|
samba
|
||||||
services
|
services
|
||||||
sound
|
sound
|
||||||
@ -22,9 +21,11 @@
|
|||||||
rofi
|
rofi
|
||||||
spotify
|
spotify
|
||||||
urxvt
|
urxvt
|
||||||
|
vivaldi
|
||||||
vscode
|
vscode
|
||||||
|
|
||||||
cursor
|
cursor
|
||||||
|
direnv
|
||||||
dunst
|
dunst
|
||||||
fonts
|
fonts
|
||||||
gtk
|
gtk
|
||||||
@ -33,7 +34,7 @@
|
|||||||
kde
|
kde
|
||||||
light
|
light
|
||||||
picom
|
picom
|
||||||
# pulseeffects
|
print-scan
|
||||||
xresources
|
xresources
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user