mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-09 22:19:42 +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_strength = 0.02;
|
||||
dim_special = 0.2;
|
||||
inactive_opacity = 0.9;
|
||||
#inactive_opacity = 0.9;
|
||||
};
|
||||
|
||||
#
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./python.nix
|
||||
./ipython.nix
|
||||
./poetry.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,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
|
||||
cfg = osConfig.myOptions.home-manager.programs.coding.python;
|
||||
|
||||
toTOML = name: (pkgs.formats.toml {}).generate "${name}";
|
||||
in {
|
||||
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" = {
|
||||
user = "git";
|
||||
hostname = "gitlab.com";
|
||||
identityFile = "~/.ssh/git/gitlab";
|
||||
identityFile = "~/.ssh/git/gitlab-itsdrike";
|
||||
};
|
||||
"github" = {
|
||||
user = "git";
|
||||
hostname = "gitlab.com";
|
||||
identityFile = "~/.ssh/git/github";
|
||||
identityFile = "~/.ssh/git/github-itsdrike";
|
||||
};
|
||||
# TODO: Figure out how to add protected/encrypted blocks here
|
||||
# I don't like the idea of expising IPs/hostnames in the config
|
||||
|
|
|
@ -57,34 +57,34 @@ in {
|
|||
'';
|
||||
|
||||
"python/pythonrc.py".text = ''
|
||||
import atexit
|
||||
import os
|
||||
import readline
|
||||
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 is_vanilla() -> bool:
|
||||
import sys
|
||||
return not hasattr(__builtins__, '__IPYTHON__') and 'bpython' not in sys.argv[0]
|
||||
|
||||
|
||||
def write_history(readline: ModuleType, history_file: Path) -> None:
|
||||
"""
|
||||
We need to get ``readline`` and ``history_file`` as arguments, as it
|
||||
seems they get garbage collected when the function is registered and
|
||||
the program ends, even though we refer to them here.
|
||||
"""
|
||||
readline.write_history_file(history_file)
|
||||
def setup_history():
|
||||
import os
|
||||
import atexit
|
||||
import readline
|
||||
from pathlib import Path
|
||||
|
||||
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 = [
|
||||
./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"
|
||||
|
||||
# Tools
|
||||
".ssh"
|
||||
".local/share/gnupg"
|
||||
".local/share/zoxide"
|
||||
".local/share/wakatime"
|
||||
|
@ -79,6 +80,7 @@
|
|||
# Language package managers
|
||||
".local/share/cargo"
|
||||
".local/share/go"
|
||||
".config/rye"
|
||||
];
|
||||
extraFiles = [
|
||||
".config/gtk-3.0/bookmarks"
|
||||
|
@ -86,6 +88,7 @@
|
|||
".cache/walker/history.gob"
|
||||
".config/pcmanfm-qt/default/recent-files.conf"
|
||||
".config/qalculate/qalculate-gtk.cfg"
|
||||
".local/state/python_history"
|
||||
];
|
||||
|
||||
persistentDataMountPoint = "/data/Data";
|
||||
|
@ -214,6 +217,12 @@
|
|||
|
||||
services = {
|
||||
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 = {
|
||||
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