add a new, experimental laptop configuration
This commit is contained in:
parent
7fa808dcca
commit
9712d03b24
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "lappy/builds/dwm"]
|
||||||
|
path = lappy/builds/dwm
|
||||||
|
url = https://git.beepboop.systems/stupidcomputer/dwm
|
|
@ -0,0 +1,4 @@
|
||||||
|
# lappy
|
||||||
|
|
||||||
|
within this directory are some experimental configurations for a laptop.
|
||||||
|
that is all.
|
|
@ -0,0 +1,8 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(callPackage ./utils.nix {})
|
||||||
|
(callPackage ./dwm.nix {})
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 86f0b5119eaa39943013d009967432ffd9d18365
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit f972a39b880bc2a631c3804b6c9b41faeb9a3898
|
|
@ -0,0 +1,22 @@
|
||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, pkgs
|
||||||
|
, libX11
|
||||||
|
, libXinerama
|
||||||
|
, libXft
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "dwm";
|
||||||
|
version = "6.5";
|
||||||
|
|
||||||
|
src = ./dwm;
|
||||||
|
|
||||||
|
buildInputs = [ libX11 libXinerama libXft ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp dwm $out/bin
|
||||||
|
cp dwm-setstatus $out/bin
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit a0274bc20e11d8672bb2953fdd1d3010c0e708c5
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ stdenv
|
||||||
|
, lib
|
||||||
|
, pkgs
|
||||||
|
# shell scripts stuff
|
||||||
|
, makeWrapper
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "utils";
|
||||||
|
version = "1.01";
|
||||||
|
|
||||||
|
src = ./utils;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
|
||||||
|
for i in $(ls $src/); do
|
||||||
|
cp $src/$i $out/bin
|
||||||
|
wrapProgram $out/bin/$i --prefix PATH : ${lib.makeBinPath [ ]}
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# see original at
|
||||||
|
# https://github.com/cmus/cmus/blob/master/cmus-status-display
|
||||||
|
|
||||||
|
output()
|
||||||
|
{
|
||||||
|
printf "%s" "$*" > /dev/shm/status/cmus 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
while test $# -ge 2
|
||||||
|
do
|
||||||
|
eval _$1='$2'
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test "$_status" = "playing"; then _status=">"; else _status="="; fi
|
||||||
|
if test -n "$_file"
|
||||||
|
then
|
||||||
|
h=$(($_duration / 3600))
|
||||||
|
m=$(($_duration % 3600))
|
||||||
|
|
||||||
|
duration=""
|
||||||
|
test $h -gt 0 && dur="$h:"
|
||||||
|
duration="$dur$(printf '%02d:%02d' $(($m / 60)) $(($m % 60)))"
|
||||||
|
|
||||||
|
output "${_status}$_artist($_album)-$_title"
|
||||||
|
elif test -n "$_url"
|
||||||
|
then
|
||||||
|
output "${_status}$_url-$_title"
|
||||||
|
else
|
||||||
|
output "${_status}"
|
||||||
|
fi
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"start")
|
||||||
|
printf "[] starting paperless\n"
|
||||||
|
systemctl start redis-paperless paperless-scheduler
|
||||||
|
;;
|
||||||
|
"stop")
|
||||||
|
printf "[] stopping paperless\n"
|
||||||
|
systemctl stop paperless-web paperless-task-queue paperless-scheduler paperless-consumer redis-paperless
|
||||||
|
;;
|
||||||
|
"query")
|
||||||
|
exit $([ $(systemctl | grep -c paperless) -gt 0 ])
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
cat <<EOF
|
||||||
|
paperless -- start and stop the paperless web service easily
|
||||||
|
|
||||||
|
paperless start
|
||||||
|
start the paperless systemd services if they haven't already
|
||||||
|
been started
|
||||||
|
|
||||||
|
paperless stop
|
||||||
|
stop the paperless systemd services
|
||||||
|
|
||||||
|
paperless query
|
||||||
|
return 0 if paperless is running, 1 if not
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd $HOME/dots/lappy; sudo nixos-rebuild switch -I nixos-config=./configuration.nix
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# try to load the sleep builtin dynamically, because otherwise there's
|
||||||
|
# a *lot* of overhead (in terms of PID count)
|
||||||
|
if [[ $(</proc/cmdline) = *"nixos-system"* ]]; then
|
||||||
|
enable -f /run/current-system/sw/lib/bash/sleep sleep
|
||||||
|
else
|
||||||
|
enable -f /lib/bash/sleep sleep
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_cmus_info () {
|
||||||
|
if [ /dev/shm/status/cmus -nt /dev/shm/status/modified ]; then
|
||||||
|
cmus_status=$(</dev/shm/status/cmus)
|
||||||
|
touch /dev/shm/status/modified
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# use /dev/shm to minimize the amount of i/o on disk
|
||||||
|
if [ ! -d /dev/shm/status ]; then
|
||||||
|
mkdir -p /dev/shm/status
|
||||||
|
touch /dev/shm/status/modified
|
||||||
|
fi
|
||||||
|
|
||||||
|
battery=$(</sys/class/power_supply/BAT0/capacity)
|
||||||
|
printf -v date '%(%H)T:%(%M)T' -1
|
||||||
|
get_cmus_info
|
||||||
|
|
||||||
|
printf "%s/%s/%s\n" "$cmus_status" "$date" "$battery"
|
||||||
|
sleep 1
|
||||||
|
done | dwm-setstatus
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# if not interactive, don't do anything
|
||||||
|
[ -z "$PS1" ] && return
|
||||||
|
|
||||||
|
# some housekeeping
|
||||||
|
alias ls="ls --color=auto --group-directories-first"
|
||||||
|
|
||||||
|
function cd() {
|
||||||
|
builtin cd "$@" && ls --color=auto --group-directories-first
|
||||||
|
}
|
||||||
|
|
||||||
|
# history
|
||||||
|
HISTCONTROL=ignorespace:ignoredups:erasedups
|
||||||
|
HISTFILESIZE=9999999999
|
||||||
|
HISTSIZE=9999999999
|
||||||
|
|
||||||
|
# bash specific settings
|
||||||
|
set -o vi # vim mode
|
||||||
|
shopt -s autocd
|
||||||
|
shopt -s cmdhist
|
||||||
|
shopt -s histreedit
|
||||||
|
shopt -s histappend
|
||||||
|
shopt -s histverify
|
||||||
|
|
||||||
|
PS1="\w\$ "
|
||||||
|
|
||||||
|
if [ -n "$IN_NIX_SHELL" ]; then
|
||||||
|
NIX_SHELL_PS1="nix:"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$USER" = "root" ]; then
|
||||||
|
USER_PREFIX="\[\033[41m\]root:\[\033[0;0m\]"
|
||||||
|
elif [ "$USER" != "usr" ]; then
|
||||||
|
USER_PREFIX="$USER:"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PS1="$USER_PREFIX\[\033[36;1m\]${NIX_SHELL_PS1}arist:$PS1\[\033[0;0m\]"
|
|
@ -0,0 +1,47 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# paths and stuff
|
||||||
|
export PATH="$PATH:$HOME/.local/bin"
|
||||||
|
|
||||||
|
export MANPATH="$(manpath -q):$HOME/.local/share/man"
|
||||||
|
export EDITOR="nvim"
|
||||||
|
mkdir -p "$HOME/.local/bin" "$HOME/.share/man"
|
||||||
|
|
||||||
|
# program exports to keep the $HOME neat and tidy
|
||||||
|
# bash
|
||||||
|
export HISTFILE="$HOME/.config/bash/hist"
|
||||||
|
export HISTFILESIZE=3000
|
||||||
|
|
||||||
|
# python
|
||||||
|
export PYTHONSTARTUP="$HOME/.config/python/pythonrc.py"
|
||||||
|
|
||||||
|
# less
|
||||||
|
export LESSHISTFILE="-"
|
||||||
|
|
||||||
|
# gnupg
|
||||||
|
export GNUPGHOME="$HOME/.local/share/gnupg"
|
||||||
|
|
||||||
|
# XDG config
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
export XDG_STATE_HOME="$HOME/.local/state"
|
||||||
|
|
||||||
|
# ls
|
||||||
|
export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:';
|
||||||
|
|
||||||
|
export $(dbus-launch)
|
||||||
|
export GTK_THEME="earth"
|
||||||
|
|
||||||
|
# elinks
|
||||||
|
export ELINKS_CONFDIR="$HOME/.config/elinks"
|
||||||
|
|
||||||
|
# dbus configuration
|
||||||
|
export DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus"
|
||||||
|
|
||||||
|
# make nix-shell respect our PS1
|
||||||
|
export NIX_SHELL_PRESERVE_PROMPT=1
|
||||||
|
|
||||||
|
# source the bashrc(s)
|
||||||
|
[ -f $HOME/.config/bash/bashrc ] && . $HOME/.config/bash/bashrc
|
||||||
|
[ -f $HOME/.bashrc ] && . $HOME/.bashrc
|
|
@ -0,0 +1,3 @@
|
||||||
|
set show_current_bitrate=true
|
||||||
|
set pause_on_output_change=true
|
||||||
|
set status_display_program=cmus-status-update
|
|
@ -0,0 +1,45 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./sx
|
||||||
|
];
|
||||||
|
|
||||||
|
# make the bashrc go in .config/bash, not the home directory
|
||||||
|
environment.etc = {
|
||||||
|
"profile.local" = {
|
||||||
|
text = "source /home/usr/.config/bash/profile";
|
||||||
|
};
|
||||||
|
"bashrc.local" = {
|
||||||
|
text = "source /home/usr/.config/bash/bashrc";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.userActivationScripts = {
|
||||||
|
copyEssentialConfiguration = {
|
||||||
|
text = ''
|
||||||
|
mkdir -p /home/usr/.config
|
||||||
|
|
||||||
|
mkdir -p /home/usr/.config/nvim
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/nvim/init.lua /home/usr/.config/nvim/init.lua
|
||||||
|
|
||||||
|
mkdir -p /home/usr/.config/sx
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/sx/sxrc /home/usr/.config/sx/sxrc
|
||||||
|
|
||||||
|
mkdir -p /home/usr/.config/bash
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/bash/bashrc /home/usr/.config/bash/bashrc
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/bash/profile /home/usr/.config/bash/profile
|
||||||
|
|
||||||
|
mkdir -p /home/usr/.config/git
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/git/config /home/usr/.config/git/config
|
||||||
|
|
||||||
|
mkdir -p /home/usr/.config/rbw
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/rbw/config.json /home/usr/.config/rbw/config.json
|
||||||
|
|
||||||
|
mkdir -p /home/usr/.config/cmus
|
||||||
|
${pkgs.coreutils}/bin/ln -sf /home/usr/dots/lappy/config/cmus/rc /home/usr/.config/cmus/rc
|
||||||
|
'';
|
||||||
|
deps = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
[user]
|
||||||
|
email = ryan@beepboop.systems
|
||||||
|
name = stupidcomputer
|
||||||
|
|
||||||
|
[credential "https://git.beepboop.systems"]
|
||||||
|
helper = !git-rbw-wrap gitea
|
||||||
|
|
||||||
|
[credential "https://github.com"]
|
||||||
|
helper = !git-rbw-wrap github-pat
|
||||||
|
|
||||||
|
[advice]
|
||||||
|
addIgnoredFile = false
|
||||||
|
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
|
||||||
|
[help]
|
||||||
|
autocorrect = prompt
|
||||||
|
|
||||||
|
[push]
|
||||||
|
autoSetupRemote = true
|
|
@ -0,0 +1,113 @@
|
||||||
|
-- helper functions {{{
|
||||||
|
local keymapper = vim.keymap
|
||||||
|
local globals = vim.g
|
||||||
|
local opt = vim.o
|
||||||
|
local cmd = vim.cmd
|
||||||
|
function nnoremap(l, r)
|
||||||
|
keymapper.set('n', l, r) -- noremap is implied
|
||||||
|
end
|
||||||
|
|
||||||
|
function inoremap(l, r)
|
||||||
|
keymapper.set('i', l, r)
|
||||||
|
end
|
||||||
|
|
||||||
|
function tnoremap(l, r)
|
||||||
|
keymapper.set('t', l, r)
|
||||||
|
end
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- custom mappings {{{
|
||||||
|
globals.mapleader = ' '
|
||||||
|
nnoremap(';', ':')
|
||||||
|
nnoremap(':', ';')
|
||||||
|
nnoremap('<leader><leader>', ':')
|
||||||
|
|
||||||
|
-- source init.vim
|
||||||
|
-- requires rebuilding the configuration first
|
||||||
|
nnoremap('<leader>rr', function()
|
||||||
|
cmd.source('~/.config/nvim/init.lua')
|
||||||
|
end)
|
||||||
|
-- edit init.vim
|
||||||
|
nnoremap('<leader>re', function()
|
||||||
|
cmd.edit('~/.config/nvim/init.lua')
|
||||||
|
end)
|
||||||
|
-- openup netrw
|
||||||
|
nnoremap('<leader>fs', function()
|
||||||
|
cmd.Lexplore()
|
||||||
|
end)
|
||||||
|
|
||||||
|
inoremap('qp', '<c-g>u<Esc>[s1z=`]a<c-g>u')
|
||||||
|
inoremap("<C-a>", "<Esc>mZ0i<Tab><Esc>`ZlA")
|
||||||
|
inoremap('jk', '<Esc>')
|
||||||
|
inoremap('zz', '<Esc>:w!<CR>a')
|
||||||
|
|
||||||
|
tnoremap('<Esc>', '<C-\\><C-n>')
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- vim options {{{
|
||||||
|
opt.compatible = false
|
||||||
|
opt.number = true
|
||||||
|
opt.foldmethod = 'marker'
|
||||||
|
opt.encoding = 'utf8'
|
||||||
|
opt.list = true
|
||||||
|
opt.lcs = 'tab:->,trail:_,eol:^'
|
||||||
|
opt.clipboard = 'unnamedplus'
|
||||||
|
opt.spell = true
|
||||||
|
opt.spelllang = "en_us"
|
||||||
|
opt.title = true
|
||||||
|
opt.ts = 2
|
||||||
|
opt.sw = 2
|
||||||
|
opt.hlsearch = true
|
||||||
|
opt.incsearch = true
|
||||||
|
opt.ignorecase = true
|
||||||
|
opt.smartcase = true
|
||||||
|
opt.inccommand = 'nosplit'
|
||||||
|
opt.hidden = true
|
||||||
|
opt.linebreak = true
|
||||||
|
opt.path = '.,/usr/include,**'
|
||||||
|
opt.statusline="%f %r%m%q%h%=%y 0x%02B %04l:%03c:%03p"
|
||||||
|
vim.api.nvim_exec("let &titlestring='%{expand(\"%:p\")}'", true)
|
||||||
|
|
||||||
|
globals.vimtex_view_method = 'zathura'
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- autocommands {{{
|
||||||
|
function setTabbing(lang, width)
|
||||||
|
vim.api.nvim_create_autocmd({"Filetype"}, {
|
||||||
|
pattern = {lang},
|
||||||
|
callback = function()
|
||||||
|
vim.bo.expandtab = true
|
||||||
|
vim.bo.tabstop = width
|
||||||
|
vim.bo.shiftwidth = width
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
setTabbing("python", 4)
|
||||||
|
setTabbing("htmldjango", 4)
|
||||||
|
setTabbing("javascript", 4)
|
||||||
|
setTabbing("css", 4)
|
||||||
|
setTabbing("html", 4)
|
||||||
|
setTabbing("nix", 2)
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({"TermOpen"}, {
|
||||||
|
pattern = {"*"},
|
||||||
|
callback = function()
|
||||||
|
vim.wo.number = false
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({"TermOpen"}, {
|
||||||
|
pattern = {"*"},
|
||||||
|
command = "setlocal nospell",
|
||||||
|
})
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- netrw options {{{
|
||||||
|
globals.netrw_winsize = -28
|
||||||
|
globals.netrw_banner = 0
|
||||||
|
-- for tree view
|
||||||
|
globals.netrw_liststyle = 3
|
||||||
|
-- use previous window to open files
|
||||||
|
globals.netrw_browser_split = 4
|
||||||
|
-- }}}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"base_url": "https://bitwarden.beepboop.systems",
|
||||||
|
"email": "bit@beepboop.systems",
|
||||||
|
"identity_url": null,
|
||||||
|
"lock_timeout": 3600
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{ lib, config, pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
xkb.layout = "us";
|
||||||
|
|
||||||
|
displayManager.sx.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
xorg.xset
|
||||||
|
xorg.setxkbmap
|
||||||
|
xcape
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
status &
|
||||||
|
|
||||||
|
xset r rate 200 80
|
||||||
|
setxkbmap -option caps:super
|
||||||
|
pkill xcape
|
||||||
|
xcape -e 'Super_L=Escape'
|
||||||
|
|
||||||
|
dwm
|
|
@ -0,0 +1,75 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./builds
|
||||||
|
./config
|
||||||
|
./paperless.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "aristotle";
|
||||||
|
networkmanager.enable = true;
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
pulseaudio.enable = true;
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
settings.General.ControllerMode = "bredr";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "America/Chicago";
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
users.users.usr = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "usr";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" ];
|
||||||
|
packages = with pkgs; [];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
neovim
|
||||||
|
git
|
||||||
|
|
||||||
|
brave
|
||||||
|
(pkgs.st.overrideAttrs (old: {
|
||||||
|
patches = [
|
||||||
|
./builds/st/scrollback.patch
|
||||||
|
./builds/st/clipboard.patch
|
||||||
|
];
|
||||||
|
conf = ./builds/st/config.h;
|
||||||
|
})
|
||||||
|
)
|
||||||
|
dmenu
|
||||||
|
cmus
|
||||||
|
htop
|
||||||
|
rbw
|
||||||
|
pinentry-tty
|
||||||
|
ncpamixer
|
||||||
|
bluetuith
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
libinput.enable = true;
|
||||||
|
tlp.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/e10eea5c-4dca-40f7-86cc-02105bc6d4e0";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
services.paperless = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# we're only hosting on loopback, so this is safe
|
||||||
|
passwordFile = builtins.toFile "admin_pass" "admin";
|
||||||
|
address = "127.0.0.1"; # see above comment
|
||||||
|
port = 5000;
|
||||||
|
};
|
||||||
|
|
||||||
|
# start paperless manually so as to not destroy battery life
|
||||||
|
systemd.services = {
|
||||||
|
paperless-scheduler.wantedBy = lib.mkForce [];
|
||||||
|
redis-paperless.wantedBy = lib.mkForce [];
|
||||||
|
redis-paperless.after = lib.mkForce [];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue