mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-12 23:27:17 +00:00
Compare commits
6 commits
2da382b4dc
...
86383c69dd
Author | SHA1 | Date | |
---|---|---|---|
ItsDrike | 86383c69dd | ||
ItsDrike | ee9c647cb3 | ||
ItsDrike | 73c7b503ad | ||
ItsDrike | 842b009f84 | ||
ItsDrike | 46f5fa83e8 | ||
ItsDrike | 8a6311b896 |
|
@ -101,7 +101,7 @@
|
||||||
dim_inactive = false; # disabled for now
|
dim_inactive = false; # disabled for now
|
||||||
dim_strength = 0.02;
|
dim_strength = 0.02;
|
||||||
dim_special = 0.2;
|
dim_special = 0.2;
|
||||||
inactive_opacity = 0.9;
|
#inactive_opacity = 0.9;
|
||||||
};
|
};
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./python.nix
|
|
||||||
./ipython.nix
|
./ipython.nix
|
||||||
./poetry.nix
|
./poetry.nix
|
||||||
./rye.nix
|
./rye.nix
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
osConfig,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
|
|
||||||
cfg = osConfig.myOptions.home-manager.programs.coding.python;
|
|
||||||
in {
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.packages = with pkgs; [ python312 ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +1,38 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf;
|
||||||
|
|
||||||
cfg = osConfig.myOptions.home-manager.programs.coding.python;
|
cfg = osConfig.myOptions.home-manager.programs.coding.python;
|
||||||
|
|
||||||
|
toTOML = name: (pkgs.formats.toml {}).generate "${name}";
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [ rye ];
|
home = {
|
||||||
|
packages = with pkgs; [ rye ];
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
RYE_HOME = "${config.xdg.configHome}/rye";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Add rye python shims to path.
|
||||||
|
# Rye provides python executables that will automatically pick up on the python
|
||||||
|
# from a virtual environment, if we're in a directory (project) with one. If not,
|
||||||
|
# rye will fall back to system python. That is, if behavior.global-python=false,
|
||||||
|
# otherwise, we can actually use a python version from rye as our global python.
|
||||||
|
sessionPath = [
|
||||||
|
"${config.xdg.configHome}/rye/shims"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# see: <https://rye.astral.sh/guide/config/#config-file>
|
||||||
|
xdg.configFile."rye/config.toml".source = toTOML "config.toml" {
|
||||||
|
default.license = "GPL-3.0-or-later";
|
||||||
|
behavior.global-python=true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
"gitlab" = {
|
"gitlab" = {
|
||||||
user = "git";
|
user = "git";
|
||||||
hostname = "gitlab.com";
|
hostname = "gitlab.com";
|
||||||
identityFile = "~/.ssh/git/gitlab";
|
identityFile = "~/.ssh/git/gitlab-itsdrike";
|
||||||
};
|
};
|
||||||
"github" = {
|
"github" = {
|
||||||
user = "git";
|
user = "git";
|
||||||
hostname = "gitlab.com";
|
hostname = "gitlab.com";
|
||||||
identityFile = "~/.ssh/git/github";
|
identityFile = "~/.ssh/git/github-itsdrike";
|
||||||
};
|
};
|
||||||
# TODO: Figure out how to add protected/encrypted blocks here
|
# TODO: Figure out how to add protected/encrypted blocks here
|
||||||
# I don't like the idea of expising IPs/hostnames in the config
|
# I don't like the idea of expising IPs/hostnames in the config
|
||||||
|
|
|
@ -57,34 +57,34 @@ in {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
"python/pythonrc.py".text = ''
|
"python/pythonrc.py".text = ''
|
||||||
import atexit
|
def is_vanilla() -> bool:
|
||||||
import os
|
import sys
|
||||||
import readline
|
return not hasattr(__builtins__, '__IPYTHON__') and 'bpython' not in sys.argv[0]
|
||||||
from functools import partial
|
|
||||||
from pathlib import Path
|
|
||||||
from types import ModuleType
|
|
||||||
|
|
||||||
cache_xdg_dir = Path(
|
|
||||||
os.environ.get("XDG_CACHE_HOME", str(Path("~/.cache").expanduser()))
|
|
||||||
)
|
|
||||||
cache_xdg_dir.mkdir(exist_ok=True, parents=True)
|
|
||||||
|
|
||||||
history_file = cache_xdg_dir.joinpath("python_history")
|
|
||||||
history_file.touch()
|
|
||||||
|
|
||||||
readline.read_history_file(history_file)
|
|
||||||
|
|
||||||
|
|
||||||
def write_history(readline: ModuleType, history_file: Path) -> None:
|
def setup_history():
|
||||||
"""
|
import os
|
||||||
We need to get ``readline`` and ``history_file`` as arguments, as it
|
import atexit
|
||||||
seems they get garbage collected when the function is registered and
|
import readline
|
||||||
the program ends, even though we refer to them here.
|
from pathlib import Path
|
||||||
"""
|
|
||||||
readline.write_history_file(history_file)
|
if state_home := os.environ.get('XDG_STATE_HOME'):
|
||||||
|
state_home = Path(state_home)
|
||||||
|
else:
|
||||||
|
state_home = Path.home() / '.local' / 'state'
|
||||||
|
|
||||||
|
history: Path = state_home / 'python_history'
|
||||||
|
|
||||||
|
# https://github.com/python/cpython/issues/105694
|
||||||
|
if not history.is_file():
|
||||||
|
readline.write_history_file(str(history)) # breaks on macos + python3 without this.
|
||||||
|
|
||||||
|
readline.read_history_file(str(history))
|
||||||
|
atexit.register(readline.write_history_file, str(history))
|
||||||
|
|
||||||
|
|
||||||
atexit.register(partial(write_history, readline, history_file))
|
if is_vanilla():
|
||||||
|
setup_history()
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
_: {
|
_: {
|
||||||
imports = [
|
imports = [
|
||||||
./dunst.nix
|
./dunst.nix
|
||||||
|
./hyprpaper.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
34
home/services/hyprpaper.nix
Normal file
34
home/services/hyprpaper.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
osConfig,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf getExe;
|
||||||
|
|
||||||
|
cfg = osConfig.myOptions.home-manager.services.hyprpaper;
|
||||||
|
cfgIsWayland = osConfig.myOptions.home-manager.wms.isWayland;
|
||||||
|
in {
|
||||||
|
config = mkIf (cfg.enable && cfgIsWayland) {
|
||||||
|
systemd.user.services.hyprpaper = {
|
||||||
|
Install.WantedBy = [ "hyprland-session.target" ];
|
||||||
|
Unit = {
|
||||||
|
Description = "Hyprpaper (Hyprland wallpaper daemon)";
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${getExe pkgs.hyprpaper}";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
||||||
|
preload=${cfg.wallpaperPath}
|
||||||
|
wallpaper=,${cfg.wallpaperPath} # same wallpaper on all monitors
|
||||||
|
ipc=off
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
".config/obs-studio"
|
".config/obs-studio"
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
|
".ssh"
|
||||||
".local/share/gnupg"
|
".local/share/gnupg"
|
||||||
".local/share/zoxide"
|
".local/share/zoxide"
|
||||||
".local/share/wakatime"
|
".local/share/wakatime"
|
||||||
|
@ -79,6 +80,7 @@
|
||||||
# Language package managers
|
# Language package managers
|
||||||
".local/share/cargo"
|
".local/share/cargo"
|
||||||
".local/share/go"
|
".local/share/go"
|
||||||
|
".config/rye"
|
||||||
];
|
];
|
||||||
extraFiles = [
|
extraFiles = [
|
||||||
".config/gtk-3.0/bookmarks"
|
".config/gtk-3.0/bookmarks"
|
||||||
|
@ -86,6 +88,7 @@
|
||||||
".cache/walker/history.gob"
|
".cache/walker/history.gob"
|
||||||
".config/pcmanfm-qt/default/recent-files.conf"
|
".config/pcmanfm-qt/default/recent-files.conf"
|
||||||
".config/qalculate/qalculate-gtk.cfg"
|
".config/qalculate/qalculate-gtk.cfg"
|
||||||
|
".local/state/python_history"
|
||||||
];
|
];
|
||||||
|
|
||||||
persistentDataMountPoint = "/data/Data";
|
persistentDataMountPoint = "/data/Data";
|
||||||
|
@ -214,6 +217,12 @@
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
dunst.enable = true;
|
dunst.enable = true;
|
||||||
|
hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
# This file intentionally lacks a file extension, it should be a symlink
|
||||||
|
# to whatever file you wish to actually be your wallpaper
|
||||||
|
wallpaperPath = "/data/Data/Media/Pictures/Wallpapers/active";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,6 +4,14 @@ in
|
||||||
{
|
{
|
||||||
options.myOptions.home-manager.services = {
|
options.myOptions.home-manager.services = {
|
||||||
dunst.enable = mkEnableOption "Dunst (lightweight notification daemon)";
|
dunst.enable = mkEnableOption "Dunst (lightweight notification daemon)";
|
||||||
|
hyprpaper = {
|
||||||
|
enable = mkEnableOption "Hyprpaper (Hyprland wallpaper daemon)";
|
||||||
|
wallpaperPath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = null;
|
||||||
|
description = "Path to the wallpaper of your choosing";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue