Sort and split laptop.nix
This commit is contained in:
parent
69be44ccd8
commit
b783b56f61
|
@ -72,26 +72,26 @@ in
|
||||||
apolloConfig = name: imports:
|
apolloConfig = name: imports:
|
||||||
makeConfig "apollo" (
|
makeConfig "apollo" (
|
||||||
imports ++ [
|
imports ++ [
|
||||||
./roles/arbtt
|
|
||||||
./roles/zettelkasten.nix
|
|
||||||
./roles/hoogle.nix
|
|
||||||
./roles/battery.nix
|
./roles/battery.nix
|
||||||
./roles/mpd.nix
|
|
||||||
./roles/beets.nix
|
./roles/beets.nix
|
||||||
./roles/mpclient.nix
|
./roles/daily-driver-programs.nix
|
||||||
./roles/on-my-machine.nix
|
|
||||||
./roles/desktop
|
./roles/desktop
|
||||||
./roles/kassandra.nix
|
|
||||||
./roles/git-sign.nix
|
./roles/git-sign.nix
|
||||||
./roles/laptop.nix
|
./roles/hoogle.nix
|
||||||
./roles/mail.nix
|
./roles/kassandra.nix
|
||||||
./roles/update_tasks.nix
|
|
||||||
./roles/research.nix
|
|
||||||
./roles/vdirsyncer.nix
|
|
||||||
./roles/khard.nix
|
|
||||||
./roles/khal.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-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")
|
(makeAutostart "unlock-ssh")
|
||||||
(setWorkspaceName name)
|
(setWorkspaceName name)
|
||||||
]
|
]
|
||||||
|
@ -128,9 +128,9 @@ in
|
||||||
zeus = {
|
zeus = {
|
||||||
default = makeConfig "zeus" [
|
default = makeConfig "zeus" [
|
||||||
./roles/accounting.nix
|
./roles/accounting.nix
|
||||||
./roles/arbtt
|
|
||||||
./roles/beets.nix
|
./roles/beets.nix
|
||||||
./roles/chat.nix
|
./roles/chat.nix
|
||||||
|
./roles/daily-driver-programs.nix
|
||||||
./roles/desktop
|
./roles/desktop
|
||||||
./roles/games.nix
|
./roles/games.nix
|
||||||
./roles/git-sign.nix
|
./roles/git-sign.nix
|
||||||
|
@ -138,7 +138,6 @@ in
|
||||||
./roles/kassandra.nix
|
./roles/kassandra.nix
|
||||||
./roles/khal.nix
|
./roles/khal.nix
|
||||||
./roles/khard.nix
|
./roles/khard.nix
|
||||||
./roles/laptop.nix
|
|
||||||
./roles/mail-client.nix
|
./roles/mail-client.nix
|
||||||
./roles/mail.nix
|
./roles/mail.nix
|
||||||
./roles/mail2rss.nix
|
./roles/mail2rss.nix
|
||||||
|
@ -152,6 +151,7 @@ in
|
||||||
./roles/tinkering.nix
|
./roles/tinkering.nix
|
||||||
./roles/update_tasks.nix
|
./roles/update_tasks.nix
|
||||||
./roles/vdirsyncer.nix
|
./roles/vdirsyncer.nix
|
||||||
|
(import ./roles/mode-switching.nix { modeDir = ".volatile/modes"; modeFile = ".volatile/mode"; })
|
||||||
(makeAutostart "kassandra2")
|
(makeAutostart "kassandra2")
|
||||||
(makeAutostart "unlock-ssh")
|
(makeAutostart "unlock-ssh")
|
||||||
];
|
];
|
||||||
|
|
29
home-manager/roles/daily-driver-programs.nix
Normal file
29
home-manager/roles/daily-driver-programs.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ let inherit (import ../../../lib) colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports =
|
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;
|
m-0.colors = colors;
|
||||||
home = {
|
home = {
|
||||||
packages = builtins.attrValues pkgs.desktop-pkgs;
|
packages = builtins.attrValues pkgs.desktop-pkgs;
|
||||||
|
|
|
@ -1,17 +1,14 @@
|
||||||
{ pkgs, lib, config, ... }:
|
opts: { pkgs, lib, config, ... }:
|
||||||
let
|
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";
|
configPath = "${config.home.homeDirectory}/git/config";
|
||||||
|
modeFile = "${config.home.homeDirectory}/${opts.modeFile}";
|
||||||
|
modeDir = "${config.home.homeDirectory}/${opts.modeDir}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# services.syncthing.tray.enable = true;
|
imports = [ (import ./wallpaper.nix { inherit modeFile; }) ];
|
||||||
home.packages = builtins.attrValues rec {
|
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" ''
|
maintenance = pkgs.writeShellScriptBin "maintenance" ''
|
||||||
set -e
|
set -e
|
||||||
git -C ~/git/config pull --ff-only
|
git -C ~/git/config pull --ff-only
|
||||||
|
@ -21,12 +18,12 @@ in
|
||||||
'';
|
'';
|
||||||
activateMode = pkgs.writeHaskellScript { name = "activate-mode"; } ''
|
activateMode = pkgs.writeHaskellScript { name = "activate-mode"; } ''
|
||||||
getMode :: IO Text
|
getMode :: IO Text
|
||||||
getMode = decodeUtf8 <$> (cat "/home/maralorn/volatile/mode" |> captureTrim)
|
getMode = decodeUtf8 <$> (cat "${modeFile}" |> captureTrim)
|
||||||
|
|
||||||
main = do
|
main = do
|
||||||
mode <- getMode
|
mode <- getMode
|
||||||
say [i|Switching to mode #{mode}...|]
|
say [i|Switching to mode #{mode}...|]
|
||||||
exe ([i|/home/maralorn/.modes/#{mode}/activate|] :: String)
|
exe ([i|${modeDir}/#{mode}/activate|] :: String)
|
||||||
exe "random-wallpaper"
|
exe "random-wallpaper"
|
||||||
'';
|
'';
|
||||||
updateModes = pkgs.writeHaskellScript
|
updateModes = pkgs.writeHaskellScript
|
||||||
|
@ -34,10 +31,10 @@ in
|
||||||
name = "update-modes";
|
name = "update-modes";
|
||||||
bins = [ activateMode pkgs.git pkgs.nix-output-monitor ];
|
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
|
main = do
|
||||||
say "Building ~/.modes for apollo"
|
say "Building ~/.modes for ${hostName}"
|
||||||
nixPath <- myNixPath "${configPath}"
|
nixPath <- myNixPath "${configPath}"
|
||||||
setEnv "WITH_SECRETS" "false"
|
setEnv "WITH_SECRETS" "false"
|
||||||
nom_build nixPath (params ++ remoteBuildParams)
|
nom_build nixPath (params ++ remoteBuildParams)
|
||||||
|
@ -51,13 +48,13 @@ in
|
||||||
bins = [ updateModes pkgs.git pkgs.home-manager pkgs.nix-output-monitor ];
|
bins = [ updateModes pkgs.git pkgs.home-manager pkgs.nix-output-monitor ];
|
||||||
} ''
|
} ''
|
||||||
getMode :: IO Text
|
getMode :: IO Text
|
||||||
getMode = decodeUtf8 <$> (cat "/home/maralorn/volatile/mode" |> captureTrim)
|
getMode = decodeUtf8 <$> (cat "${modeFile}" |> captureTrim)
|
||||||
|
|
||||||
main = do
|
main = do
|
||||||
nixPath <- myNixPath "${configPath}"
|
nixPath <- myNixPath "${configPath}"
|
||||||
mode <- getMode
|
mode <- getMode
|
||||||
say [i|Quick switching to mode #{mode} ...|]
|
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
|
update_modes
|
||||||
'';
|
'';
|
||||||
selectMode = pkgs.writeHaskellScript
|
selectMode = pkgs.writeHaskellScript
|
||||||
|
@ -76,29 +73,10 @@ in
|
||||||
lib.concatStrings (map (mode: ''"${mode}" "" '') modes)
|
lib.concatStrings (map (mode: ''"${mode}" "" '') modes)
|
||||||
} |!> captureTrim)
|
} |!> captureTrim)
|
||||||
clear
|
clear
|
||||||
writeFile "/home/maralorn/volatile/mode" mode
|
writeFile "${modeFile}" mode
|
||||||
activate_mode
|
activate_mode
|
||||||
ignoreFailure $ swaymsg "exit"
|
ignoreFailure $ swaymsg "exit"
|
||||||
ignoreFailure $ gnome_session_quit "--no-prompt"
|
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;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -1,8 +1,9 @@
|
||||||
{ lib, ... }:
|
{ lib, config, ... }:
|
||||||
let
|
let
|
||||||
# Persistent means that files get snapshoted and kept for a month
|
# Persistent means that files get snapshoted and kept for a month
|
||||||
# Volatile means that files just lay on the disk
|
# Volatile means that files just lay on the disk
|
||||||
# Backups are organized independently on this system
|
# 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" ];
|
persistentStateDirs = [ "git" "media" "Maildir" ".ssh" ".task" ".gnupg" ".calendars" ".contacts" ".wallpapers" ".local/share/direnv" ".vdirsyncer" ];
|
||||||
persistentStateFiles = [ ".chpwd-recent-dirs" ".zsh_history" ];
|
persistentStateFiles = [ ".chpwd-recent-dirs" ".zsh_history" ];
|
||||||
volatileStateFiles = [ ];
|
volatileStateFiles = [ ];
|
||||||
|
@ -12,7 +13,7 @@ let
|
||||||
let
|
let
|
||||||
target = "/disk/${persistence}/maralorn/${name}";
|
target = "/disk/${persistence}/maralorn/${name}";
|
||||||
in
|
in
|
||||||
[ (mkLine "L+" "/home/maralorn/${name}" target) (mkLine type target "") ];
|
[ (mkLine "L+" "${home}/${name}" target) (mkLine type target "") ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
systemd.user.tmpfiles.rules = lib.concatLists
|
systemd.user.tmpfiles.rules = lib.concatLists
|
||||||
|
@ -22,9 +23,12 @@ in
|
||||||
map (mkEntry "f" "persist") persistentStateFiles ++
|
map (mkEntry "f" "persist") persistentStateFiles ++
|
||||||
map (mkEntry "d" "persist") persistentStateDirs
|
map (mkEntry "d" "persist") persistentStateDirs
|
||||||
) ++ [
|
) ++ [
|
||||||
(mkLine "L+" "/home/maralorn/.password-store" "git/password-store")
|
(mkLine "L+" "${home}/.password-store" "git/password-store")
|
||||||
(mkLine "f" "/home/maralorn/documents/orga/listen/checklisten/orga-pre.md" "")
|
(mkLine "f" "${home}/documents/orga/listen/checklisten/orga-pre.md" "")
|
||||||
(mkLine "f" "/home/maralorn/tmp/today.md" "")
|
(mkLine "f" "${home}/tmp/today.md" "")
|
||||||
(mkLine "f" "/home/maralorn/volatile/mode" "default")
|
(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")
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ modeFile }: { pkgs, ... }:
|
||||||
let
|
let
|
||||||
randomWallpaper = pkgs.writeHaskellScript
|
randomWallpaper = pkgs.writeHaskellScript
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ let
|
||||||
bins = [ pkgs.coreutils pkgs.glib ];
|
bins = [ pkgs.coreutils pkgs.glib ];
|
||||||
} ''
|
} ''
|
||||||
main = do
|
main = do
|
||||||
mode <- cat "/home/maralorn/volatile/mode" |> captureTrim
|
mode <- cat "${modeFile}" |> captureTrim
|
||||||
(lines . decodeUtf8 -> files) <- ls ([i|/home/maralorn/.wallpapers/#{mode}|] :: String) |> captureTrim
|
(lines . decodeUtf8 -> files) <- ls ([i|/home/maralorn/.wallpapers/#{mode}|] :: String) |> captureTrim
|
||||||
((files Unsafe.!!) -> file) <- getStdRandom $ randomR (0, length files - 1)
|
((files Unsafe.!!) -> file) <- getStdRandom $ randomR (0, length files - 1)
|
||||||
(decodeUtf8 -> current) <- gsettings "get" "org.gnome.desktop.background" "picture-uri" |> captureTrim
|
(decodeUtf8 -> current) <- gsettings "get" "org.gnome.desktop.background" "picture-uri" |> captureTrim
|
Loading…
Reference in a new issue