This commit is contained in:
Alexander Szczepanski
2021-12-02 08:43:20 +01:00
parent 527b387c2e
commit c9414f1fbd
14 changed files with 435 additions and 123 deletions

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"C_Cpp.intelliSenseEngineFallback": "Disabled"
}

View File

@ -6,6 +6,7 @@ in
{
services = {
blueman.enable = true;
xserver = {
enable = true;
displayManager = {
@ -39,7 +40,41 @@ in
};
};
environment.systemPackages = with unstable.pkgs; [
lightlocker
pulseaudio-ctl
];
home-manager.users.alex = { pkgs, ... }: {
home = {
packages = with unstable.pkgs; [
arandr
evince
gnome.eog
gnome.file-roller
gnome.gnome-calculator
keepassxc
libnotify
gnome.cheese
];
};
gtk = {
enable = true;
font = {
name = "Liberation Sans Regular";
size = 12;
};
gtk3 = {
extraConfig = { gtk-application-prefer-dark-theme = 1; };
};
iconTheme = {
package = pkgs.pantheon.elementary-icon-theme;
name = "elementary";
};
theme = { name = "Adwaita-dark"; };
};
services = {
# picom = {
# enable = true;
@ -50,44 +85,45 @@ in
dunst = {
enable = true;
package = unstable.dunst;
iconTheme = {
package = pkgs.pantheon.elementary-icon-theme;
name = "elementary";
};
settings = {
global = {
font = "SF Pro Display Regular 12";
markup = "yes";
format = "%s %p\n%b";
sort = "yes";
indicate_hidden = "no";
alignment = "center";
bounce_freq = 0;
show_age_threshold = 60;
word_wrap = "yes";
ignore_newline = "no";
geometry = "300x0-5-5";
shrink = "yes";
transparency = 0;
idle_threshold = 120;
monitor = 0;
follow = "mouse";
sticky_history = "yes";
history_length = 20;
show_indicators = "no";
line_height = 0;
separator_height = 1;
stack_duplicates = "no";
padding = 8;
font = "SF Pro Display Regular 12";
format = "%s %p %b";
width = "(0,300)";
# height = 300;
origin = "bottom-right";
notification_limit = 5;
offset = "4x4";
horizontal_padding = 8;
separator_color = "frame";
startup_notification = true;
# dmenu = /usr/bin/dmenu -p dunst;
# browser = /usr/bin/firefox -new-tab;
icon_position = "left";
icon_path = "/usr/share/icons/Arc";
idle_threshold = 120;
ignore_newline = "no";
indicate_hidden = "no";
line_height = 0;
markup = "yes";
max_icon_size = 64;
};
frame = {
width = 1;
color = "#A6A6A6";
monitor = 0;
padding = 8;
separator_color = "frame";
separator_height = 1;
show_age_threshold = 60;
show_indicators = "no";
shrink = "yes";
sort = "yes";
stack_duplicates = "no";
startup_notification = true;
sticky_history = "yes";
transparency = 0;
word_wrap = "yes";
frame_width = 2;
frame_color = "#A6A6A6";
};
urgency_low = {
@ -150,10 +186,32 @@ in
};
};
nextcloud-client = {
enable = true;
startInBackground = true;
};
# nextcloud-client = {
# enable = true;
# startInBackground = true;
# };
# polybar = {
# enable = true;
# script = "polybar bar &";
# settings = {
# "bar/top" = {
# monitor = "\${env:MONITOR:DisplayPort-1}";
# width = "100%";
# height = "3%";
# radius = 0;
# modules-center = "date";
# };
# "module/date" = {
# type = "internal/date";
# internal = 5;
# date = "%d.%m.%y";
# time = "%H:%M";
# label = "%time% %date%";
# };
# };
# };
redshift = {
enable = true;
@ -189,7 +247,7 @@ in
'';
settings = {
border_width = 4;
window_gap = 5;
window_gap = 4;
top_padding = 0;
left_padding = 0;
right_padding = 0;

View File

@ -72,7 +72,7 @@ in
nix-du
nix-tree
nmap
nodejs-16_x
nodejs
parallel
pciutils
ruby

View File

@ -21,12 +21,9 @@ in
glxinfo
gparted
libsecret
lightlocker
networkmanager-openconnect
openconnect
ponymix
pulseaudio-ctl
python39Packages.pyyaml
];
programs = {
@ -83,40 +80,47 @@ in
fontDir.enable = true;
fonts = with pkgs; [
# (nerdfonts.override { fonts = [ "Liberation" ]; })
nerdfonts
# corefonts
font-awesome
google-fonts
liberation_ttf
meslo-lg
nerdfonts
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-extra
open-sans
stix-two
twemoji-color-font
];
fontconfig = {
enable = true;
antialias = true;
defaultFonts = {
# monospace = [ "Fira Mono" ];
serif = [ "Linux Libertine" ];
sansSerif = [ "Open Sans" ];
emoji = [ "Twitter Color Emoji" ];
};
};
# fontconfig = {
# enable = true;
# antialias = true;
# defaultFonts = {
# # monospace = [ "Fira Mono" ];
# serif = [ "Linux Libertine" ];
# sansSerif = [ "Open Sans" ];
# emoji = [ "Twitter Color Emoji" ];
# };
# };
};
hardware.bluetooth.enable = true;
services = {
blueman.enable = true;
mullvad-vpn.enable = true;
gvfs.enable = true;
udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
printing = {
enable = true;
drivers = [ pkgs.brlaser ];
};
etesync-dav = {
enable = true;
apiUrl = "https://etesync.szczepan.ski/";
};
};
}

23
configs/pantheon.nix Normal file
View File

@ -0,0 +1,23 @@
{ config, pkgs, lib, ... }:
{
programs.pantheon-tweaks.enable = true;
services = {
xserver = {
enable = true;
displayManager = {
lightdm = {
enable = true;
greeters.pantheon.enable = true;
};
};
desktopManager.pantheon.enable = true;
layout = "us";
# Enable touchpad support.
libinput.enable = true;
updateDbusEnvironment = true;
};
};
}

View File

@ -18,15 +18,14 @@ in
font-manager
freecad
fslint
gnome.cheese
homebank
insomnia
kdenlive
libreoffice
lutris
mangohud
# mangohud
meld
obs-studio
# obs-studio
pinta
prusa-slicer
rpi-imager

View File

@ -1,6 +1,16 @@
{ config, pkgs, lib, ... }:
let unstable = import <nixos-unstable> { config.allowUnfree = true; };
with builtins; let
unstable = import <nixos-unstable> { config.allowUnfree = true; };
rofiPin = import
(pkgs.fetchFromGitHub {
owner = "NixOS";
repo = "nixpkgs";
rev = "42ded9d56bf0f56bebfcd49b4e942e7ffba4d5fc";
sha256 = "KK/LIcEIU4mKYuGxXSqyBRA/fVplsRs3gnmtdUCqKxU=";
fetchSubmodules = true;
})
{ };
in
{
imports = [ <home-manager/nixos> ];
@ -10,19 +20,15 @@ in
file = {
".bin/rofi-default-sink.sh" = {
executable = true;
source = ./bin/rofi-default-sink.sh;
source = ../home/bin/rofi-default-sink.sh;
};
};
packages = with unstable.pkgs; [
arandr
baobab
barrier
evince
gnome.eog
gnome.file-roller
gnome.gnome-calculator
keepassxc
libnotify
ponymix #rofi-default
mullvad-vpn
];
};
@ -40,31 +46,6 @@ in
};
};
gtk = {
enable = true;
font = {
name = "Liberation Sans Regular";
size = 12;
};
gtk3 = {
# bookmarks = [
# "file:///home/alex/Downloads"
# "file:///home/alex/Nextcloud"
# "file:///mnt/second"
# "smb://192.168.0.100/storage/"
# "file:///home/alex/Workspace"
# "file:///home/alex/3D%20Print"
# "file:///home/alex/Sync"
# ];
extraConfig = { gtk-application-prefer-dark-theme = 1; };
};
iconTheme = {
package = pkgs.pantheon.elementary-icon-theme;
name = "elementary";
};
theme = { name = "Adwaita-dark"; };
};
programs = {
vscode = {
enable = true;
@ -87,6 +68,7 @@ in
rofi = {
enable = true;
font = "Liberation Sans Regular 20";
package = rofiPin.rofi;
extraConfig = {
modi = "drun,window";
show-icons = true;

View File

@ -26,7 +26,6 @@ in
home-manager.users.alex = { pkgs, ... }: {
home = {
enableNixpkgsReleaseCheck = false;
packages = with unstable.pkgs; [
exa
broot
@ -44,10 +43,22 @@ in
pstree
ranger
sshfs
tree
unrar
youtube-dl
];
sessionPath = [
"$HOME/.npm-packages"
"$HOME/.bin"
];
file = {
".npmrc" = {
source = ../home/npmrc;
};
".bin/git-redate" = {
executable = true;
source = ../home/bin/git-redate;
};
};
};
programs = {

208
home/bin/git-redate Executable file
View File

@ -0,0 +1,208 @@
#!/usr/bin/env bash
is_git_repo() {
git rev-parse --show-toplevel > /dev/null 2>&1
result=$?
if test $result != 0; then
>&2 echo 'Not a git repo!'
exit $result
fi
}
is_git_repo
make_editor_choice() {
echo "Which editor do you want to use for this repo?\n";
echo "1. VI\n";
echo "2. NANO\n";
echo "3. Your own\n"
echo "You Choose: ";
read CHOOSE_EDITOR
}
get_editor_executable() {
echo "What is the path to your prefered test editor?\n";
read EDITOR_PATH
}
is_has_editor() {
SETTINGS_FILE="~/.redate-settings";
if [ -f "$SETTINGS_FILE" ]
then
OUR_EDITOR=$(cat ${SETTINGS_FILE});
elif [ ! -z "$EDITOR" ]
then
OUR_EDITOR="$EDITOR";
else
make_editor_choice;
if [ ${CHOOSE_EDITOR} == 3 ] || [ ${CHOOSE_EDITOR} == "3" ]; then
get_editor_executable
OUR_EDITOR=${EDITOR_PATH}
elif [ ${CHOOSE_EDITOR} == 1 ] || [ ${CHOOSE_EDITOR} == "1" ]; then
OUR_EDITOR="vi";
else
OUR_EDITOR="nano";
fi
echo ${OUR_EDITOR} > ${SETTINGS_FILE}
fi
}
is_has_editor
ALL=0
DEBUG=0
LIMITCHUNKS=20
while [[ $# -ge 1 ]]
do
key="$1"
case $key in
-c| --commits)
COMMITS="$2"
if [ -z "${COMMITS}" ]; then COMMITS="5"; fi;
shift
;;
-l| --limit)
LIMITCHUNKS="$2"
if [ -z "${LIMITCHUNKS}" ]; then LIMITCHUNKS="20"; fi;
shift
;;
-d| --debug)
DEBUG=1
shift
;;
-a| --all)
ALL=1
shift
;;
*)
# unknown option
;;
esac
shift
done
die () {
echo >&2 `basename $0`: $*
exit 1
}
tmpfile=$(mktemp gitblah-XXXX)
[ -f "$tmpfile" ] || die "could not get tmpfile=[$tmpfile]"
trap "rm -f $tmpfile" EXIT
datefmt=%cI
if [ "`git log -n1 --pretty=format:"$datefmt"`" == "$datefmt" ];
then
datefmt=%ci
fi
if [ "${ALL}" -eq 1 ];
then
git log --pretty=format:"$datefmt | %H | %s" > $tmpfile;
else
if [ -n "${COMMITS+set}" ];
then git log -n ${COMMITS} --pretty=format:"$datefmt | %H | %s" > $tmpfile;
else git log -n 5 --pretty=format:"$datefmt | %H | %s" > $tmpfile;
fi
fi
${VISUAL:-${EDITOR:-${OUR_EDITOR}}} $tmpfile
ITER=0
COLITER=0
declare -a COLLECTION
COUNTCOMMITS=$(awk 'END {print NR}' $tmpfile)
while read commit || [ -n "$commit" ]; do
IFS="|" read date hash message <<< "$commit"
shopt -s nocasematch
if [[ "$date" == 'now' ]]; then
date=$(date +%Y-%m-%dT%H:%M:%S%z);
fi
shopt -u nocasematch
if [ "$datefmt" == "%cI" ]
then
DATE_NO_SPACE="$(echo "${date}" | tr -d '[[:space:]]')"
else
DATE_NO_SPACE="$(echo "${date}")"
fi
COMMIT_ENV=$(cat <<-END
if [ \$GIT_COMMIT = $hash ];
then
export GIT_AUTHOR_DATE="$DATE_NO_SPACE"
export GIT_COMMITTER_DATE="$DATE_NO_SPACE";
fi;
END
)
((ITER++))
if [ "${DEBUG}" -eq 1 ] && [ $((ITER % LIMITCHUNKS)) == $((LIMITCHUNKS - 1)) ];
then
echo "Chunk $COLITER Finished"
fi
if [ $((ITER % LIMITCHUNKS)) == 0 ]
then
((COLITER++))
if [ "${DEBUG}" -eq 1 ];
then
echo "Chunk $COLITER Started"
fi
fi
COLLECTION[$COLITER]=${COLLECTION[COLITER]}"$COMMIT_ENV"
if [ "${DEBUG}" -eq 1 ]
then
echo "Commit $ITER/$COUNTCOMMITS Collected"
fi
done < $tmpfile
ITERATOR=0
for each in "${COLLECTION[@]}"
do
((ITERATOR++))
if [ "${ALL}" -eq 1 ];
then
if [ "${DEBUG}" -eq 1 ];
then
echo "Chunk $ITERATOR/"${#COLLECTION[@]}" Started"
git filter-branch -f --env-filter "$each" -- --all
echo "Chunk $ITERATOR/"${#COLLECTION[@]}" Finished"
else
git filter-branch -f --env-filter "$each" -- --all >/dev/null
fi
else
if [ "${DEBUG}" -eq 1 ];
then
echo "Chunk $ITERATOR/"${#COLLECTION[@]}" Started"
git filter-branch -f --env-filter "$each" HEAD~${COMMITS}..HEAD
echo "Chunk $ITERATOR/"${#COLLECTION[@]}" Finished"
else
git filter-branch -f --env-filter "$each" HEAD~${COMMITS}..HEAD >/dev/null
fi
fi
done
if [ $? = 0 ] ; then
echo "Git commit dates updated. Run 'git push -f BRANCH_NAME' to push your changes."
else
echo "Git redate failed. Please make sure you run this on a clean working directory."
fi

1
home/npmrc Normal file
View File

@ -0,0 +1 @@
prefix = ${HOME}/.npm-packages

View File

@ -17,6 +17,7 @@ in
../configs/user-gui.nix
../configs/user.nix
../configs/bspwm.nix
#../configs/pantheon.nix
];
# Use the systemd-boot EFI boot loader.
@ -43,13 +44,12 @@ in
initrd.kernelModules = [ "amdgpu" ];
plymouth.enable = true;
extraModulePackages = with pkgs.linuxPackages_5_14; [ it87 ];
extraModulePackages = with pkgs.linuxPackages; [ it87 ];
kernelModules = [ "it87" "v4l2loopback" ];
kernelPackages = pkgs.linuxPackages_5_14;
};
networking = {
hostName = "desktop"; # Define your hostname.
hostName = "desktop";
useDHCP = false;
wireguard.interfaces = {
wg0 = {
@ -118,12 +118,13 @@ in
sound.enable = true;
services = {
netdata.enable = true;
printing.enable = true;
xserver.videoDrivers = [ "amdgpu" ];
xserver.deviceSection = ''
Option "TearFree" "true"
'';
hardware.xow.enable = true;
# xserver.deviceSection = ''
# Option "TearFree" "true"
# '';
# hardware.xow.enable = true;
borgbackup.jobs.home = rec {
compression = "auto,zstd";
encryption = {
@ -146,5 +147,5 @@ in
};
};
system.stateVersion = "21.05";
system.stateVersion = "21.11";
}

View File

@ -26,30 +26,49 @@ in
../configs/user-gui.nix
../configs/user-gui-applications.nix
../configs/bspwm.nix
# ../configs/pantheon.nix
<home-manager/nixos>
];
# boot.initrd.luks.devices = {
# root = {
# preLVM = true;
# device = "/dev/disk/by-uuid/b59e9746-b9b4-4de1-94f6-84a387b9d72e";
# allowDiscards = true;
# };
# };
fileSystems."/".options = [ "noatime" "discard" ];
boot = {
loader = {
grub.enable = true;
grub.version = 2;
grub.device = "nodev";
grub.efiSupport = true;
efi.canTouchEfiVariables = true;
grub.gfxmodeEfi = "1024x768";
grub = {
enable = true;
device = "nodev";
version = 2;
efiSupport = true;
enableCryptodisk = true;
gfxmodeEfi = "1024x768";
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
kernelPackages = pkgs.linuxPackages_5_14;
plymouth.enable = true;
initrd = {
luks.devices."root" = {
device = "/dev/disk/by-uuid/9e93feb7-8134-4b62-a05b-1aeade759880";
keyFile = "/keyfile0.bin";
allowDiscards = true;
};
secrets = {
"keyfile0.bin" = "/etc/secrets/initrd/keyfile0.bin";
"keyfile1.bin" = "/etc/secrets/initrd/keyfile1.bin";
};
};
};
# Data mount
fileSystems."/data" = {
device = "/dev/disk/by-uuid/33693f43-076d-41fc-a612-f49ab6870ccb"; # UUID for /dev/mapper/crypted-data
encrypted = {
enable = true;
label = "crypted-data";
blkDev = "/dev/disk/by-uuid/9bf1d00e-1edc-4de3-9d5e-71a6722ef193"; # UUID for /dev/sda1
keyFile = "/keyfile1.bin";
};
};
networking.hostName = "thinkpad"; # Define your hostname.
@ -152,13 +171,14 @@ in
# '';
};
power-profiles-daemon.enable = false;
tlp = {
enable = true;
settings = {
START_CHARGE_THRESH_BAT0 = 80;
STOP_CHARGE_THRESH_BAT0 = 90;
};
};
auto-cpufreq.enable = true;
# tlp = {
# enable = true;
# settings = {
# START_CHARGE_THRESH_BAT0 = 80;
# STOP_CHARGE_THRESH_BAT0 = 90;
# };
# };
borgbackup.jobs.home = rec {
compression = "auto,zstd";
encryption = {
@ -197,5 +217,7 @@ in
networking.firewall.enable = false;
powerManagement.powertop.enable = true;
system.stateVersion = "21.05";
}