splitted up config

This commit is contained in:
Thilo Billerbeck 2023-05-02 22:47:01 +02:00
parent 21b25cb158
commit 019399b34a
28 changed files with 321 additions and 811 deletions

View file

@ -1,4 +0,0 @@
[submodule "dotbot"]
path = dotbot
url = https://github.com/anishathalye/dotbot
ignore = dirty

View file

@ -1,46 +0,0 @@
window:
decorations: full
dynamic_title: true
gtk_theme_variant: None
background_opacity: 1.0
font:
normal:
family: FiraMono Nerd Font
bold:
family: FiraMono Nerd Font
style: Bold
size: 14
offset:
y: 1
cursor:
style:
shape: Beam
# Colors (Snazzy)
colors:
# Default colors
primary:
background: "0x282a36"
foreground: "0xeff0eb"
# Normal colors
normal:
black: "0x282a36"
red: "0xff5c57"
green: "0x5af78e"
yellow: "0xf3f99d"
blue: "0x57c7ff"
magenta: "0xff6ac1"
cyan: "0x9aedfe"
white: "0xf1f1f0"
# Bright colors
bright:
black: "0x686868"
red: "0xff5c57"
green: "0x5af78e"
yellow: "0xf3f99d"
blue: "0x57c7ff"
magenta: "0xff6ac1"
cyan: "0x9aedfe"
white: "0xf1f1f0"

View file

@ -1,11 +0,0 @@
#!/usr/bin/env bash
alias pub-ipv4="curl ip4.clerie.de"
alias serve="python -m SimpleHTTPServer 8080"
alias week='date +%V'
alias path='echo -e ${PATH//:/\\n}'
alias distro='cat /etc/*-release'
alias reload='source ~/.zshrc'
alias undo-git-reset-head="git reset 'HEAD@{1}'"
alias update-local="bash $HOME/.dotfiles/install"
alias fix-ssh-key-permissions="bash $HOME/.dotfiles/scripts/fix-ssh-key-permissions.sh"

View file

@ -1,3 +0,0 @@
#
# ~/.bash_logout
#

View file

@ -1,7 +0,0 @@
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc
if [ -e /home/thilo/.nix-profile/etc/profile.d/nix.sh ]; then . /home/thilo/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
. "$HOME/.cargo/env"

View file

@ -1,175 +0,0 @@
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
[[ -f ~/.welcome_screen ]] && . ~/.welcome_screen
_set_my_PS1() {
PS1='[\u@\h \W]\$ '
if [ "$(whoami)" = "liveuser" ] ; then
local iso_version="$(grep ^VERSION= /usr/lib/endeavouros-release 2>/dev/null | cut -d '=' -f 2)"
if [ -n "$iso_version" ] ; then
local prefix="eos-"
local iso_info="$prefix$iso_version"
PS1="[\u@$iso_info \W]\$ "
fi
fi
}
_set_my_PS1
unset -f _set_my_PS1
ShowInstallerIsoInfo() {
local file=/usr/lib/endeavouros-release
if [ -r $file ] ; then
cat $file
else
echo "Sorry, installer ISO info is not available." >&2
fi
}
alias ls='ls --color=auto'
alias ll='ls -lav --ignore=..' # show long listing of all except ".."
alias l='ls -lav --ignore=.?*' # show long listing but no hidden dotfiles except "."
[[ "$(whoami)" = "root" ]] && return
[[ -z "$FUNCNEST" ]] && export FUNCNEST=100 # limits recursive functions, see 'man bash'
## Use the up and down arrow keys for finding a command in history
## (you can write some initial letters of the command first).
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'
################################################################################
## Some generally useful functions.
## Consider uncommenting aliases below to start using these functions.
_GeneralCmdCheck() {
# A helper for functions UpdateArchPackages and UpdateAURPackages.
echo "$@" >&2
"$@" || {
echo "Error: '$*' failed." >&2
exit 1
}
}
_CheckInternetConnection() {
# curl --silent --connect-timeout 8 https://8.8.8.8 >/dev/null
eos-connection-checker
local result=$?
test $result -eq 0 || echo "No internet connection!" >&2
return $result
}
_CheckArchNews() {
local conf=/etc/eos-update-notifier.conf
if [ -z "$CheckArchNewsForYou" ] && [ -r $conf ] ; then
source $conf
fi
if [ "$CheckArchNewsForYou" = "yes" ] ; then
local news="$(yay -Pw)"
if [ -n "$news" ] ; then
echo "Arch news:" >&2
echo "$news" >&2
echo "" >&2
# read -p "Press ENTER to continue (or Ctrl-C to stop): "
else
echo "No Arch news." >&2
fi
fi
}
UpdateArchPackages() {
# Updates Arch packages.
_CheckInternetConnection || return 1
_CheckArchNews
#local updates="$(yay -Qu --repo)"
local updates="$(checkupdates)"
if [ -n "$updates" ] ; then
echo "Updates from upstream:" >&2
echo "$updates" | sed 's|^| |' >&2
_GeneralCmdCheck sudo pacman -Syu "$@"
return 0
else
echo "No upstream updates." >&2
return 1
fi
}
UpdateAURPackages() {
# Updates AUR packages.
_CheckInternetConnection || return 1
local updates
if [ -x /usr/bin/yay ] ; then
updates="$(yay -Qua)"
if [ -n "$updates" ] ; then
echo "Updates from AUR:" >&2
echo "$updates" | sed 's|^| |' >&2
_GeneralCmdCheck yay -Syua "$@"
else
echo "No AUR updates." >&2
fi
else
echo "Warning: /usr/bin/yay does not exist." >&2
fi
}
UpdateAllPackages() {
# Updates all packages in the system.
# Upstream (i.e. Arch) packages are updated first.
# If there are Arch updates, you should run
# this function a second time to update
# the AUR packages too.
UpdateArchPackages || UpdateAURPackages
}
_open_files_for_editing() {
# Open any given document file(s) for editing (or just viewing).
# Note1: Do not use for executable files!
# Note2: uses mime bindings, so you may need to use
# e.g. a file manager to make some file bindings.
local progs="xdg-open exo-open" # One of these programs is used.
local prog
for prog in $progs ; do
if [ -x /usr/bin/$xx ] ; then
$prog "$@" >& /dev/null &
return
fi
done
echo "Sorry, none of programs [$progs] is found." >&2
echo "Tip: install one of packages" >&2
for prog in $progs ; do
echo " $(pacman -Qqo "$prog")" >&2
done
}
#------------------------------------------------------------
## Aliases for the functions above.
## Uncomment an alias if you want to use it.
##
# alias ef='_open_files_for_editing' # 'ef' opens given file(s) for editing
################################################################################
source "$HOME/.cargo/env"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
. "$HOME/.cargo/env"

View file

@ -1,16 +0,0 @@
directory: ~/Music/dj/Library
library: ~/Music/dj/library.db
plugins: spotify acousticbrainz badfiles duplicates fetchart
import:
write: yes
copy: yes
resume: no
duplicate_action: ask
default_action: apply
badfiles:
check_on_import: yes
match:
max_rec:
track_length: strong
track_title: strong
track_artist: strong

View file

@ -1,7 +0,0 @@
--force-dark-mode
--enable-features=WebUIDarkMode
--enable-smooth-scrolling
--ozone-platform-hint=auto
--ignore-gpu-blocklist
--enable-gpu-rasterization
--enable-zero-copy

View file

@ -1,28 +0,0 @@
[user]
name = Thilo Billerbeck
email = thilo.billerbeck@officerent.de
[color]
diff = auto
status = auto
branch = auto
interactive = auto
ui = true
pager = true
[log]
date = short
[rerere]
enabled = 1
[core]
whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol
excludesfile = ~/.gitignore-rab
autocrlf = input
[apply]
whitespace = nowarn
[branch]
autosetuprebase = always
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true

View file

@ -1,2 +0,0 @@
[Settings]
gtk-application-prefer-dark-theme=true

View file

