Sorry, badcommit
This commit is contained in:
parent
e558bb6e67
commit
1cde5d1099
12
.gitmodules
vendored
12
.gitmodules
vendored
|
@ -4,3 +4,15 @@
|
|||
[submodule "system/modules/cdarknet/hosts"]
|
||||
path = system/modules/cdarknet/hosts
|
||||
url = git@git.darmstadt.ccc.de:cdark.net/hosts
|
||||
[submodule "home-common/rofi/zzzfoo"]
|
||||
path = home-common/rofi/zzzfoo
|
||||
url = https://github.com/andersju/zzzfoo.git
|
||||
[submodule "home-common/graphical/rofi/zzzfoo"]
|
||||
path = home-common/graphical/rofi/zzzfoo
|
||||
url = https://github.com/andersju/zzzfoo.git
|
||||
[submodule "modules/cdarknet/hosts"]
|
||||
path = modules/cdarknet/hosts
|
||||
url = git@git.darmstadt.ccc.de:cdark.net/hosts
|
||||
[submodule "modules/cdarknet/nixdark"]
|
||||
path = modules/cdarknet/nixdark
|
||||
url = git@git.darmstadt.ccc.de:cdark.net/nixdark
|
||||
|
|
20
Makefile
Normal file
20
Makefile
Normal file
|
@ -0,0 +1,20 @@
|
|||
default: all
|
||||
|
||||
all: links config
|
||||
|
||||
links:
|
||||
ln -sfT data/aktuell/it/config ~/config
|
||||
ln -sfT data/aktuell/it/config/dotfiles ~/.dotfiles
|
||||
ln -sfT data/aktuell/it/config/bin ~/bin
|
||||
ln -sfT ~/data/aktuell/it/config/nixos ~/.config/nixpkgs/config
|
||||
ln -sfT data/aktuell/it/secrets/password-store ~/.password-store
|
||||
ln -sfT data/aktuell/it/secrets/gnupg ~/.gnupg
|
||||
|
||||
system-links:
|
||||
sudo ln -sfT ${HOME}/data/aktuell/it/config/nixos /etc/nixos/config
|
||||
|
||||
config:
|
||||
rcup rcrc
|
||||
rcup
|
||||
mkdir -p ~/.vimhist/bak
|
||||
touch .chpwd-recent-dirs
|
210
home-common/default.nix
Normal file
210
home-common/default.nix
Normal file
|
@ -0,0 +1,210 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
home-manager = {
|
||||
enable = true;
|
||||
path = https://github.com/rycee/home-manager/archive/master.tar.gz;
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
ignores = [
|
||||
".syncthing*.tmp"
|
||||
"*.swp"
|
||||
"*.autosave~"
|
||||
"*.aux"
|
||||
"*.bbl"
|
||||
"*.fls"
|
||||
"*.idx"
|
||||
"*.ilg"
|
||||
"*.ind"
|
||||
"*.log"
|
||||
"*.out"
|
||||
"*.toc"
|
||||
"*.bcf"
|
||||
"*.blg"
|
||||
"*.fdb*"
|
||||
"*.thm"
|
||||
"*.run.xml"
|
||||
"*.slnc"
|
||||
"*.glade~"
|
||||
"__pycache__"
|
||||
".hledger-web_client_session_key.aes"
|
||||
".nix-gc-roots"
|
||||
];
|
||||
userEmail = "malte.brandy@maralorn.de";
|
||||
userName = "Malte Brandy";
|
||||
};
|
||||
htop = {
|
||||
enable = true;
|
||||
hideThreads = true;
|
||||
hideUserlandThreads = true;
|
||||
highlightBaseName = true;
|
||||
shadowOtherUsers = true;
|
||||
showProgramPath = false;
|
||||
treeView = true;
|
||||
};
|
||||
ssh = {
|
||||
controlMaster = "autoask";
|
||||
enable = true;
|
||||
matchBlocks = let
|
||||
matheGwProxy = "ssh -q gw nc -q0 %h %p";
|
||||
kivaHost = "fb04386.mathematik.tu-darmstadt.de";
|
||||
agHost = "fb04217.mathematik.tu-darmstadt.de";
|
||||
in [
|
||||
{ host = "charon"; hostname = "charon.olymp.space"; }
|
||||
{ host = "*.olymp.space"; user = "maralorn"; }
|
||||
{ host = "ag-forward"; hostname = agHost; proxyCommand = matheGwProxy; }
|
||||
{ host = "ag"; hostname = agHost; }
|
||||
{ host = "kiva-forward"; hostname = kivaHost; proxyCommand = matheGwProxy; }
|
||||
{ host = "kiva"; hostname = kivaHost; }
|
||||
{ host = "gw"; hostname = "gwres4.mathematik.tu-darmstadt.de"; }
|
||||
{ host = "*.mathematik.tu-darmstadt.de"; user = "brandy"; }
|
||||
{ host = "shells"; hostname = "shells.darmstadt.ccc.de"; }
|
||||
{ host = "vorstand"; hostname = "vorstand.darmstadt.ccc.de"; }
|
||||
{ host = "*.darmstadt.ccc.de"; user = "maralorn"; }
|
||||
{ host = "whisky"; hostname = "whisky.w17.io"; user = "chaos"; }
|
||||
];
|
||||
};
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableCompletion = true;
|
||||
history = {
|
||||
save = 100000;
|
||||
size = 100000;
|
||||
};
|
||||
initExtra = ''
|
||||
if [[ -z "$TMUX" ]] {
|
||||
session=$(tmux ls | grep -v attached | head -1 | cut -f1 -d:)
|
||||
if [[ -n $session ]] {
|
||||
exec tmux attach -t $session;
|
||||
} else {
|
||||
exec tmux;
|
||||
}
|
||||
}
|
||||
precmd() {
|
||||
local s=$? c=( $(fc -l -D -1 ) )
|
||||
if [[ $launched && "''${c[2]}" != "0:00" ]] {
|
||||
eventc command $([[ ''${s} == 0 ]] && echo success || echo failure) -d command="\"''${c[3,-1]}\"" -d time="\"''${c[2]}\"" -d host="\"$HOST\""
|
||||
} else {
|
||||
export launched=true;
|
||||
}
|
||||
}
|
||||
|
||||
alias c=cdr
|
||||
alias s='sudo systemctl'
|
||||
alias u='systemctl --user'
|
||||
alias m=man
|
||||
alias t="tmux attach"
|
||||
alias tn="tmux new-session"
|
||||
alias w="develop-here"
|
||||
alias ls=exa
|
||||
|
||||
export BROWSER=qutebrowser
|
||||
export EDITOR=nvim
|
||||
export MANPAGER="most -s"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.startServices = true;
|
||||
|
||||
imports = [
|
||||
./taskwarrior.nix
|
||||
../modules/force-copies.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
htop
|
||||
tree
|
||||
rxvt_unicode.terminfo
|
||||
most
|
||||
|
||||
socat
|
||||
nmap
|
||||
tcpdump
|
||||
|
||||
rcm
|
||||
tmux
|
||||
tig
|
||||
exa
|
||||
fzf
|
||||
|
||||
pythonPackages.qrcode
|
||||
ranger
|
||||
|
||||
|
||||
(pkgs.neovim.override {
|
||||
vimAlias = true;
|
||||
configure = {
|
||||
customRC = ''
|
||||
set spell spelllang=de,en
|
||||
set background=dark
|
||||
set autoindent
|
||||
set nosmartindent
|
||||
set listchars=tab:»\ ,trail:.,extends:#
|
||||
set list
|
||||
set ts=3
|
||||
set number
|
||||
set scrolloff=5
|
||||
set sidescrolloff=5
|
||||
set laststatus=2
|
||||
set incsearch
|
||||
set mouse=
|
||||
set dir=~/.vimhist/
|
||||
set backupdir=~/.vimhist/bak
|
||||
set showcmd
|
||||
nnoremap <silent><cr> :nohlsearch<CR>
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv
|
||||
nnoremap <silent><cr> :nohlsearch<CR>
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv u
|
||||
nnoremap <C-Down> <C-W><C-J>
|
||||
nnoremap <C-Up> <C-W><C-K>
|
||||
nnoremap <C-Right> <C-W><C-L>
|
||||
nnoremap <C-Left> <C-W><C-H>
|
||||
nnoremap <A-Left> gT
|
||||
nnoremap <A-Right> gt
|
||||
|
||||
set colorcolumn=81,121
|
||||
hi ColorColumn ctermbg=black
|
||||
|
||||
set winaltkeys=no
|
||||
set noai
|
||||
set si
|
||||
set sw=3
|
||||
set pt=<F4>
|
||||
set ignorecase
|
||||
set wildmenu
|
||||
set hlsearch
|
||||
noremap <buffer> <silent> <Up> gk
|
||||
noremap <buffer> <silent> <Down> gj
|
||||
noremap <buffer> <silent> <Home> g<Home>
|
||||
noremap <buffer> <silent> <End> g<End>
|
||||
'';
|
||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
start = [
|
||||
deoplete-nvim
|
||||
vim-nix
|
||||
vimtex
|
||||
Syntastic
|
||||
UltiSnips
|
||||
airline
|
||||
rust-vim
|
||||
deoplete-rust
|
||||
fugitive
|
||||
airline
|
||||
vim-snippets
|
||||
vim-trailing-whitespace
|
||||
vim-racer
|
||||
vim-pandoc
|
||||
nerdcommenter
|
||||
];
|
||||
};
|
||||
};
|
||||
withPython3 = true;
|
||||
})
|
||||
];
|
||||
xdg.enable = true;
|
||||
}
|
99
home-common/graphical/default.nix
Normal file
99
home-common/graphical/default.nix
Normal file
|
@ -0,0 +1,99 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
tasktree = with pkgs; callPackage ../../packages/tasktree {};
|
||||
in {
|
||||
imports = [
|
||||
./i3.nix
|
||||
../../modules/home-options.nix
|
||||
];
|
||||
common = {
|
||||
workspaces = [
|
||||
"tasks"
|
||||
"chat"
|
||||
"mail"
|
||||
"code"
|
||||
"research"
|
||||
"work"
|
||||
"ccc"
|
||||
"orga"
|
||||
"leisure"
|
||||
"config"
|
||||
];
|
||||
terminal = "xterm";
|
||||
colors = {
|
||||
"foreground" = "#dddbff";
|
||||
"background" = "#05004a";
|
||||
"black" = "#030031";
|
||||
"brightBlack" = "#55508f";
|
||||
"red" = "#e34b4f";
|
||||
"brightRed" = "#e34b4f";
|
||||
"green" = "#67b779";
|
||||
"brightGreen" = "#45b75e";
|
||||
"yellow" = "#ff9c00";
|
||||
"brightYellow" = "#ff9c00";
|
||||
"blue" = "#5c67ff";
|
||||
"brightBlue" = "#5c67ff";
|
||||
"magenta" = "#cb85ff";
|
||||
"brightMagenta" = "#cb85ff";
|
||||
"cyan" = "#17d0f4";
|
||||
"brightCyan" = "#17d0f4";
|
||||
"white" = "#dddbff";
|
||||
"brightWhite" = "#ffffff";
|
||||
};
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
tasktree
|
||||
];
|
||||
keyboard = {
|
||||
layout = "de";
|
||||
variant = "neo";
|
||||
options = [ "altwin:swap_lalt_lwin" ];
|
||||
};
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Arc";
|
||||
package = pkgs.arc-icon-theme;
|
||||
};
|
||||
theme = {
|
||||
name = "Arc-Dark";
|
||||
package = pkgs.arc-theme;
|
||||
};
|
||||
};
|
||||
xdg.enable = true;
|
||||
services = {
|
||||
compton = {
|
||||
enable = true;
|
||||
fade = true;
|
||||
fadeDelta = 5;
|
||||
};
|
||||
gnome-keyring = {
|
||||
enable = true;
|
||||
components = [
|
||||
"secrets"
|
||||
"ssh"
|
||||
];
|
||||
};
|
||||
random-background = {
|
||||
enable = true;
|
||||
imageDirectory = "%h/data/aktuell/media/bilder/wallpaper/";
|
||||
interval = "15minutes";
|
||||
};
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
};
|
||||
redshift = {
|
||||
enable = true;
|
||||
temperature.day = 6500;
|
||||
latitude = "49.86667";
|
||||
longitude = "8.65";
|
||||
};
|
||||
screen-locker = {
|
||||
enable = true;
|
||||
lockCmd = "${pkgs.i3lock}/bin/i3lock -n -f -i ~/data/aktuell/media/bilder/lockscreen.png";
|
||||
};
|
||||
};
|
||||
xsession.enable = true;
|
||||
}
|
212
home-common/graphical/eventd.nix
Normal file
212
home-common/graphical/eventd.nix
Normal file
|
@ -0,0 +1,212 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
eventd-pkgs = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/fe61c3b84e8e81a8ec2bf6b3ed2a0e8652cea190.tar.gz) {};
|
||||
eventd = with eventd-pkgs; callPackage ../../packages/eventd {};
|
||||
colors = config.common.colors;
|
||||
in {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
eventd
|
||||
];
|
||||
};
|
||||
systemd.user = {
|
||||
services = {
|
||||
eventd = {
|
||||
Unit = {
|
||||
Description = "eventd";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
Type="notify";
|
||||
Sockets="eventd-control.socket eventd.socket";
|
||||
ExecStart="${eventd}/bin/eventd --listen systemd";
|
||||
ExecReload="${eventd}/bin/eventdctl reload";
|
||||
};
|
||||
};
|
||||
};
|
||||
sockets = {
|
||||
eventd-control = {
|
||||
Unit = {
|
||||
Description = "eventd control socket";
|
||||
};
|
||||
Socket = {
|
||||
Service = "eventd.service";
|
||||
SocketMode = "0600";
|
||||
ListenStream = "%t/eventd/private";
|
||||
};
|
||||
};
|
||||
eventd = {
|
||||
Unit = {
|
||||
Description = "eventd sockets";
|
||||
};
|
||||
Socket = {
|
||||
SocketMode = "0660";
|
||||
ListenStream= "%t/eventd/evp";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg = {
|
||||
configFile = {
|
||||
"eventd/eventd.conf".text = lib.generators.toINI {} {
|
||||
"Queue default" = {
|
||||
Margin = 10;
|
||||
Spacing = 2;
|
||||
Limit = 10;
|
||||
};
|
||||
"Queue mode" = {
|
||||
Anchor = "top";
|
||||
Margin = 300;
|
||||
Limit = 1;
|
||||
};
|
||||
"Queue feedback" = {
|
||||
Anchor = "top";
|
||||
Margin = 450;
|
||||
Limit = 1;
|
||||
};
|
||||
"Queue workspace" = {
|
||||
Anchor = "bottom-left";
|
||||
Margin = 10;
|
||||
Limit = 1;
|
||||
};
|
||||
"Queue command" = {
|
||||
Anchor = "bottom-right";
|
||||
Margin = 10;
|
||||
Spacing = 2;
|
||||
Limit = 10;
|
||||
};
|
||||
"Queue critical" = {
|
||||
Anchor = "top";
|
||||
Margin = 10;
|
||||
Spacing = 2;
|
||||
Limit = 10;
|
||||
};
|
||||
"Queue state" = {
|
||||
Anchor = "top-left";
|
||||
Margin = 10;
|
||||
Spacing = 2;
|
||||
Limit = 10;
|
||||
};
|
||||
"Queue music" = {
|
||||
Anchor = "bottom";
|
||||
Margin = 10;
|
||||
Limit = 1;
|
||||
};
|
||||
Notification = {
|
||||
Text = "\${message}";
|
||||
};
|
||||
NotificationBubble = {
|
||||
Padding = 10;
|
||||
Radius = 0;
|
||||
Border = 4;
|
||||
BorderBlur = 4;
|
||||
Timeout = 5000;
|
||||
Colour = colors.background;
|
||||
};
|
||||
NotificationText = {
|
||||
Font = "Linux Libertine 12";
|
||||
Colour = colors.foreground;
|
||||
};
|
||||
};
|
||||
"eventd/notification.event".text = lib.generators.toINI {} {
|
||||
"Event mode *" = {
|
||||
Actions = "mode";
|
||||
};
|
||||
"Event notification *" = {
|
||||
Actions = "notification";
|
||||
};
|
||||
"Event feedback *" = {
|
||||
Actions = "feedback";
|
||||
};
|
||||
"Event workspace *" = {
|
||||
Actions = "workspace";
|
||||
};
|
||||
"Event command success" = {
|
||||
Actions = "command-success";
|
||||
};
|
||||
"Event command failure" = {
|
||||
Actions = "command-failure";
|
||||
};
|
||||
"Event critical *" = {
|
||||
Actions = "critical";
|
||||
};
|
||||
"Event state *" = {
|
||||
Actions = "state";
|
||||
};
|
||||
};
|
||||
"eventd/mode.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "mode";
|
||||
};
|
||||
Notification = {
|
||||
};
|
||||
NotificationBubble = {
|
||||
Timeout = 0;
|
||||
Queue = "mode";
|
||||
Padding = 40;
|
||||
MinWidth = 10;
|
||||
};
|
||||
NotificationText = {
|
||||
Font = "Linux Libertine 40";
|
||||
};
|
||||
};
|
||||
"eventd/command-success.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "command-success";
|
||||
};
|
||||
Notification = {
|
||||
Text="<b>\${command}</b>\\nsucceeded after \${time} @ \${host}";
|
||||
};
|
||||
NotificationBubble = {
|
||||
Colour = colors.black;
|
||||
};
|
||||
};
|
||||
"eventd/command-failure.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "command-failure";
|
||||
};
|
||||
Notification = {
|
||||
Text="<b>\${command}</b>\\nfailed after \${time} @ \${host}";
|
||||
};
|
||||
NotificationBubble = {
|
||||
Colour = colors.red;
|
||||
};
|
||||
};
|
||||
"eventd/workspace.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "workspace";
|
||||
};
|
||||
Notification = {
|
||||
};
|
||||
NotificationBubble = {
|
||||
Queue = "workspace";
|
||||
MinWidth = 10;
|
||||
};
|
||||
};
|
||||
"eventd/feedback.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "feedback";
|
||||
};
|
||||
Notification = {
|
||||
};
|
||||
NotificationBubble = {
|
||||
Timeout = 500;
|
||||
Queue = "feedback";
|
||||
Colour = colors.red;
|
||||
};
|
||||
};
|
||||
"eventd/notification.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "notification";
|
||||
};
|
||||
Notification = {
|
||||
Text = "<b>\${title}</b>\${message/^/\\n}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
134
home-common/graphical/i3.nix
Normal file
134
home-common/graphical/i3.nix
Normal file
|
@ -0,0 +1,134 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
colors = config.common.colors;
|
||||
workspaces = config.common.workspaces;
|
||||
terminal = config.common.terminal;
|
||||
exec = "exec --no-startup-id";
|
||||
addMods = oldbindings: builtins.foldl' (newbindings: key:
|
||||
newbindings // {
|
||||
"Mod4+${key}" = oldbindings.${key};
|
||||
"Mod3+Mod4+${key}" = oldbindings.${key};
|
||||
})
|
||||
{}
|
||||
(builtins.attrNames oldbindings);
|
||||
in {
|
||||
imports = [
|
||||
./eventd.nix
|
||||
./rofi
|
||||
./urxvt.nix
|
||||
];
|
||||
home.packages = [ pkgs.skippy-xd ];
|
||||
xsession = {
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
config = {
|
||||
focus = {
|
||||
followMouse = false;
|
||||
forceWrapping = true;
|
||||
};
|
||||
colors = {
|
||||
focused = {
|
||||
background = colors.blue;
|
||||
border = colors.blue;
|
||||
childBorder = colors.blue;
|
||||
indicator = colors.green;
|
||||
text = colors.foreground;
|
||||
};
|
||||
focusedInactive = {
|
||||
background = colors.background;
|
||||
border = colors.background;
|
||||
childBorder = colors.background;
|
||||
indicator = colors.green;
|
||||
text = colors.foreground;
|
||||
};
|
||||
unfocused = {
|
||||
background = colors.background;
|
||||
border = colors.background;
|
||||
childBorder = colors.background;
|
||||
indicator = colors.green;
|
||||
text = colors.foreground;
|
||||
};
|
||||
urgent = {
|
||||
background = colors.red;
|
||||
border = colors.red;
|
||||
childBorder = colors.red;
|
||||
indicator = colors.green;
|
||||
text = colors.foreground;
|
||||
};
|
||||
};
|
||||
bars = [ {
|
||||
mode = "hide";
|
||||
colors = {
|
||||
separator = colors.white;
|
||||
background = colors.background;
|
||||
activeWorkspace = {
|
||||
background = colors.blue;
|
||||
border = colors.blue;
|
||||
text = colors.white;
|
||||
};
|
||||
bindingMode = {
|
||||
background = colors.red;
|
||||
border = colors.red;
|
||||
text = colors.white;
|
||||
};
|
||||
focusedWorkspace = {
|
||||
background = colors.blue;
|
||||
border = colors.blue;
|
||||
text = colors.white;
|
||||
};
|
||||
inactiveWorkspace = {
|
||||
background = colors.background;
|
||||
border = colors.background;
|
||||
text = colors.white;
|
||||
};
|
||||
};
|
||||
} ];
|
||||
window = {
|
||||
titlebar = false;
|
||||
border = 1;
|
||||
};
|
||||
gaps = {
|
||||
inner = 0;
|
||||
outer = 0;
|
||||
smartBorders = "off";
|
||||
smartGaps = false;
|
||||
};
|
||||
keybindings = addMods ({
|
||||
"Left" = "focus left";
|
||||
"Down" = "focus down";
|
||||
"Up" = "focus up";
|
||||
"Right" = "focus right";
|
||||
"Tab" = "${exec} rofi -show window";
|
||||
"w" = "${exec} skippy-xd";
|
||||
"Prior" = "focus parent";
|
||||
"Next" = "focus child";
|
||||
"Ctrl+Escape" = "${exec} loginctl lock-session;";
|
||||
"Return" = "${exec} ${terminal}";
|
||||
"p" = "${exec} rofi-pass";
|
||||
"r" = "${exec} rofi -show combi";
|
||||
"o" = "${exec} rofi -show web";
|
||||
"n" = "${exec} rofi -show ssh";
|
||||
"a" = "${exec} tasklauncher";
|
||||
"shift+Left" = "move left";
|
||||
"shift+Down" = "move down";
|
||||
"shift+Up" = "move up";
|
||||
"shift+Right" = "move right";
|
||||
"d" = "split h";
|
||||
"f" = "fullscreen toggle";
|
||||
"t" = "layout tabbed";
|
||||
"s" = "layout toggle split";
|
||||
"q" = "kill";
|
||||
"shift+space" = "floating toggle";
|
||||
"shift+q" = "exec i3-nagbar -t warning -m 'do you want to exit i3?' -b 'yes' 'i3-msg exit'";
|
||||
} // builtins.foldl' (bindings: name: let
|
||||
number = toString ((builtins.length (builtins.attrNames bindings)) / 2);
|
||||
in
|
||||
bindings // {
|
||||
"${number}" = "workspace ${number}:${name}";
|
||||
"Shift+${number}" = "move container to workspace ${number}:${name}";
|
||||
}) {} workspaces
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
77
home-common/graphical/rofi/default.nix
Normal file
77
home-common/graphical/rofi/default.nix
Normal file
|
@ -0,0 +1,77 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
workspaces = config.common.workspaces;
|
||||
terminal = config.common.terminal;
|
||||
colors = config.common.colors;
|
||||
rofiScriptWeb = pkgs.writeShellScriptBin "rofi-script-web" ''
|
||||
if [[ -z $@ ]]; then
|
||||
sed 's/^[0-9]*\(-r\)\? \?//;s/^\([^[:space:]]*\).*$/\1/' $HOME/.local/share/qutebrowser/history | tac
|
||||
else
|
||||
${pkgs.qutebrowser}/bin/qutebrowser "$1" > /dev/null &
|
||||
fi
|
||||
'';
|
||||
rofiScriptI3 = pkgs.writeShellScriptBin "rofi-script-i3" ''
|
||||
if [ -z $@ ]; then
|
||||
(i3-msg -t get_workspaces | tr ',' '\n' | grep "name" | sed 's/"name":"\(.*\)"/\1/g';
|
||||
echo "${builtins.concatStringsSep "\n" (builtins.foldl' (labels: name: let
|
||||
number = toString (builtins.length labels);
|
||||
in
|
||||
labels ++ [ "${number}:${name}" ]
|
||||
) [] workspaces)}") | sort -u
|
||||
else
|
||||
i3-msg workspace "$@" >/dev/null
|
||||
fi
|
||||
'';
|
||||
rofiTask = pkgs.writeScriptBin "tasklauncher" (builtins.readFile ./tasklauncher.py);
|
||||
# recollPython = pkgs.python2.withPackages (ps: [
|
||||
# pkgs.recoll
|
||||
# ]);
|
||||
# rofiFind = pkgs.writeScriptBin "zzzfoo" (builtins.replaceStrings [ "/usr/bin/env python" ] [ "${recollPython}/bin/python" ] (builtins.readFile ./zzzfoo/zzzfoo));
|
||||
in {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
rofi
|
||||
rofiScriptWeb
|
||||
rofiScriptI3
|
||||
rofiTask
|
||||
# rofiFind
|
||||
rofi-pass
|
||||
# recoll
|
||||
];
|
||||
};
|
||||
programs = {
|
||||
rofi = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
rofi.modi: combi,window,drun,run,ssh,keys,web:rofi-script-web,i3:rofi-script-i3
|
||||
rofi.sidebar-mode: true
|
||||
rofi.combi-modi: window,drun,run
|
||||
'';
|
||||
separator = "solid";
|
||||
terminal = terminal;
|
||||
location = "left";
|
||||
scrollbar = false;
|
||||
width = 1500;
|
||||
yoffset = -10;
|
||||
lines = 35;
|
||||
colors = {
|
||||
window = {
|
||||
background = colors.background;
|
||||
border = colors.blue;
|
||||
separator = colors.blue;
|
||||
};
|
||||
rows = {
|
||||
normal = {
|
||||
background = colors.background;
|
||||
foreground = colors.foreground;
|
||||
backgroundAlt = colors.black;
|
||||
highlight = {
|
||||
background = colors.blue;
|
||||
foreground = colors.white;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
29
home-common/graphical/rofi/tasklauncher.py
Normal file
29
home-common/graphical/rofi/tasklauncher.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
||||
def call_task(args):
|
||||
return subprocess.Popen(["task", "rc.verbose=nothing"] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0].strip()
|
||||
|
||||
runtime_dir = os.getenv("XDG_RUNTIME_DIR")
|
||||
if not os.path.exists(runtime_dir):
|
||||
os.makedirs(runtime_dir)
|
||||
filename = os.path.join(runtime_dir, "taskfilter")
|
||||
if not os.path.exists(filename):
|
||||
with open(filename, 'w') as filterfile:
|
||||
filterfile.write("inboxall")
|
||||
|
||||
lastresult = ""
|
||||
while True:
|
||||
with open(filename) as filterfile:
|
||||
filter = filterfile.read().strip()
|
||||
tasklist = call_task(["default"] + filter.split())
|
||||
rofi_list_cmd = ['rofi', '-dmenu', '-p', 'task: ', '-mesg', '\n'.join([lastresult, "filter: {}".format(filter)]).strip()]
|
||||
rofi = subprocess.Popen(rofi_list_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
entered_command = rofi.communicate(input=tasklist)[0].decode('utf8').strip()
|
||||
if entered_command == "":
|
||||
sys.exit(0)
|
||||
task_result = subprocess.Popen(["task"] + entered_command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
|
||||
lastresult = '\n'.join([task_result[0].decode('utf8'), task_result[1].decode('utf8')]).strip()
|
1
home-common/graphical/rofi/zzzfoo
Submodule
1
home-common/graphical/rofi/zzzfoo
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 4800c1c645b24ef7b7638f2a31f45826b8fc2973
|
35
home-common/graphical/urxvt.nix
Normal file
35
home-common/graphical/urxvt.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
colors = config.common.colors;
|
||||
in {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
rxvt_unicode-with-plugins
|
||||
];
|
||||
};
|
||||
xresources.properties = {
|
||||
"*transparent" = true;
|
||||
"*tintColor" = colors.background;
|
||||
"*scrollBar" = false;
|
||||
"*urgentOnBell" = true;
|
||||
"*background" = colors.background;
|
||||
"*foreground" = colors.foreground;
|
||||
"*color0" = colors.black;
|
||||
"*color8" = colors.brightBlack;
|
||||
"*color1" = colors.red;
|
||||
"*color9" = colors.brightRed;
|
||||
"*color2" = colors.green;
|
||||
"*color10" = colors.brightGreen;
|
||||
"*color3" = colors.yellow;
|
||||
"*color11" = colors.brightYellow;
|
||||
"*color4" = colors.blue;
|
||||
"*color12" = colors.brightBlue;
|
||||
"*color5" = colors.magenta;
|
||||
"*color13" = colors.brightMagenta;
|
||||
"*color6" = colors.cyan;
|
||||
"*color14" = colors.brightCyan;
|
||||
"*color7" = colors.white;
|
||||
"*color15" = colors.brightWhite;
|
||||
"*boldFont" = "";
|
||||
};
|
||||
}
|
|
@ -9,12 +9,12 @@
|
|||
collection-latexextra
|
||||
collection-bibtexextra
|
||||
collection-luatex
|
||||
collection-mathscience
|
||||
# collection-math
|
||||
collection-fontsextra;
|
||||
};
|
||||
};
|
||||
};
|
||||
home.packages = [
|
||||
pgks.biber
|
||||
pkgs.biber
|
||||
];
|
||||
}
|
|
@ -7,5 +7,8 @@
|
|||
sshuttle
|
||||
mtr
|
||||
youtubeDL
|
||||
|
||||
cargo
|
||||
rustfmt
|
||||
];
|
||||
}
|
79
home-common/taskwarrior.nix
Normal file
79
home-common/taskwarrior.nix
Normal file
|
@ -0,0 +1,79 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [ taskwarrior ];
|
||||
file = {
|
||||
taskwarrior-on-add-hook = {
|
||||
target = ".task/hooks/on-add.eventd-notification";
|
||||
text = ''
|
||||
#!${pkgs.python3}/bin/python
|
||||
import sys
|
||||
import json
|
||||
import subprocess
|
||||
|
||||
input_string = sys.stdin.readline()
|
||||
original = json.loads(input_string)
|
||||
command = ['eventc', 'task', 'add']
|
||||
for name, value in original.items():
|
||||
command.append("-d")
|
||||
if type(value) == list:
|
||||
value = ', '.join(value)
|
||||
command.append(name+"='"+value+"'")
|
||||
subprocess.Popen(command)
|
||||
print(input_string)
|
||||
'';
|
||||
executable = true;
|
||||
};
|
||||
taskwarrior-on-modify-hook = {
|
||||
target = ".task/hooks/on-modify.eventd-notification";
|
||||
text = ''
|
||||
#!${pkgs.python3}/bin/python
|
||||
import sys
|
||||
import json
|
||||
import subprocess
|
||||
|
||||
input_string = sys.stdin.readline()
|
||||
original = json.loads(input_string)
|
||||
input_string = sys.stdin.readline()
|
||||
new = json.loads(input_string)
|
||||
command = ['eventc', 'task', 'modify']
|
||||
for name in set(new.keys()).union(set(original.keys())):
|
||||
if new.get(name) != original.get(name) or name == "description":
|
||||
value = new.get(name, "")
|
||||
command.append("-d")
|
||||
if type(value) == list:
|
||||
value = ', '.join(value)
|
||||
command.append(name+"='"+value+"'")
|
||||
subprocess.Popen(command)
|
||||
print(input_string)
|
||||
'';
|
||||
executable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg = let
|
||||
taskAction = name: template: {
|
||||
"eventd/task-${name}.action".text = lib.generators.toINI {} {
|
||||
Action = {
|
||||
Name = "task-${name}";
|
||||
};
|
||||
Notification = {
|
||||
Text = template;
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
configFile = {
|
||||
"eventd/task.event".text = lib.generators.toINI {} {
|
||||
"Event task add" = {
|
||||
Actions = "task-new";
|
||||
};
|
||||
"Event task modify" = {
|
||||
Actions = "task-changed";
|
||||
};
|
||||
};
|
||||
} //
|
||||
taskAction "changed" "Changes in task:\\n<b>\${description}</b>\${status:+\\nStatus: }\${status}\${tags:+\\nTags: }\${tags}\${project:+\\nProject: }\${project}" //
|
||||
taskAction "new" "New \${status} task\${tags:! in inbox}:\\n<b>\${description}</b>\${tags:+\\nTags: }\${tags}\${project:+\\nProject: }\${project}";
|
||||
};
|
||||
}
|
|
@ -1,112 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.home-manager = {
|
||||
enable = true;
|
||||
path = https://github.com/rycee/home-manager/archive/release-17.09.tar.gz;
|
||||
};
|
||||
systemd.user.startServices = true;
|
||||
|
||||
imports = [
|
||||
# ./update-hm.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
htop
|
||||
tree
|
||||
rxvt_unicode.terminfo
|
||||
|
||||
socat
|
||||
nmap
|
||||
tcpdump
|
||||
|
||||
rcm
|
||||
tmux
|
||||
tig
|
||||
exa
|
||||
|
||||
neovim
|
||||
taskwarrior
|
||||
|
||||
vimPlugins.vundle
|
||||
vimPlugins.deoplete-nvim
|
||||
vimPlugins.vim-nix
|
||||
pythonPackages.qrcode
|
||||
ranger
|
||||
];
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
ignores = [
|
||||
".syncthing*.tmp"
|
||||
"*.swp"
|
||||
"*.autosave~"
|
||||
"*.aux"
|
||||
"*.bbl"
|
||||
"*.fls"
|
||||
"*.idx"
|
||||
"*.ilg"
|
||||
"*.ind"
|
||||
"*.log"
|
||||
"*.out"
|
||||
"*.toc"
|
||||
"*.bcf"
|
||||
"*.blg"
|
||||
"*.fdb*"
|
||||
"*.thm"
|
||||
"*.run.xml"
|
||||
"*.slnc"
|
||||
"*.glade~"
|
||||
"__pycache__"
|
||||
".hledger-web_client_session_key.aes"
|
||||
".nix-gc-roots"
|
||||
];
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
};
|
||||
userEmail = "malte.brandy@maralorn.de";
|
||||
userName = "Malte Brandy";
|
||||
};
|
||||
htop.enable = true;
|
||||
neovim = {
|
||||
enable = true;
|
||||
configure = {
|
||||
};
|
||||
};
|
||||
rofi = {
|
||||
enable = true;
|
||||
};
|
||||
ssh = {
|
||||
controlPath = true;
|
||||
enable = true;
|
||||
matchBlocks = let
|
||||
matheGwProxy = "ssh -q gw nc -q0 %h %p";
|
||||
kivaHost = "fb04386.mathematik.tu-darmstadt.de";
|
||||
agHost = "fb04217.mathematik.tu-darmstadt.de";
|
||||
in [
|
||||
{ host = "charon"; hostname = "charon.olymp.space"; }
|
||||
{ host = "*.olymp.space"; user = "maralorn"; }
|
||||
{ host = "ag-forward"; hostname = agHost; proxyCommand = matheGwProxy; }
|
||||
{ host = "ag"; hostname = agHost; }
|
||||
{ host = "kiva-forward"; hostname = kivaHost; proxyCommand = matheGwProxy; }
|
||||
{ host = "kiva"; hostname = kivaHost; }
|
||||
{ host = "gw"; hostname = "gwres4.mathematik.tu-darmstadt.de"; }
|
||||
{ host = "*.mathematik.tu-darmstadt.de"; user = "brandy"; }
|
||||
{ host = "shells"; hostname = "shells.darmstadt.ccc.de"; }
|
||||
{ host = "vorstand"; hostname = "vorstand.darmstadt.ccc.de"; }
|
||||
{ host = "*.darmstadt.ccc.de"; user = "maralorn"; }
|
||||
{ host = "whisky"; hostname = "whisky.w17.io"; user = "chaos"; }
|
||||
];
|
||||
};
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableCompletion = true;
|
||||
history = {
|
||||
path = "~/.zsh_history";
|
||||
save = 100000;
|
||||
size = 100000;
|
||||
};
|
||||
};
|
||||
xdg.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,107 +0,0 @@
|
|||
with import <nixpkgs> {};
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "Tasktree";
|
||||
exec = "tasktree";
|
||||
icon = "tasktree";
|
||||
comment = "A taskwarrior UI";
|
||||
desktopName = "Tasktree";
|
||||
genericName = "Tasktree";
|
||||
categories = "Office;";
|
||||
};
|
||||
tasktree = with pkgs; with rustPlatform; buildRustPackage rec {
|
||||
name = "tasktree";
|
||||
version = "abb312f";
|
||||
src = fetchFromGitHub {
|
||||
rev = version;
|
||||
owner = "maralorn";
|
||||
repo = "tasktree";
|
||||
sha256 = "139xjvi7b62k3075b4md9hdkb1xafhhiyz2yhbb96d73j1gkqs77";
|
||||
};
|
||||
depsSha256 = "1iw9n1bj7h1v6nz2m3y6045qjavvim3hk5cli3y8x2zakmx88mia";
|
||||
cargoSha256 = "1iw9n1bj7h1v6nz2m3y6045qjavvim3hk5cli3y8x2zakmx88mia";
|
||||
|
||||
propagatedBuildInputs = [ gnome3.gtk atk cairo gdk_pixbuf glib pango ];
|
||||
postInstall = ''
|
||||
function installIcon () {
|
||||
mkdir -p $out/share/icons/hicolor/$1/apps/
|
||||
cp icons/$1.png $out/share/icons/hicolor/$1/apps/tasktree.png
|
||||
}
|
||||
installIcon "16x16"
|
||||
installIcon "32x32"
|
||||
installIcon "64x64"
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
ln -s ${desktopItem}/share/applications/* $out/share/applications/
|
||||
'';
|
||||
};
|
||||
in {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
vimPlugins.vimtex
|
||||
redshift
|
||||
python27Packages.syncthing-gtk
|
||||
rxvt_unicode
|
||||
tasktree
|
||||
tilda
|
||||
];
|
||||
keyboard = {
|
||||
layout = "de";
|
||||
variant = "neo";
|
||||
};
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconeTheme = {
|
||||
name = "Arc";
|
||||
package = "arc-icon-theme";
|
||||
};
|
||||
theme = {
|
||||
name = "Arc";
|
||||
packages = "arc-theme";
|
||||
};
|
||||
};
|
||||
service = {
|
||||
compton = {
|
||||
enable = true;
|
||||
fade = true;
|
||||
shadow = true;
|
||||
};
|
||||
dunst = {
|
||||
enable = true;
|
||||
};
|
||||
gnome-keyring = {
|
||||
enable = true;
|
||||
components = [
|
||||
"secrets"
|
||||
"ssh"
|
||||
];
|
||||
};
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
};
|
||||
network-manager-applet.enable = true;
|
||||
redshift = {
|
||||
enable = true;
|
||||
temperature.day = 6500;
|
||||
latitude = 49.86667;
|
||||
longitude = 8.65;
|
||||
};
|
||||
screen-locker = {
|
||||
enable = true;
|
||||
lockCmd = "${pkgs.i3lock}/bin/i3lock";
|
||||
};
|
||||
};
|
||||
xsession = {
|
||||
enable = true;
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
gaps = {
|
||||
inner = 3;
|
||||
outer = 6;
|
||||
smartBorders = "on";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +1,22 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
|
||||
in {
|
||||
{
|
||||
|
||||
imports = [
|
||||
../../snippets/everywhere.nix
|
||||
../../snippets/my-systems.nix
|
||||
../../snippets/graphical.nix
|
||||
../../snippets/latex.nix
|
||||
../../home-common
|
||||
../../home-common/my-systems.nix
|
||||
../../home-common/graphical
|
||||
../../home-common/latex.nix
|
||||
];
|
||||
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
package = unstable.firefox;
|
||||
};
|
||||
git = {
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
key = "6C3D12CD88CDF46C5EAF4D12226A2D41EF5378C9";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -21,13 +24,18 @@ in {
|
|||
udiskie = {
|
||||
enable = true;
|
||||
notify = true;
|
||||
tray = "auto";
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
home.packages = with pkgs.gnome3; [
|
||||
glade
|
||||
] ++ (with pkgs; [
|
||||
# web
|
||||
chromium
|
||||
acpi
|
||||
|
||||
arandr
|
||||
qutebrowser
|
||||
|
||||
# tools & office
|
||||
gimp
|
||||
|
@ -39,10 +47,6 @@ in {
|
|||
handbrake
|
||||
octave
|
||||
|
||||
# dev
|
||||
rustup
|
||||
gnome3.glade
|
||||
|
||||
# look & feel
|
||||
libertine
|
||||
nerdfonts
|
||||
|
@ -54,6 +58,6 @@ in {
|
|||
mpd
|
||||
gmpc
|
||||
calibre
|
||||
gnome-mpv
|
||||
];
|
||||
mpv
|
||||
]);
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
|
||||
habitask = with unstable; with rustPlatform; buildRustPackage rec {
|
||||
habitask = with pkgs; with rustPlatform; buildRustPackage rec {
|
||||
name = "habitask";
|
||||
version = "0.1.0";
|
||||
src = ~/data/aktuell/it/code/habitask;
|
|
@ -1,7 +1,5 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
|
||||
in {
|
||||
{
|
||||
systemd.user = {
|
||||
services.morgenreport =
|
||||
let
|
|
@ -1,12 +1,10 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
|
||||
in {
|
||||
{
|
||||
systemd.user = {
|
||||
services.sort-mail =
|
||||
let
|
||||
sort-mail-script = pkgs.writeShellScriptBin "sort-mail" ''
|
||||
${unstable.isync}/bin/mbsync -a
|
||||
${pkgs.isync}/bin/mbsync -a
|
||||
|
||||
mv $HOME/data/aktuell/it/mail/.Move.kiva/cur/* $HOME/data/aktuell/it/mail-accounts/fb4/INBOX/new/
|
||||
mv $HOME/data/aktuell/it/mail/.Move.Auslandskoordination/cur/* $HOME/data/aktuell/it/mail-accounts/auslandskoordination/Malte/bearbeiten/new/
|
||||
|
@ -17,7 +15,7 @@ in {
|
|||
mv $HOME/data/aktuell/it/mail-accounts/auslandskoordination/Malte/privat/cur/* $HOME/data/aktuell/it/mail/new/
|
||||
mv $HOME/data/aktuell/it/mail-accounts/auslandskoordination/Malte/kiva/cur/* $HOME/data/aktuell/it/mail-accounts/fb4/INBOX/new/
|
||||
|
||||
${unstable.isync}/bin/mbsync -a
|
||||
${pkgs.isync}/bin/mbsync -a
|
||||
'';
|
||||
in {
|
||||
Unit = {
|
|
@ -1,10 +1,13 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# channel = 18.03
|
||||
|
||||
imports = [
|
||||
./admin.nix
|
||||
./syncthing.nix
|
||||
];
|
||||
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
};
|
||||
|
@ -18,8 +21,8 @@
|
|||
automatic = true;
|
||||
options = "--delete-older-than 5d";
|
||||
};
|
||||
optimise.automatic = true;
|
||||
package = pkgs.nixUnstable;
|
||||
optimise.automatic = true;
|
||||
};
|
||||
system.autoUpgrade.enable = true;
|
||||
system.autoUpgrade.dates = "22:00";
|
|
@ -1,6 +1,3 @@
|
|||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
|
||||
in
|
||||
{
|
||||
boot.kernel.sysctl = { "fs.inotify.max_user_watches" = 204800; };
|
||||
services = {
|
||||
|
@ -10,8 +7,6 @@ in
|
|||
group = "users";
|
||||
user = "maralorn";
|
||||
openDefaultPorts = true;
|
||||
useInotify = true;
|
||||
package = unstable.syncthing;
|
||||
};
|
||||
};
|
||||
}
|
70
hosts/apollo/configuration.nix
Normal file
70
hosts/apollo/configuration.nix
Normal file
|
@ -0,0 +1,70 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
|
||||
networking = {
|
||||
hostName = "apollo";
|
||||
networkmanager.enable = true;
|
||||
hostId = "38d29f92";
|
||||
};
|
||||
|
||||
i18n.consoleKeyMap = "neo";
|
||||
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/cdarknet
|
||||
../../host-common/common.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
supportedFilesystems = [ "exfat" ];
|
||||
};
|
||||
|
||||
security.rngd.enable = true;
|
||||
|
||||
cdark_net = {
|
||||
enable = true;
|
||||
hostName = "maralorn_apollo";
|
||||
ed25519PrivateKeyFile = /etc/nixos/local/tinc/ed25519_key.priv;
|
||||
hostsDirectory = /etc/nixos/config/modules/cdarknet/hosts;
|
||||
ip6address = "fd23:42:cda:4342::2";
|
||||
ip4address = "172.20.71.2";
|
||||
};
|
||||
|
||||
|
||||
hardware.pulseaudio.enable = true;
|
||||
services = {
|
||||
# printing = {
|
||||
# enable = true;
|
||||
# drivers = [pkgs.hplip];
|
||||
# };
|
||||
# gnome3 = {
|
||||
# gnome-keyring.enable = true;
|
||||
# evolution-data-server.enable = true;
|
||||
# gnome-disks.enable = true;
|
||||
# };
|
||||
xserver = {
|
||||
enable = true;
|
||||
layout = "de";
|
||||
xkbVariant = "neo";
|
||||
libinput.enable = true;
|
||||
desktopManager.gnome3.enable = true;
|
||||
displayManager.auto = {
|
||||
enable = true;
|
||||
user = "maralorn";
|
||||
};
|
||||
config = ''
|
||||
Section "InputClass"
|
||||
Identifier "Enable libinput for TrackPoint"
|
||||
MatchIsPointer "on"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
'';
|
||||
};
|
||||
};
|
||||
#virtualisation.docker.enable = true;
|
||||
}
|
|
@ -1,8 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz) {};
|
||||
in
|
||||
{
|
||||
networking.firewall.allowedTCPPorts = [ 25 587 443 993 ];
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
unstable = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/f022cc679486ec5f21a13dab9a336ba1f5543910.tar.gz) {};
|
||||
in
|
||||
{
|
||||
networking.firewall.allowedTCPPorts = [ 8448 ];
|
||||
|
||||
|
@ -52,7 +49,7 @@ in
|
|||
# Synapse
|
||||
matrix-synapse = {
|
||||
enable = true;
|
||||
package = unstable.matrix-synapse;
|
||||
package = pkgs.matrix-synapse;
|
||||
server_name = "maralorn.de";
|
||||
database_type = "psycopg2";
|
||||
max_upload_size = "30M";
|
1
modules/cdarknet/hosts
Submodule
1
modules/cdarknet/hosts
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 6a05b795d7333f23212427501c6d9dfbe1b73170
|
35
modules/force-copies.nix
Normal file
35
modules/force-copies.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib, config, ... }:
|
||||
let
|
||||
paths = config.home.forceCopies.paths;
|
||||
disableCollisionCheck = path: ''
|
||||
if [[ -a $HOME/${path} ]]; then
|
||||
echo "Removing $HOME/${path}" because it is probably from a previous generation.
|
||||
rm -f $HOME/${path}
|
||||
fi
|
||||
'';
|
||||
copyPath = path: ''
|
||||
canonical=`readlink -f $newGenPath/home-files/${path}`
|
||||
if [[ ! -a $canonical ]]; then
|
||||
echo "File $newGenPath/home-files/${path} does not exist."
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -a $HOME/${path} ]]; then
|
||||
echo "There is no file at $HOME/${path} this is weird."
|
||||
exit 1
|
||||
fi
|
||||
echo "Overwriting $HOME/${path}"
|
||||
cp --remove-destination -T $canonical $HOME/${path};
|
||||
'';
|
||||
in with lib;
|
||||
{
|
||||
options.home.forceCopies.paths = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
config.home.activation = {
|
||||
deleteForcedCopies = config.lib.dag.entryBefore ["checkLinkTargets"]
|
||||
(builtins.concatStringsSep "\n" (builtins.map disableCollisionCheck paths));
|
||||
forceCopies = config.lib.dag.entryAfter ["linkGeneration"]
|
||||
(builtins.concatStringsSep "\n" (builtins.map copyPath paths));
|
||||
};
|
||||
}
|
21
modules/home-options.nix
Normal file
21
modules/home-options.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
common = {
|
||||
terminal = mkOption {
|
||||
default = "urxvt";
|
||||
type = types.str;
|
||||
};
|
||||
colors = mkOption {
|
||||
default = {};
|
||||
type = types.attrs;
|
||||
};
|
||||
workspaces = mkOption {
|
||||
default = [ "configure some workspaces" ];
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
18
packages/blezz/default.nix
Normal file
18
packages/blezz/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ fetchFromGitHub, stdenv, libxcb, xcbutil, xcbutilwm }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "blezz";
|
||||
version = "8643772";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Blezzing";
|
||||
repo = "blezz";
|
||||
rev = version;
|
||||
sha256 = "0kgbzkx49018wxli4agf2vwyq9lnin1qvh1hs6wr59384hmvrbnv";
|
||||
};
|
||||
buildInputs = [ libxcb xcbutil xcbutilwm ];
|
||||
patchPhase = ''
|
||||
grep -v /usr/lib makefile > makefile1
|
||||
mv makefile1 makefile
|
||||
sed s,/usr/bin/,$prefix/usr/bin/, -i makefile
|
||||
mkdir -p $prefix/usr/bin
|
||||
'';
|
||||
}
|
38
packages/eventd/default.nix
Normal file
38
packages/eventd/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ fetchFromGitHub, stdenv, ninja, meson, pkgconfig, glib, cairo, gdk_pixbuf, glib_networking, pango, libudev, xorg, libxslt, docbook_xml_xslt, git, libuuid, dbus, libsoup, docbook_xml_dtd_45, docbook5_xsl, gettext, autoconf, libtool, utillinux, libxkbcommon }:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "eventd";
|
||||
version = "279d3c3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sardemff7";
|
||||
repo = "eventd";
|
||||
rev = version;
|
||||
sha256 = "162gr3agmjn6d0wdj3lixv8qfvgfm9qg3wphbvwywdp4qcwvnjz8";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
patchPhase = ''
|
||||
sed s/0.44.1/0.43.0/ -i meson.build
|
||||
'';
|
||||
buildInputs = [
|
||||
ninja
|
||||
meson
|
||||
pkgconfig
|
||||
glib
|
||||
cairo
|
||||
gdk_pixbuf
|
||||
glib_networking
|
||||
pango
|
||||
libudev
|
||||
xorg.libxcb
|
||||
xorg.xcbutil
|
||||
xorg.xcbutilwm
|
||||
libxkbcommon
|
||||
libxslt
|
||||
docbook_xml_xslt
|
||||
docbook_xml_dtd_45
|
||||
libuuid
|
||||
dbus
|
||||
];
|
||||
preConfigure = ''
|
||||
export mesonFlags="-Denable-systemd=true -Denable-introspection=false -Denable-nd-wayland=false -Denable-im=false -Denable-sound=false -Ddbussessionservicedir=$prefix/share/dbus-1/services -Dsystemduserunitdir=$prefix/lib/systemd/user -Dsystemdsystemunitdir=$prefix/lib/systemd/system"
|
||||
'';
|
||||
}
|
38
packages/tasktree/default.nix
Normal file
38
packages/tasktree/default.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ rustPlatform, gnome3, atk, cairo, gdk_pixbuf, glib, pango, makeDesktopItem, fetchFromGitHub }:
|
||||
let
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "Tasktree";
|
||||
exec = "tasktree";
|
||||
icon = "tasktree";
|
||||
comment = "A taskwarrior UI";
|
||||
desktopName = "Tasktree";
|
||||
genericName = "Tasktree";
|
||||
categories = "Office;";
|
||||
};
|
||||
in
|
||||
with rustPlatform; buildRustPackage rec {
|
||||
name = "tasktree";
|
||||
version = "abb312f";
|
||||
src = fetchFromGitHub {
|
||||
rev = version;
|
||||
owner = "maralorn";
|
||||
repo = "tasktree";
|
||||
sha256 = "139xjvi7b62k3075b4md9hdkb1xafhhiyz2yhbb96d73j1gkqs77";
|
||||
};
|
||||
depsSha256 = "14acvigygrrqyvxra2n01vpadc3mcf8981jrggpvwfbz58jrsa7h";
|
||||
cargoSha256 = "14acvigygrrqyvxra2n01vpadc3mcf8981jrggpvwfbz58jrsa7h";
|
||||
|
||||
propagatedBuildInputs = [ gnome3.gtk atk cairo gdk_pixbuf glib pango ];
|
||||
postInstall = ''
|
||||
function installIcon () {
|
||||
mkdir -p $out/share/icons/hicolor/$1/apps/
|
||||
cp icons/$1.png $out/share/icons/hicolor/$1/apps/tasktree.png
|
||||
}
|
||||
installIcon "16x16"
|
||||
installIcon "32x32"
|
||||
installIcon "64x64"
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
ln -s ${desktopItem}/share/applications/* $out/share/applications/
|
||||
'';
|
||||
}
|
|
@ -1,80 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
|
||||
networking = {
|
||||
hostName = "apollo";
|
||||
networkmanager.enable = true;
|
||||
hostId = "38d29f92";
|
||||
};
|
||||
|
||||
i18n.consoleKeyMap = "neo";
|
||||
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/cdarknet
|
||||
../../snippets/common.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
supportedFilesystems = [ "zfs" "exfat" ];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
zfstools
|
||||
gnome3.caribou
|
||||
xournal
|
||||
];
|
||||
|
||||
security.rngd.enable = true;
|
||||
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
cdark_net = {
|
||||
enable = true;
|
||||
hostName = "maralorn_apollo";
|
||||
ed25519PrivateKeyFile = /etc/nixos/local/tinc/ed25519_key.priv;
|
||||
hostsDirectory = /etc/nixos/config/modules/cdarknet/hosts;
|
||||
ip6address = "fd23:42:cda:4342::2";
|
||||
ip4address = "172.20.71.2";
|
||||
};
|
||||
|
||||
|
||||
services = {
|
||||
printing = {
|
||||
enable = true;
|
||||
drivers = [pkgs.hplip];
|
||||
};
|
||||
xserver = {
|
||||
enable = true;
|
||||
layout = "de";
|
||||
xkbVariant = "neo";
|
||||
#desktopManager.gnome3.enable = true;
|
||||
#windowManager.i3.enable = true;
|
||||
# displayManager.gdm = {
|
||||
# autoLogin = {
|
||||
# delay = 3;
|
||||
# enable = true;
|
||||
# user = "maralorn";
|
||||
# };
|
||||
# wayland = false;
|
||||
# enable = true;
|
||||
# };
|
||||
libinput.enable = true;
|
||||
config = ''
|
||||
Section "InputClass"
|
||||
Identifier "Enable libinput for TrackPoint"
|
||||
MatchIsPointer "on"
|
||||
Driver "libinput"
|
||||
EndSection
|
||||
'';
|
||||
};
|
||||
};
|
||||
#virtualisation.docker.enable = true;
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 2bc5760b0c12502073a26314156e5afc1a6800a0
|
Loading…
Reference in a new issue