1
0
Fork 0

Sort and split laptop.nix

This commit is contained in:
Malte Brandy 2021-07-05 17:45:47 +02:00
parent 69be44ccd8
commit b783b56f61
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
6 changed files with 71 additions and 60 deletions

View file

@ -72,26 +72,26 @@ in
apolloConfig = name: imports:
makeConfig "apollo" (
imports ++ [
./roles/arbtt
./roles/zettelkasten.nix
./roles/hoogle.nix
./roles/battery.nix
./roles/mpd.nix
./roles/beets.nix
./roles/mpclient.nix
./roles/on-my-machine.nix
./roles/daily-driver-programs.nix
./roles/desktop
./roles/kassandra.nix
./roles/git-sign.nix
./roles/laptop.nix
./roles/mail.nix
./roles/update_tasks.nix
./roles/research.nix
./roles/vdirsyncer.nix
./roles/khard.nix
./roles/hoogle.nix
./roles/kassandra.nix
./roles/khal.nix
./roles/taskwarrior.nix
./roles/khard.nix
./roles/mail.nix
./roles/mpclient.nix
./roles/mpd.nix
./roles/on-my-machine.nix
./roles/research.nix
./roles/taskwarrior-git.nix
./roles/taskwarrior.nix
./roles/update_tasks.nix
./roles/vdirsyncer.nix
./roles/zettelkasten.nix
(import ./roles/mode-switching.nix { modeDir = ".modes"; modeFile = "volatile/mode"; })
(makeAutostart "unlock-ssh")
(setWorkspaceName name)
]
@ -128,9 +128,9 @@ in
zeus = {
default = makeConfig "zeus" [
./roles/accounting.nix
./roles/arbtt
./roles/beets.nix
./roles/chat.nix
./roles/daily-driver-programs.nix
./roles/desktop
./roles/games.nix
./roles/git-sign.nix
@ -138,7 +138,6 @@ in
./roles/kassandra.nix
./roles/khal.nix
./roles/khard.nix
./roles/laptop.nix
./roles/mail-client.nix
./roles/mail.nix
./roles/mail2rss.nix
@ -152,6 +151,7 @@ in
./roles/tinkering.nix
./roles/update_tasks.nix
./roles/vdirsyncer.nix
(import ./roles/mode-switching.nix { modeDir = ".volatile/modes"; modeFile = ".volatile/mode"; })
(makeAutostart "kassandra2")
(makeAutostart "unlock-ssh")
];

View file

@ -0,0 +1,29 @@
{ pkgs, lib, config, ... }:
{
home.packages = builtins.attrValues rec {
zoom = pkgs.zoom-us.overrideAttrs (old: {
postFixup = old.postFixup + ''
wrapProgram $out/bin/zoom-us --unset XDG_SESSION_TYPE
'';
});
inherit (pkgs.gnome) nautilus;
inherit (pkgs.xorg) xbacklight;
inherit (pkgs)
# web
chromium
skypeforlinux google-chrome
mumble upower speedtest-cli acpi
anki
# tools & office
feh gimp imagemagick libreoffice-fresh xournal musescore handbrake evince
abcde beets zbar
# media
ncpamixer pavucontrol deluge gmpc vlc mpv youtubeDL syncplay;
};
}

View file

@ -3,7 +3,7 @@ let inherit (import ../../../lib) colors;
in
{
imports =
[ ./sleep-nag.nix ./kitty.nix ./wallpaper.nix ./gnome.nix ./firefox.nix ./desktop-items.nix ];
[ ./sleep-nag.nix ./kitty.nix ./gnome.nix ./firefox.nix ./desktop-items.nix ];
m-0.colors = colors;
home = {
packages = builtins.attrValues pkgs.desktop-pkgs;

View file

@ -1,17 +1,14 @@
{ pkgs, lib, config, ... }:
opts: { pkgs, lib, config, ... }:
let
modes = pkgs.lib.attrNames (import ../machines.nix).apollo;
inherit (config.m-0) hostName;
modes = pkgs.lib.attrNames (import ../machines.nix).${hostName};
configPath = "${config.home.homeDirectory}/git/config";
modeFile = "${config.home.homeDirectory}/${opts.modeFile}";
modeDir = "${config.home.homeDirectory}/${opts.modeDir}";
in
{
# services.syncthing.tray.enable = true;
imports = [ (import ./wallpaper.nix { inherit modeFile; }) ];
home.packages = builtins.attrValues rec {
zoom = pkgs.zoom-us.overrideAttrs (old: {
postFixup = old.postFixup + ''
wrapProgram $out/bin/zoom-us --unset XDG_SESSION_TYPE
'';
});
maintenance = pkgs.writeShellScriptBin "maintenance" ''
set -e
git -C ~/git/config pull --ff-only
@ -21,12 +18,12 @@ in
'';
activateMode = pkgs.writeHaskellScript { name = "activate-mode"; } ''
getMode :: IO Text
getMode = decodeUtf8 <$> (cat "/home/maralorn/volatile/mode" |> captureTrim)
getMode = decodeUtf8 <$> (cat "${modeFile}" |> captureTrim)
main = do
mode <- getMode
say [i|Switching to mode #{mode}...|]
exe ([i|/home/maralorn/.modes/#{mode}/activate|] :: String)
exe ([i|${modeDir}/#{mode}/activate|] :: String)
exe "random-wallpaper"
'';
updateModes = pkgs.writeHaskellScript
@ -34,10 +31,10 @@ in
name = "update-modes";
bins = [ activateMode pkgs.git pkgs.nix-output-monitor ];
} ''
params = ["${configPath}/home-manager/target.nix", "-A", "apollo", "-o", "/home/maralorn/.modes"]
params = ["${configPath}/home-manager/target.nix", "-A", "${hostName}", "-o", "${modeDir}"]
main = do
say "Building ~/.modes for apollo"
say "Building ~/.modes for ${hostName}"
nixPath <- myNixPath "${configPath}"
setEnv "WITH_SECRETS" "false"
nom_build nixPath (params ++ remoteBuildParams)
@ -51,13 +48,13 @@ in
bins = [ updateModes pkgs.git pkgs.home-manager pkgs.nix-output-monitor ];
} ''
getMode :: IO Text
getMode = decodeUtf8 <$> (cat "/home/maralorn/volatile/mode" |> captureTrim)
getMode = decodeUtf8 <$> (cat "${modeFile}" |> captureTrim)
main = do
nixPath <- myNixPath "${configPath}"
mode <- getMode
say [i|Quick switching to mode #{mode} ...|]
home_manager (nixPath <> ["switch", "-A", [i|apollo-#{mode}|]]) &!> StdOut |> nom
home_manager (nixPath <> ["switch", "-A", [i|${hostName}-#{mode}|]]) &!> StdOut |> nom
update_modes
'';
selectMode = pkgs.writeHaskellScript
@ -76,29 +73,10 @@ in
lib.concatStrings (map (mode: ''"${mode}" "" '') modes)
} |!> captureTrim)
clear
writeFile "/home/maralorn/volatile/mode" mode
writeFile "${modeFile}" mode
activate_mode
ignoreFailure $ swaymsg "exit"
ignoreFailure $ gnome_session_quit "--no-prompt"
'';
inherit (pkgs.gnome) nautilus;
inherit (pkgs.xorg) xbacklight;
inherit (pkgs)
# web
chromium
skypeforlinux google-chrome
mumble upower speedtest-cli acpi
anki
# tools & office
feh gimp imagemagick libreoffice-fresh xournal musescore handbrake evince
abcde beets zbar
# media
ncpamixer pavucontrol deluge gmpc vlc mpv youtubeDL syncplay;
};
}

View file

@ -1,8 +1,9 @@
{ lib, ... }:
{ lib, config, ... }:
let
# Persistent means that files get snapshoted and kept for a month
# Volatile means that files just lay on the disk
# Backups are organized independently on this system
home = config.home.homeDirectory;
persistentStateDirs = [ "git" "media" "Maildir" ".ssh" ".task" ".gnupg" ".calendars" ".contacts" ".wallpapers" ".local/share/direnv" ".vdirsyncer" ];
persistentStateFiles = [ ".chpwd-recent-dirs" ".zsh_history" ];
volatileStateFiles = [ ];
@ -12,7 +13,7 @@ let
let
target = "/disk/${persistence}/maralorn/${name}";
in
[ (mkLine "L+" "/home/maralorn/${name}" target) (mkLine type target "") ];
[ (mkLine "L+" "${home}/${name}" target) (mkLine type target "") ];
in
{
systemd.user.tmpfiles.rules = lib.concatLists
@ -22,9 +23,12 @@ in
map (mkEntry "f" "persist") persistentStateFiles ++
map (mkEntry "d" "persist") persistentStateDirs
) ++ [
(mkLine "L+" "/home/maralorn/.password-store" "git/password-store")
(mkLine "f" "/home/maralorn/documents/orga/listen/checklisten/orga-pre.md" "")
(mkLine "f" "/home/maralorn/tmp/today.md" "")
(mkLine "f" "/home/maralorn/volatile/mode" "default")
(mkLine "L+" "${home}/.password-store" "git/password-store")
(mkLine "f" "${home}/documents/orga/listen/checklisten/orga-pre.md" "")
(mkLine "f" "${home}/tmp/today.md" "")
(mkLine "L+" "${home}/.volatile" "/disk/volatile/maralorn")
(mkLine "L+" "${home}/.config/nixpkgs/home.nix" "${home}/git/config/home.nix")
(mkLine "L+" "${home}/.persist" "/disk/persist/maralorn")
(mkLine "f" "/disk/volatile/maralorn/mode" "default")
];
}

View file

@ -1,4 +1,4 @@
{ pkgs, ... }:
{ modeFile }: { pkgs, ... }:
let
randomWallpaper = pkgs.writeHaskellScript
{
@ -7,7 +7,7 @@ let
bins = [ pkgs.coreutils pkgs.glib ];
} ''
main = do
mode <- cat "/home/maralorn/volatile/mode" |> captureTrim
mode <- cat "${modeFile}" |> captureTrim
(lines . decodeUtf8 -> files) <- ls ([i|/home/maralorn/.wallpapers/#{mode}|] :: String) |> captureTrim
((files Unsafe.!!) -> file) <- getStdRandom $ randomR (0, length files - 1)
(decodeUtf8 -> current) <- gsettings "get" "org.gnome.desktop.background" "picture-uri" |> captureTrim