@ -1,39 +0,0 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=1
tree_sort_key=0
tree_sort_direction=1
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
tree_view=1
tree_view_always_by_pid=0
header_margin=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=1
delay=15
left_meters=LeftCPUs2 CPU Memory DiskIO NetworkIO
left_meter_modes=1 1 1 2 2
right_meters=RightCPUs2 Tasks LoadAverage Uptime Battery
right_meter_modes=1 2 2 2 2
hide_function_bar=0

View file

@ -1,6 +0,0 @@
#!/usr/bin/env bash
script_location=$(dirname $(realpath $0))
bash $script_location/scripts/bootstrap-local-env.sh
bash $script_location/scripts/update-dotfiles.sh

View file

@ -1,75 +0,0 @@
- defaults:
link:
relink: true
- clean:
~/:
force: true
- link:
~/.bash_profile:
path: bash_profile
force: true
~/.bashrc:
path: bashrc
force: true
~/.bash_logout:
path: bash_logout
force: true
~/.zshrc:
path: zshrc
force: true
~/.zshenv:
path: zshenv
force: true
~/.gitconfig:
path: gitconfig
force: true
# ~/.config/gtk-3.0/settings.ini:
# path: gtk-3.ini
# force: true
~/.config/nano/nanorc:
path: nanorc
force: true
~/.config/locale.conf:
path: locale.conf
force: true
~/.aliases:
path: aliases
force: true
~/.alacritty.yml:
path: alacritty.yml
force: true
~/.config/htop/htoprc:
path: htoprc
force: true
~/.config/starship.toml:
path: starship.toml
force: true
~/.config/nvim/init.vim:
path: init.vim
force: true
~/.config/chromium-flags.conf:
path: chromium-flags.conf
force: true
~/.config/chrome-flags.conf:
path: chromium-flags.conf
force: true
~/.config/vivaldi-stable.conf:
path: chromium-flags.conf
force: true
~/.var/app/com.google.Chrome/config/chrome-flags.conf:
path: chromium-flags.conf
force: true
~/.ssh/config:
path: ssh-config
force: true
~/.config/beets/config.yaml:
path: beets.yaml
force: true
~/.config/pipewire/pipewire.conf:
path: pipewire.conf
force: true
~/.config/topgrade.toml:
path: topgrade.toml
force: true

View file

@ -1,22 +0,0 @@
# Don't print a new line at the start of the prompt
add_newline = false
# Which is equivalent to
format = """
$all\
$line_break\
$jobs\
$battery\
$time\
$status\
$shell\
$character"""
# Replace the "" symbol in the prompt with "➜"
[character] # The name of the module we are configuring is "character"
success_symbol = "[](bold white)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
# Disable the package module, hiding it from the prompt completely
[package]
disabled = true

View file

