Merge remote-tracking branch 'lass/master'
This commit is contained in:
commit
c177a49ca3
@ -9,11 +9,11 @@ let
|
||||
hooks = pkgs.reaktor2-plugins.hooks;
|
||||
commands = pkgs.reaktor2-plugins.commands;
|
||||
|
||||
task = name: let
|
||||
rcFile = builtins.toFile "taskrc" ''
|
||||
confirmation=no
|
||||
'';
|
||||
in {
|
||||
taskRcFile = builtins.toFile "taskrc" ''
|
||||
confirmation=no
|
||||
'';
|
||||
|
||||
task = name: {
|
||||
pattern = "^${name}-([a-z]+)(?::?\\s*(.*))?";
|
||||
activate = "match";
|
||||
command = 1;
|
||||
@ -21,19 +21,19 @@ let
|
||||
env.TASKDATA = "${stateDir}/${name}";
|
||||
commands = {
|
||||
add.filename = pkgs.writeDash "${name}-task-add" ''
|
||||
${pkgs.taskwarrior}/bin/task rc:${rcFile} add "$1"
|
||||
${pkgs.taskwarrior}/bin/task rc:${taskRcFile} add "$1"
|
||||
'';
|
||||
list.filename = pkgs.writeDash "${name}-task-list" ''
|
||||
${pkgs.taskwarrior}/bin/task rc:${rcFile} export \
|
||||
${pkgs.taskwarrior}/bin/task rc:${taskRcFile} export \
|
||||
| ${pkgs.jq}/bin/jq -r '
|
||||
.[] | select(.id != 0) | "\(.id) \(.description)"
|
||||
'
|
||||
'';
|
||||
delete.filename = pkgs.writeDash "${name}-task-delete" ''
|
||||
${pkgs.taskwarrior}/bin/task rc:${rcFile} delete "$1"
|
||||
${pkgs.taskwarrior}/bin/task rc:${taskRcFile} delete "$1"
|
||||
'';
|
||||
done.filename = pkgs.writeDash "${name}-task-done" ''
|
||||
${pkgs.taskwarrior}/bin/task rc:${rcFile} done "$1"
|
||||
${pkgs.taskwarrior}/bin/task rc:${taskRcFile} done "$1"
|
||||
'';
|
||||
};
|
||||
};
|
||||
@ -120,8 +120,138 @@ in {
|
||||
uid = genid_uint31 "reaktor2";
|
||||
home = stateDir;
|
||||
isSystemUser = true;
|
||||
extraGroups = [ "reaktor2" ];
|
||||
};
|
||||
|
||||
users.groups.reaktor2 = {};
|
||||
|
||||
systemd.services.htgen-agenda.serviceConfig.StateDirectory = "reaktor2";
|
||||
krebs.htgen.agenda = {
|
||||
port = 8009;
|
||||
user = {
|
||||
name = "reaktor2";
|
||||
home = stateDir;
|
||||
};
|
||||
script = ''. ${pkgs.writeDash "agenda" ''
|
||||
echo "$Method $Request_URI" >&2
|
||||
case "$Method" in
|
||||
"GET")
|
||||
printf 'HTTP/1.1 200 OK\r\n'
|
||||
printf 'Connection: close\r\n'
|
||||
printf '\r\n'
|
||||
TASKDATA=/var/lib/reaktor2/agenda ${pkgs.taskwarrior}/bin/task rc:${taskRcFile} export
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
''}'';
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
virtualHosts."agenda.r" = {
|
||||
locations."= /index.html".extraConfig = ''
|
||||
alias ${pkgs.writeText "agenda.html" ''
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Agenda</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<style>
|
||||
html {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
dt {
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 30px;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0 0 0 40px;
|
||||
padding: 0 0 0.5em 0;
|
||||
}
|
||||
|
||||
.date {
|
||||
color: grey;
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<dl id="agenda"></dl>
|
||||
<script>
|
||||
const urlSearchParams = new URLSearchParams(window.location.search);
|
||||
const params = Object.fromEntries(urlSearchParams.entries());
|
||||
|
||||
if (params.hasOwnProperty("style")) {
|
||||
const cssUrls = params["style"].split(" ").filter((x) => x.length > 0);
|
||||
for (const cssUrl of cssUrls)
|
||||
fetch(cssUrl)
|
||||
.then((response) =>
|
||||
response.text().then((css) => {
|
||||
const title = document.getElementsByTagName("head")[0];
|
||||
const style = document.createElement("style");
|
||||
style.appendChild(document.createTextNode(css));
|
||||
title.appendChild(style);
|
||||
})
|
||||
)
|
||||
.catch(console.log);
|
||||
}
|
||||
|
||||
fetch("/agenda.json")
|
||||
.then((response) => {
|
||||
response.json().then((agenda) => {
|
||||
const dl = document.getElementById("agenda");
|
||||
for (const agendaItem of agenda) {
|
||||
if (agendaItem.status !== "pending") continue;
|
||||
// task warrior date format to ISO
|
||||
const entryDate = agendaItem.entry.replace(
|
||||
/(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z/,
|
||||
"$1-$2-$3T$4:$5:$6Z"
|
||||
);
|
||||
|
||||
const dt = document.createElement("dt");
|
||||
dt.className = "id";
|
||||
dt.appendChild(document.createTextNode(agendaItem.id.toString()));
|
||||
dl.appendChild(dt);
|
||||
|
||||
const spanDate = document.createElement("span");
|
||||
spanDate.className = "date";
|
||||
spanDate.title = new Date(entryDate).toString();
|
||||
spanDate.appendChild(document.createTextNode(entryDate));
|
||||
|
||||
const dd = document.createElement("dd");
|
||||
dd.className = "description";
|
||||
dd.appendChild(document.createTextNode(agendaItem.description));
|
||||
dd.appendChild(document.createTextNode(" "));
|
||||
dd.appendChild(spanDate);
|
||||
|
||||
dl.appendChild(dd);
|
||||
}
|
||||
});
|
||||
})
|
||||
.then((data) => console.log(data));
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
''};
|
||||
'';
|
||||
locations."/agenda.json".extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://localhost:8009;
|
||||
'';
|
||||
extraConfig = ''
|
||||
add_header 'Access-Control-Allow-Origin' '*';
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.reaktor2-r.serviceConfig.DynamicUser = mkForce false;
|
||||
systemd.services.reaktor2-hackint.serviceConfig.DynamicUser = mkForce false;
|
||||
krebs.reaktor2 = {
|
||||
hackint = {
|
||||
hostname = "irc.hackint.org";
|
||||
@ -140,23 +270,6 @@ in {
|
||||
username = "reaktor2";
|
||||
port = "6697";
|
||||
};
|
||||
freenode = {
|
||||
hostname = "irc.freenode.org";
|
||||
nick = "reaktor2|krebs";
|
||||
plugins = [
|
||||
{
|
||||
plugin = "register";
|
||||
config = {
|
||||
channels = [
|
||||
"#krebs"
|
||||
];
|
||||
};
|
||||
}
|
||||
systemPlugin
|
||||
];
|
||||
username = "reaktor2";
|
||||
port = "6697";
|
||||
};
|
||||
r = {
|
||||
nick = "reaktor2|krebs";
|
||||
sendDelaySec = null;
|
||||
|
1
krebs/3modules/external/default.nix
vendored
1
krebs/3modules/external/default.nix
vendored
@ -220,6 +220,7 @@ in {
|
||||
Ya8buh4RgyE/0hp4QNpa4K7fvntriK+k6zHs7BcZcG2aMWP3O9/4DgjzBR3eslQV
|
||||
oou23ajP11wyfrmZK0/PQGTpsU472Jj+06KtMAaH0zo4vAR8s2kV1ukCAwEAAQ==
|
||||
-----END RSA PUBLIC KEY-----
|
||||
Ed25519PublicKey = s/HNXjzVyDiBZImQdhJqUmj7symv+po9D9uDj+/6c2F
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -70,6 +70,7 @@ in {
|
||||
ip4.addr = "10.243.77.3";
|
||||
aliases = [
|
||||
"hotdog.r"
|
||||
"agenda.r"
|
||||
"build.r"
|
||||
"build.hotdog.r"
|
||||
"cgit.hotdog.r"
|
||||
|
@ -149,6 +149,7 @@ let
|
||||
inherit (cfg.user) home name uid;
|
||||
createHome = true;
|
||||
description = "repo-sync user";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
systemd.timers = mapAttrs' (name: repo:
|
||||
|
@ -1,12 +1,13 @@
|
||||
{ fetchgit, lib, pkgs, stdenv }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "htgen";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
|
||||
#src = <htgen>;
|
||||
src = fetchgit {
|
||||
url = "http://cgit.krebsco.de/htgen";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "0p3517wkfpvip4z0axh0b4v1jm1nqpppldnhq4806c0p33vrjxnf";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "0ml8kp89bwkrwy6iqclzyhxgv2qn9dcpwaafbmsr4mgcl70zx22r";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rss-bridge";
|
||||
version = "unstable-2021-01-10";
|
||||
version = "unstable-2021-04-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RSS-Bridge";
|
||||
repo = "rss-bridge";
|
||||
rev = "98352845a14b9f2eb8925ad7a04a5f6cc6a5af06";
|
||||
sha256 = "1nv1f6f17cn057k9mydd3a0bmj2xa5k410fdq7nhw5b7msyxy2qv";
|
||||
rev = "716f5ddc0e20c10cb77ded46380cc376913a92fd";
|
||||
sha256 = "17aqmj7rz0ysk8nj4kbjvnsjdm47d0xsypfygzzk2vagxfz5w3p8";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"url": "https://github.com/NixOS/nixpkgs",
|
||||
"rev": "fbfb79400a08bf754e32b4d4fc3f7d8f8055cf94",
|
||||
"date": "2021-06-06T04:54:09-03:00",
|
||||
"path": "/nix/store/51dsmanfc179xy70kn2rl0qvg45cn6qr-nixpkgs",
|
||||
"sha256": "0pgyx1l1gj33g5i9kwjar7dc3sal2g14mhfljcajj8bqzzrbc3za",
|
||||
"rev": "dd14e5d78e90a2ccd6007e569820de9b4861a6c2",
|
||||
"date": "2021-07-24T08:14:16-04:00",
|
||||
"path": "/nix/store/0z5nrrjzmjcicjhhdrqb9vgm56zxysk3-nixpkgs",
|
||||
"sha256": "1zmhwx1qqgl1wrrb9mjkck508887rldrnragvximhd7jrh1ya3fb",
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"url": "https://github.com/NixOS/nixpkgs",
|
||||
"rev": "1f91fd1040667e9265a760b0347f8bc416249da7",
|
||||
"date": "2021-06-13T11:32:41+02:00",
|
||||
"path": "/nix/store/8cx16mc5cymv2ll52fs831lmd4ljzmq1-nixpkgs",
|
||||
"sha256": "1lcfcwgal9fpaiq71981abyzz160r6nx1y4pyy1dnvaf951xkdcj",
|
||||
"rev": "91903ceb294dbe63a696759bfba3d23ee667f2dc",
|
||||
"date": "2021-07-26T09:21:28+02:00",
|
||||
"path": "/nix/store/2v649741xdh1crybi2dm879bl60zrkhf-nixpkgs",
|
||||
"sha256": "1hmpwi27r4q0lnspg7ylfzxakwz2fhl3r07vjvq5yalcdqwiain3",
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
|
@ -80,7 +80,7 @@ with import <stockholm/lib>;
|
||||
#remote control
|
||||
environment.systemPackages = with pkgs; [
|
||||
x11vnc
|
||||
torbrowser
|
||||
# torbrowser
|
||||
];
|
||||
krebs.iptables.tables.filter.INPUT.rules = [
|
||||
{ predicate = "-p tcp -i retiolum --dport 5900"; target = "ACCEPT"; }
|
||||
|
@ -1,29 +1,37 @@
|
||||
with (import <stockholm/lib>);
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }: let
|
||||
weechat = pkgs.weechat.override {
|
||||
configure = { availablePlugins, ... }: with pkgs.weechatScripts; {
|
||||
plugins = lib.attrValues (availablePlugins // {
|
||||
python = availablePlugins.python.withPackages (_: [ weechat-matrix ]);
|
||||
});
|
||||
scripts = [ weechat-matrix ];
|
||||
};
|
||||
};
|
||||
|
||||
{
|
||||
tmux = pkgs.writeDashBin "tmux" ''
|
||||
exec ${pkgs.tmux}/bin/tmux -f ${pkgs.writeText "tmux.conf" ''
|
||||
set-option -g prefix `
|
||||
unbind-key C-b
|
||||
bind ` send-prefix
|
||||
|
||||
set-option -g status off
|
||||
set-option -g default-terminal screen-256color
|
||||
|
||||
#use session instead of windows
|
||||
bind-key c new-session
|
||||
bind-key p switch-client -p
|
||||
bind-key n switch-client -n
|
||||
bind-key C-s switch-client -l
|
||||
''} "$@"
|
||||
'';
|
||||
|
||||
in {
|
||||
imports = [
|
||||
./bitlbee.nix
|
||||
];
|
||||
|
||||
systemd.services.chat = let
|
||||
tmux = pkgs.writeDash "tmux" ''
|
||||
exec ${pkgs.tmux}/bin/tmux -f ${pkgs.writeText "tmux.conf" ''
|
||||
set-option -g prefix `
|
||||
unbind-key C-b
|
||||
bind ` send-prefix
|
||||
|
||||
set-option -g status off
|
||||
set-option -g default-terminal screen-256color
|
||||
|
||||
#use session instead of windows
|
||||
bind-key c new-session
|
||||
bind-key p switch-client -p
|
||||
bind-key n switch-client -n
|
||||
bind-key C-s switch-client -l
|
||||
''} "$@"
|
||||
'';
|
||||
in {
|
||||
environment.systemPackages = [ tmux ];
|
||||
systemd.services.chat = {
|
||||
description = "chat environment setup";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@ -38,8 +46,8 @@ with (import <stockholm/lib>);
|
||||
User = "lass";
|
||||
RemainAfterExit = true;
|
||||
Type = "oneshot";
|
||||
ExecStart = "${tmux} -2 new-session -d -s IM ${pkgs.weechat}/bin/weechat";
|
||||
ExecStop = "${tmux} kill-session -t IM";
|
||||
ExecStart = "${tmux}/bin/tmux -2 new-session -d -s IM ${weechat}/bin/weechat";
|
||||
ExecStop = "${tmux}/bin/tmux kill-session -t IM"; # TODO run save in weechat
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
with import <stockholm/lib>;
|
||||
let
|
||||
user = config.krebs.build.user;
|
||||
xmonad-lass = pkgs.callPackage <stockholm/lass/5pkgs/custom/xmonad-lass> { inherit config; };
|
||||
in {
|
||||
imports = [
|
||||
./mpv.nix
|
||||
@ -19,6 +18,7 @@ in {
|
||||
security.rtkit.enable = true;
|
||||
sound.enableOSSEmulation = false;
|
||||
}
|
||||
./xmonad.nix
|
||||
{
|
||||
krebs.per-user.lass.packages = [
|
||||
pkgs.sshuttle
|
||||
@ -120,30 +120,13 @@ in {
|
||||
xkbVariant = "altgr-intl";
|
||||
xkbOptions = "caps:escape";
|
||||
libinput.enable = true;
|
||||
displayManager.lightdm.enable = true;
|
||||
displayManager.defaultSession = "none+xmonad";
|
||||
windowManager.session = [{
|
||||
name = "xmonad";
|
||||
start = ''
|
||||
displayManager = {
|
||||
lightdm.enable = true;
|
||||
defaultSession = "none+xmonad";
|
||||
sessionCommands = ''
|
||||
${pkgs.xorg.xhost}/bin/xhost +LOCAL:
|
||||
${pkgs.systemd}/bin/systemctl --user start xmonad
|
||||
exec ${pkgs.coreutils}/bin/sleep infinity
|
||||
'';
|
||||
}];
|
||||
};
|
||||
|
||||
systemd.user.services.xmonad = {
|
||||
environment = {
|
||||
DISPLAY = ":${toString config.services.xserver.display}";
|
||||
RXVT_SOCKET = "%t/urxvtd-socket";
|
||||
XMONAD_DATA_DIR = "/tmp";
|
||||
};
|
||||
serviceConfig = {
|
||||
SyslogIdentifier = "xmonad";
|
||||
ExecStart = "${xmonad-lass}/bin/xmonad";
|
||||
ExecStop = "${xmonad-lass}/bin/xmonad --shutdown";
|
||||
};
|
||||
restartIfChanged = false;
|
||||
};
|
||||
|
||||
nixpkgs.config.packageOverrides = super: {
|
||||
|
@ -106,7 +106,6 @@ with import <stockholm/lib>;
|
||||
jq
|
||||
|
||||
#style
|
||||
most
|
||||
rxvt_unicode.terminfo
|
||||
|
||||
#monitoring tools
|
||||
@ -117,6 +116,7 @@ with import <stockholm/lib>;
|
||||
iptables
|
||||
iftop
|
||||
tcpdump
|
||||
mosh
|
||||
|
||||
#stuff for dl
|
||||
aria2
|
||||
@ -125,29 +125,31 @@ with import <stockholm/lib>;
|
||||
file
|
||||
hashPassword
|
||||
kpaste
|
||||
krebspaste
|
||||
mosh
|
||||
pciutils
|
||||
pop
|
||||
psmisc
|
||||
q
|
||||
rs
|
||||
tmux
|
||||
untilport
|
||||
usbutils
|
||||
logify
|
||||
goify
|
||||
|
||||
#unpack stuff
|
||||
p7zip
|
||||
unzip
|
||||
unrar
|
||||
libarchive
|
||||
|
||||
(pkgs.writeDashBin "sshn" ''
|
||||
${pkgs.openssh}/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"
|
||||
'')
|
||||
];
|
||||
|
||||
environment.shellAliases = {
|
||||
ll = "ls -l";
|
||||
la = "ls -la";
|
||||
ls = "ls --color";
|
||||
ip = "ip -color=auto";
|
||||
grep = "grep --color=auto";
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enableCompletion = true;
|
||||
interactiveShellInit = ''
|
||||
|
@ -225,7 +225,7 @@ in {
|
||||
${pkgs.mpc_cli}/bin/mpc idle player > /dev/null
|
||||
${pkgs.mpc_cli}/bin/mpc current -f %file%
|
||||
done | while read track; do
|
||||
listeners=$(${pkgs.iproute}/bin/ss -Hno state established 'sport = :8000' | grep '^mptcp' | wc -l)
|
||||
listeners=$(${pkgs.iproute}/bin/ss -Hno state established 'sport = :8000' | grep '^tcp' | wc -l)
|
||||
echo "$(date -Is)" "$track" | tee -a "$HISTORY_FILE"
|
||||
echo "$(tail -$LIMIT "$HISTORY_FILE")" > "$HISTORY_FILE"
|
||||
${set_irc_topic} "playing: $track listeners: $listeners"
|
||||
@ -347,6 +347,19 @@ in {
|
||||
locations."= /recent".extraConfig = ''
|
||||
alias /tmp/played;
|
||||
'';
|
||||
locations."= /current".extraConfig = ''
|
||||
proxy_pass http://localhost:8001;
|
||||
'';
|
||||
locations."= /skip".extraConfig = ''
|
||||
proxy_pass http://localhost:8001;
|
||||
'';
|
||||
locations."= /good".extraConfig = ''
|
||||
proxy_pass http://localhost:8001;
|
||||
'';
|
||||
extraConfig = ''
|
||||
add_header 'Access-Control-Allow-Origin' '*';
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
|
||||
'';
|
||||
};
|
||||
virtualHosts."lassul.us".locations."= /the_playlist".extraConfig = let
|
||||
html = pkgs.writeText "index.html" ''
|
||||
|
@ -1,10 +1,13 @@
|
||||
{ config, pkgs, ... }:
|
||||
pkgs.writers.writeHaskellBin "xmonad" {
|
||||
libraries = with pkgs.haskellPackages; [
|
||||
extra
|
||||
xmonad-stockholm
|
||||
];
|
||||
} /* haskell */ ''
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.xserver.windowManager.xmonad = {
|
||||
enable = true;
|
||||
extraPackages = hs: [
|
||||
hs.extra
|
||||
hs.xmonad-stockholm
|
||||
];
|
||||
config = /* haskell */ ''
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
|
||||
|
||||
@ -48,6 +51,7 @@ import XMonad.Prompt.Window (windowPromptGoto, windowPromptBringCopy)
|
||||
import XMonad.Util.EZConfig (additionalKeysP)
|
||||
import XMonad.Util.NamedWindows (getName)
|
||||
import XMonad.Util.Run (safeSpawn)
|
||||
import XMonad.Util.Ungrab (unGrab)
|
||||
|
||||
import XMonad.Stockholm.Shutdown (newShutdownEventHandler, shutdown)
|
||||
import XMonad.Stockholm.Pager (defaultWindowColors, pager, MatchMethod(MatchPrefix), PagerConfig(..))
|
||||
@ -62,7 +66,9 @@ instance UrgencyHook LibNotifyUrgencyHook where
|
||||
safeSpawn "${pkgs.libnotify}/bin/notify-send" [show name, "workspace " ++ idx]
|
||||
|
||||
myTerm :: FilePath
|
||||
myTerm = "${pkgs.rxvt_unicode-with-plugins}/bin/urxvtc"
|
||||
-- myTerm = "${pkgs.rxvt_unicode-with-plugins}/bin/urxvtc -e /run/current-system/sw/bin/xonsh"
|
||||
-- myTerm = "${pkgs.rxvt_unicode-with-plugins}/bin/urxvtc"
|
||||
myTerm = "/run/current-system/sw/bin/alacritty"
|
||||
|
||||
myFont :: String
|
||||
myFont = "-*-clean-*-*-*-*-*-*-*-*-*-*-iso10646-1"
|
||||
@ -109,19 +115,19 @@ floatHooks = composeAll
|
||||
|
||||
myKeyMap :: [([Char], X ())]
|
||||
myKeyMap =
|
||||
[ ("M4-<F11>", spawn "${config.lass.screenlock.command}")
|
||||
, ("M4-C-p", spawn "${pkgs.scrot}/bin/scrot ~/public_html/scrot.png")
|
||||
, ("M4-p", spawn "${pkgs.pass}/bin/passmenu --type")
|
||||
, ("M4-S-p", spawn "${pkgs.otpmenu}/bin/otpmenu")
|
||||
, ("M4-o", spawn "${pkgs.brain}/bin/brainmenu --type")
|
||||
, ("M4-z", spawn "${pkgs.emot-menu}/bin/emoticons")
|
||||
[ ("M4-C-p", forkFile "${pkgs.scrot}/bin/scrot" [ "~/public_html/scrot.png" ] Nothing )
|
||||
, ("M4-p", forkFile "${pkgs.pass}/bin/passmenu" [ "--type" ] Nothing)
|
||||
, ("M4-S-p", forkFile "${pkgs.otpmenu}/bin/otpmenu" [] Nothing)
|
||||
, ("M4-o", forkFile "${pkgs.brain}/bin/brainmenu --type" [] Nothing)
|
||||
, ("M4-z", forkFile "${pkgs.emot-menu}/bin/emoticons" [] Nothing)
|
||||
|
||||
, ("M4-S-q", restart "xmonad" True)
|
||||
|
||||
, ("<XF86AudioMute>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-mute @DEFAULT_SINK@ toggle")
|
||||
, ("<XF86AudioRaiseVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume @DEFAULT_SINK@ +4%")
|
||||
, ("<XF86AudioLowerVolume>", spawn "${pkgs.pulseaudioLight.out}/bin/pactl -- set-sink-volume @DEFAULT_SINK@ -4%")
|
||||
, ("<XF86MonBrightnessDown>", spawn "${pkgs.acpilight}/bin/xbacklight -time 0 -dec 1")
|
||||
, ("<XF86MonBrightnessUp>", spawn "${pkgs.acpilight}/bin/xbacklight -time 0 -inc 1")
|
||||
, ("<XF86Launch1>", gridselectWorkspace gridConfig W.view)
|
||||
, ("M4-C-k", spawn "${pkgs.xorg.xkill}/bin/xkill")
|
||||
|
||||
, ("M4-<Tab>", focusDown)
|
||||
@ -137,7 +143,8 @@ myKeyMap =
|
||||
, ("M4-<Esc>", toggleWS)
|
||||
, ("M4-S-<Enter>", spawn myTerm)
|
||||
, ("M4-x", floatNext True >> spawn myTerm)
|
||||
, ("M4-c", floatNext True >> spawn "${pkgs.termite}/bin/termite")
|
||||
, ("M4-c", spawn "/run/current-system/sw/bin/emacsclient -c")
|
||||
-- , ("M4-c", unGrab)
|
||||
, ("M4-f", floatNext True)
|
||||
, ("M4-b", spawn "/run/current-system/sw/bin/klem")
|
||||
|
||||
@ -171,6 +178,9 @@ myKeyMap =
|
||||
, ("M4-<F9>", spawn "${pkgs.redshift}/bin/redshift -O 4000 -g 0.9:0.8:0.8")
|
||||
, ("M4-<F10>", spawn "${pkgs.redshift}/bin/redshift -x")
|
||||
|
||||
, ("M4-<F11>", spawn "${config.lass.screenlock.command}")
|
||||
, ("M4-<F12>", spawn "${pkgs.systemd}/bin/systemctl suspend -i")
|
||||
|
||||
, ("M4-u", spawn "${pkgs.xcalib}/bin/xcalib -invert -alter")
|
||||
|
||||
, ("M4-s", spawn "${pkgs.knav}/bin/knav")
|
||||
@ -183,7 +193,7 @@ myKeyMap =
|
||||
|
||||
forkFile :: FilePath -> [String] -> Maybe [(String, String)] -> X ()
|
||||
forkFile path args env =
|
||||
xfork (executeFile path False args env) >> return ()
|
||||
xfork (executeFile path True args env) >> return ()
|
||||
|
||||
myXPConfig :: XPConfig
|
||||
myXPConfig = def
|
||||
@ -227,4 +237,6 @@ gridConfig = def
|
||||
allWorkspaceNames :: W.StackSet i l a sid sd -> X [i]
|
||||
allWorkspaceNames ws =
|
||||
return $ map W.tag (W.hidden ws ++ (map W.workspace $ W.visible ws)) ++ [W.tag $ W.workspace $ W.current ws]
|
||||
''
|
||||
'';
|
||||
};
|
||||
}
|
@ -123,7 +123,6 @@ with import <stockholm/lib>;
|
||||
pkgs.hashPassword
|
||||
pkgs.htop
|
||||
pkgs.kpaste
|
||||
pkgs.krebspaste
|
||||
pkgs.nix-prefetch-scripts
|
||||
pkgs.ovh-zone
|
||||
pkgs.push
|
||||
|
@ -84,6 +84,7 @@ in {
|
||||
users.users.${cfg.user.name} = {
|
||||
inherit (cfg.user) home name uid;
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -119,6 +119,7 @@ in {
|
||||
users.users.${cfg.user.name} = {
|
||||
inherit (cfg.user) home name uid;
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
16
tv/5pkgs/simple/xtoggledpms.nix
Normal file
16
tv/5pkgs/simple/xtoggledpms.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{ pkgs }:
|
||||
|
||||
let
|
||||
grep = "${pkgs.gnugrep}/bin/grep";
|
||||
xset = "${pkgs.xorg.xset}/bin/xset";
|
||||
in
|
||||
|
||||
pkgs.writeDashBin "xtoggledpms" ''
|
||||
# usage: xtoggledpms
|
||||
set -efu
|
||||
if ${xset} q | ${grep} -qF 'DPMS is Disabled'; then
|
||||
${xset} dpms force off
|
||||
else
|
||||
${xset} s off -dpms
|
||||
fi
|
||||
''
|
Loading…
Reference in New Issue
Block a user