@ -1,131 +0,0 @@
# Don't ask for confirmations
assume_yes = true
# Disable specific steps - same options as the command line flag
#disable = ["system", "emacs"]
# Ignore failures for these steps
ignore_failures = ["git_repos"]
# Run specific steps - same options as the command line flag
#only = ["system", "emacs"]
# Do not ask to retry failed steps (default: false)
no_retry = true
# Run `sudo -v` to cache credentials at the start of the run; this avoids a
# blocking password prompt in the middle of a possibly-unattended run.
pre_sudo = false
# Run inside tmux
#run_in_tmux = true
# List of remote machines with Topgrade installed on them
#remote_topgrades = ["toothless", "pi", "parnas"]
# Arguments to pass SSH when upgrading remote systems
#ssh_arguments = "-o ConnectTimeout=2"
# Path to Topgrade executable on remote machines
#remote_topgrade_path = ".cargo/bin/topgrade"
# Arguments to pass tmux when pulling Repositories
#tmux_arguments = "-S /var/tmux.sock"
# Do not set the terminal title
#set_title = false
# Display the time in step titles
# display_time = true
# Cleanup temporary or old files
cleanup = true
# Skip sending a notification at the end of a run
skip_notify = true
# Skip the preamble displayed when topgrade is run
#display_preamble = false
[git]
#max_concurrency = 5
# Additional git repositories to pull
#repos = [
# "~/src/*/",
# "~/.config/something"
#]
# Don't pull the predefined git repos
#pull_predefined = false
# Arguments to pass Git when pulling Repositories
#arguments = "--rebase --autostash"
[composer]
#self_update = true
# Commands to run before anything
[pre_commands]
#"Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak"
# Custom commands
[commands]
#"Python Environment" = "~/dev/.env/bin/pip install -i https://pypi.python.org/simple -U --upgrade-strategy eager jupyter"
"zinit" = "zinit update"
[brew]
#greedy_cask = true
#autoremove = true
[linux]
# Arch Package Manager to use. Allowed values: autodetect, aura, garuda_update, pacman, pamac, paru, pikaur, trizen, yay.
#arch_package_manager = "pacman"
# Arguments to pass yay (or paru) when updating packages
#yay_arguments = "--nodevel"
# Arguments to pass dnf when updating packages
#dnf_arguments = "--refresh"
#aura_aur_arguments = "-kx"
#aura_pacman_arguments = ""
#garuda_update_arguments = ""
#show_arch_news = true
#trizen_arguments = "--devel"
#pikaur_arguments = ""
#pamac_arguments = "--no-devel"
#enable_tlmgr = true
#emerge_sync_flags = "-q"
#emerge_update_flags = "-uDNa --with-bdeps=y world"
#redhat_distro_sync = false
#rpm_ostree = false
#nix_arguments = "--flake"
[python]
#enable_pip_review = true ###disabled by default
#enable_pipupgrade = true ###disabled by default
[windows]
# Manually select Windows updates
#accept_all_updates = false
#open_remotes_in_new_terminal = true
#wsl_update_pre_release = true
#wsl_update_use_web_download = true
# Causes Topgrade to rename itself during the run to allow package managers
# to upgrade it. Use this only if you installed Topgrade by using a package
# manager such as Scoop or Cargo
#self_rename = true
[npm]
# Use sudo if the NPM directory isn't owned by the current user
#use_sudo = true
[firmware]
# Offer to update firmware; if false just check for and display available updates
upgrade = true
[flatpak]
# Use sudo for updating the system-wide installation
#use_sudo = true
[distrobox]
#use_root = false
#containers = ["archlinux-latest"]

View file

@ -1,3 +0,0 @@
source "$HOME/.cargo/env"
if [ -e /home/thilo/.nix-profile/etc/profile.d/nix.sh ]; then . /home/thilo/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
. "$HOME/.cargo/env"

239
home.nix
View file

@ -20,6 +20,8 @@ in {
targets.genericLinux.enable = true;
news.display = "silent";
imports = map (n: "${./programs}/${n}") (builtins.attrNames (builtins.readDir ./programs));
home = {
username = "thilo";
homeDirectory = "/home/thilo";
@ -80,240 +82,5 @@ in {
mime.enable = true;
};
programs = {
home-manager.enable = true;
vscode = {
enable = true;
package = (nixGLWrap (pkgs.vscode.override {
commandLineArgs =
"--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --gtk-version=4";
}));
};
htop = {
enable = true;
settings = {
fields="0 48 17 18 38 39 40 2 46 47 49 1";
sort_key="46";
sort_direction="1";
tree_sort_key="0";
tree_sort_direction="1";
hide_kernel_threads="1";
hide_userland_threads="0";
shadow_other_users="0";
show_thread_names="0";
show_program_path="1";
highlight_base_name="0";
highlight_megabytes="1";
highlight_threads="1";
highlight_changes="0";
highlight_changes_delay_secs="5";
find_comm_in_cmdline="1";
strip_exe_from_cmdline="1";
show_merged_command="0";
tree_view="1";
tree_view_always_by_pid="0";
header_margin="1";
detailed_cpu_time="0";
cpu_count_from_one="0";
show_cpu_usage="1";
show_cpu_frequency="0";
show_cpu_temperature="0";
degree_fahrenheit="0";
update_process_names="0";
account_guest_in_cpu_meter="0";
color_scheme="0";
enable_mouse="1";
delay="15";
left_meters="LeftCPUs2 CPU Memory DiskIO NetworkIO";
left_meter_modes="1 1 1 2 2";
right_meters="RightCPUs2 Tasks LoadAverage Uptime Battery";
right_meter_modes="1 2 2 2 2";
hide_function_bar="0";
};
};
beets = {
enable = true;
settings = {
directory = "~/Music/dj/Library";
library = "~/Music/dj/library.db";
plugins = "spotify acousticbrainz badfiles duplicates fetchart";
import = {
write = "yes";
copy = "yes";
resume = "no";
duplicate_action = "ask";
default_action = "apply";
};
badfiles = {
check_on_import = "yes";
};
match = {
max_rec = {
track_length = "strong";
track_title = "strong";
track_artist = "strong";
};
};
};
};
zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
enableSyntaxHighlighting = true;
enableVteIntegration = true;
zplug = {
enable = true;
plugins = [
{
name = "plugins/git";
tags = [ from:oh-my-zsh ];
}
{
name = "plugins/archlinux";
tags = [ from:oh-my-zsh ];
}
{
name = "plugins/composer";
tags = [ from:oh-my-zsh ];
}
{
name = "plugins/colored-man-pages";
tags = [ from:oh-my-zsh ];
}
];
};
};
git = {
enable = true;
lfs.enable = true;
userEmail = "thilo.billerbeck@officerent.de";
userName = "Thilo Billerbeck";
extraConfig = {
color = {
diff = "auto";
status = "auto";
branch = "auto";
interactive = "auto";
ui = true;
pager = true;
};
log = { date = "short"; };
rerere = { enabled = "1"; };
core = {
whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol";
excludesfile = "~/.gitignore-rab";
autocrlf = "input";
};
apply = { whitespace = "nowarn"; };
branch = { autosetuprebase = "always"; };
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
starship = {
enable = true;
settings = {
add_newline = false;
character = { success_symbol = "[](bold white)"; };
package = { disabled = true; };
};
};
topgrade = {
enable = true;
settings = {
assume_yes = true;
ignore_failures = [ "git_repos" ];
no_retry = true;
pre_sudo = false;
cleanup = true;
skip_notify = true;
firmware = { upgrade = true; };
};
};
alacritty = {
enable = true;
package = (nixGLWrap pkgs.alacritty);
settings = {
window = {
decorations = "full";
dynamic_title = true;
gtk_theme_variant = "None";
};
window.opacity = 1;
font = {
normal = {
family = "JetbrainsMono NFM";
style = "Regular";
};
bold = {
family = "JetbrainsMono NFM";
style = "Bold";
};
size = 14;
};
cursor.style.shape = "Beam";
colors = {
primary = {
background = "0x282a36";
foreground = "0xeff0eb";
};
normal = {
black = "0x282a36";
red = "0xff5c57";
green = "0x5af78e";
yellow = "0xf3f99d";
blue = "0x57c7ff";
magenta = "0xff6ac1";
cyan = "0x9aedfe";
white = "0xf1f1f0";
};
bright = {
black = "0x686868";
red = "0xff5c57";
green = "0x5af78e";
yellow = "0xf3f99d";
blue = "0x57c7ff";
magenta = "0xff6ac1";
cyan = "0x9aedfe";
white = "0xf1f1f0";
};
};
};
};
yt-dlp = {
enable = true;
};
neovim = {
defaultEditor = true;
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
coc = { enable = true; };
extraConfig = ''
set title
set number
set relativenumber
set cursorline
set mouse=a
syntax enable
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = [ '.git/' ]
let g:NERDTreeStatusline = ""
let g:NERDTreeMouseMode = 2
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
nnoremap <silent> <C-b> :NERDTreeToggle<CR>
'';
plugins = with pkgs.vimPlugins; [
nerdtree
vim-devicons
# fzf
ale
];
};
};
programs.home-manager.enable = true;
}

68
programs/alacritty.nix Normal file
View file

@ -0,0 +1,68 @@
{ config, pkgs, lib, ... }:
let
nixgl = import <nixgl> { };
nixGLWrap = pkg:
pkgs.runCommand "${pkg.name}-nixgl-wrapper" { } ''
mkdir $out
ln -s ${pkg}/* $out
rm $out/bin
mkdir $out/bin
for bin in ${pkg}/bin/*; do
wrapped_bin=$out/bin/$(basename $bin)
echo -e "#!/bin/bash\nexec ${lib.getExe nixgl.auto.nixGLDefault} $bin \$@" > $wrapped_bin
chmod +x $wrapped_bin
done
'';
in {
programs.alacritty = {
enable = true;
package = (nixGLWrap pkgs.alacritty);
settings = {
window = {
decorations = "full";
dynamic_title = true;
gtk_theme_variant = "None";
};
window.opacity = 1;
font = {
normal = {
family = "JetbrainsMono NFM";
style = "Regular";
};
bold = {
family = "JetbrainsMono NFM";
style = "Bold";
};
size = 14;
};
cursor.style.shape = "Beam";
colors = {
primary = {
background = "0x282a36";
foreground = "0xeff0eb";
};
normal = {
black = "0x282a36";
red = "0xff5c57";
green = "0x5af78e";
yellow = "0xf3f99d";
blue = "0x57c7ff";
magenta = "0xff6ac1";
cyan = "0x9aedfe";
white = "0xf1f1f0";
};
bright = {
black = "0x686868";
red = "0xff5c57";
green = "0x5af78e";
yellow = "0xf3f99d";
blue = "0x57c7ff";
magenta = "0xff6ac1";
cyan = "0x9aedfe";
white = "0xf1f1f0";
};
};
};
};
}

29
programs/beets.nix Normal file
View file

@ -0,0 +1,29 @@
{ config, pkgs, lib, ... }:
{
programs.beets = {
enable = true;
settings = {
directory = "~/Music/dj/Library";
library = "~/Music/dj/library.db";
plugins = "spotify acousticbrainz badfiles duplicates fetchart";
import = {
write = "yes";
copy = "yes";
resume = "no";
duplicate_action = "ask";
default_action = "apply";
};
badfiles = {
check_on_import = "yes";
};
match = {
max_rec = {
track_length = "strong";
track_title = "strong";
track_artist = "strong";
};
};
};
};
}

8
programs/direnv.nix Normal file
View file

@ -0,0 +1,8 @@
{ config, pkgs, lib, ... }:
{
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
}

29
programs/git.nix Normal file
View file

@ -0,0 +1,29 @@
{ config, pkgs, lib, ... }:
{
programs.git = {
enable = true;
lfs.enable = true;
userEmail = "thilo.billerbeck@officerent.de";
userName = "Thilo Billerbeck";
extraConfig = {
color = {
diff = "auto";
status = "auto";
branch = "auto";
interactive = "auto";
ui = true;
pager = true;
};
log = { date = "short"; };
rerere = { enabled = "1"; };
core = {
whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol";
excludesfile = "~/.gitignore-rab";
autocrlf = "input";
};
apply = { whitespace = "nowarn"; };
branch = { autosetuprebase = "always"; };
};
};
}

46
programs/htop.nix Normal file
View file

@ -0,0 +1,46 @@
{ config, pkgs, lib, ... }:
{
programs.htop = {
enable = true;
settings = {
fields="0 48 17 18 38 39 40 2 46 47 49 1";
sort_key="46";
sort_direction="1";
tree_sort_key="0";
tree_sort_direction="1";
hide_kernel_threads="1";
hide_userland_threads="0";
shadow_other_users="0";
show_thread_names="0";
show_program_path="1";
highlight_base_name="0";
highlight_megabytes="1";
highlight_threads="1";
highlight_changes="0";
highlight_changes_delay_secs="5";
find_comm_in_cmdline="1";
strip_exe_from_cmdline="1";
show_merged_command="0";
tree_view="1";
tree_view_always_by_pid="0";
header_margin="1";
detailed_cpu_time="0";
cpu_count_from_one="0";
show_cpu_usage="1";
show_cpu_frequency="0";
show_cpu_temperature="0";
degree_fahrenheit="0";
update_process_names="0";
account_guest_in_cpu_meter="0";
color_scheme="0";
enable_mouse="1";
delay="15";
left_meters="LeftCPUs2 CPU Memory DiskIO NetworkIO";
left_meter_modes="1 1 1 2 2";
right_meters="RightCPUs2 Tasks LoadAverage Uptime Battery";
right_meter_modes="1 2 2 2 2";
hide_function_bar="0";
};
};
}

33
programs/neovim.nix Normal file
View file

@ -0,0 +1,33 @@
{ config, pkgs, lib, ... }:
{
programs.neovim = {
defaultEditor = true;
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
coc = { enable = true; };
extraConfig = ''
set title
set number
set relativenumber
set cursorline
set mouse=a
syntax enable
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = [ '.git/' ]
let g:NERDTreeStatusline = ""
let g:NERDTreeMouseMode = 2
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
nnoremap <silent> <C-b> :NERDTreeToggle<CR>
'';
plugins = with pkgs.vimPlugins; [
nerdtree
vim-devicons
# fzf
ale
];
};
}

12
programs/starship.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, lib, ... }:
{
programs.starship = {
enable = true;
settings = {
add_newline = false;
character = { success_symbol = "[](bold white)"; };
package = { disabled = true; };
};
};
}

16
programs/topgrade.nix Normal file
View file

@ -0,0 +1,16 @@
{ config, pkgs, lib, ... }:
{
programs.topgrade = {
enable = true;
settings = {
assume_yes = true;
ignore_failures = [ "git_repos" ];
no_retry = true;
pre_sudo = false;
cleanup = true;
skip_notify = true;
firmware = { upgrade = true; };
};
};
}

26
programs/vscode.nix Normal file
View file

@ -0,0 +1,26 @@
{ config, pkgs, lib, ... }:
let
nixgl = import <nixgl> { };
nixGLWrap = pkg:
pkgs.runCommand "${pkg.name}-nixgl-wrapper" { } ''
mkdir $out
ln -s ${pkg}/* $out
rm $out/bin
mkdir $out/bin
for bin in ${pkg}/bin/*; do
wrapped_bin=$out/bin/$(basename $bin)
echo -e "#!/bin/bash\nexec ${lib.getExe nixgl.auto.nixGLDefault} $bin \$@" > $wrapped_bin
chmod +x $wrapped_bin
done
'';
in {
programs = {
vscode = {
enable = true;
package = (nixGLWrap (pkgs.vscode.override {
commandLineArgs =
"--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --gtk-version=4";
}));
};
};
}

9
programs/yt-dlp.nix Normal file
View file

@ -0,0 +1,9 @@
{ config, pkgs, lib, ... }:
{
programs.yt-dlp = {
enable = true;
};
}

42
programs/zsh.nix Normal file
View file

@ -0,0 +1,42 @@
{ config, pkgs, lib, ... }:
{
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
enableSyntaxHighlighting = true;
enableVteIntegration = true;
shellAliases = {
pub-ipv4 = "curl ip4.clerie.de";
serve = "python -m SimpleHTTPServer 8080";
week = "date +%V";
path = "echo -e \${PATH//:/\\n}";
distro = "cat /etc/*-release";
reload = "source ~/.zshrc";
undo-git-reset-head = "git reset 'HEAD@{1}'";
update-local = "bash $HOME/.dotfiles/install";
};
zplug = {
enable = true;
plugins = [
{
name = "plugins/git";
tags = [ from:oh-my-zsh ];
}
{
name = "plugins/archlinux";
tags = [ from:oh-my-zsh ];
}
{
name = "plugins/composer";
tags = [ from:oh-my-zsh ];
}
{
name = "plugins/colored-man-pages";
tags = [ from:oh-my-zsh ];
}
];
};
};
}