Compare commits
22 commits
3f1840b42c
...
2e1f408dbf
| Author | SHA1 | Date | |
|---|---|---|---|
| 2e1f408dbf | |||
| 82cd41cc54 | |||
| 4460f095a5 | |||
| 5492365d0a | |||
| 0a927c5cc0 | |||
| 5e5f63eb26 | |||
| 8b028ce19f | |||
| d4668416af | |||
| 88b943076d | |||
| e6c95245b2 | |||
| b9bc37d365 | |||
| 3dd4f07609 | |||
| 3fa1664b5c | |||
| 1800cb9daa | |||
| 31147abd91 | |||
| a889dfbb1a | |||
| 1a109b6b1f | |||
| f3af8f9ba8 | |||
| e2ae3e02d9 | |||
| 5f073875e6 | |||
| 8c506ea03c | |||
| 8688206ff5 |
19 changed files with 170 additions and 95 deletions
36
flake.lock
generated
36
flake.lock
generated
|
|
@ -14,11 +14,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754337839,
|
"lastModified": 1754433428,
|
||||||
"narHash": "sha256-fEc2/4YsJwtnLU7HCFMRckb0u9UNnDZmwGhXT5U5NTw=",
|
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "856df6f6922845abd4fd958ce21febc07ca2fa45",
|
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -53,11 +53,11 @@
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -73,11 +73,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754091436,
|
"lastModified": 1756770412,
|
||||||
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
|
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
|
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -117,11 +117,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750779888,
|
"lastModified": 1755960406,
|
||||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
"narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
"rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -159,11 +159,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754365350,
|
"lastModified": 1756954499,
|
||||||
"narHash": "sha256-NLWIkn1qM0wxtZu/2NXRaujWJ4Y1PSZlc7h0y6pOzOQ=",
|
"narHash": "sha256-Pg4xBHzvzNY8l9x/rLWoJMnIR8ebG+xeU+IyqThIkqU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "c5d7e957397ecb7d48b99c928611c6e780db1b56",
|
"rev": "ed1a98c375450dfccf427adacd2bfd1a7b22eb25",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -175,11 +175,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754372978,
|
"lastModified": 1756936398,
|
||||||
"narHash": "sha256-ByII9p9ek0k9UADC/hT+i9ueM2mw0Zxiz+bOlydU6Oo=",
|
"narHash": "sha256-/o1TTpMIICpjrMHBilL9lYm/r69uhdK1L8j1pfY6tWU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9ebe222ec7ef9de52478f76cba3f0324c1d1119f",
|
"rev": "47f28ad9378956563df9a884fd1b209b64336ba3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@
|
||||||
terminalFeatures = {
|
terminalFeatures = {
|
||||||
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
|
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
|
||||||
xterm-256color = { };
|
xterm-256color = { };
|
||||||
|
# Terminal app uses `xterm.js`, not HTerm
|
||||||
|
"xterm.js" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,8 @@
|
||||||
terminalFeatures = {
|
terminalFeatures = {
|
||||||
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
|
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
|
||||||
xterm-256color = { };
|
xterm-256color = { };
|
||||||
|
# Terminal app uses `xterm.js`, not HTerm
|
||||||
|
"xterm.js" = { };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -18,16 +18,16 @@
|
||||||
# Machine specific packages
|
# Machine specific packages
|
||||||
packages.additionalPackages = with pkgs; [
|
packages.additionalPackages = with pkgs; [
|
||||||
element-desktop # Matrix client
|
element-desktop # Matrix client
|
||||||
jellyfin-media-player # Wraps the webui and mpv together
|
|
||||||
pavucontrol # Audio mixer GUI
|
pavucontrol # Audio mixer GUI
|
||||||
trgui-ng # Transmission remote
|
|
||||||
];
|
];
|
||||||
# Minimal video player
|
# Minimal video player
|
||||||
mpv.enable = true;
|
mpv.enable = true;
|
||||||
# Network-Manager applet
|
# Network-Manager applet
|
||||||
nm-applet.enable = true;
|
nm-applet.enable = true;
|
||||||
# Terminal
|
# Terminal
|
||||||
terminal.program = "alacritty";
|
terminal.default = "alacritty";
|
||||||
|
# Transmission remote
|
||||||
|
trgui.enable = true;
|
||||||
# Zathura document viewer
|
# Zathura document viewer
|
||||||
zathura.enable = true;
|
zathura.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ in
|
||||||
options.my.home.atuin = with lib; {
|
options.my.home.atuin = with lib; {
|
||||||
enable = my.mkDisableOption "atuin configuration";
|
enable = my.mkDisableOption "atuin configuration";
|
||||||
|
|
||||||
# I want the full experience by default
|
|
||||||
package = mkPackageOption pkgs "atuin" { };
|
package = mkPackageOption pkgs "atuin" { };
|
||||||
|
|
||||||
daemon = {
|
daemon = {
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@
|
||||||
./ssh
|
./ssh
|
||||||
./terminal
|
./terminal
|
||||||
./tmux
|
./tmux
|
||||||
|
./trgui
|
||||||
./udiskie
|
./udiskie
|
||||||
./vim
|
./vim
|
||||||
./wget
|
./wget
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.my.home.delta;
|
cfg = config.my.home.delta;
|
||||||
|
|
||||||
|
configFormat = pkgs.formats.gitIni { };
|
||||||
|
configPath = "${config.xdg.configHome}/delta/config";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.my.home.delta = with lib; {
|
options.my.home.delta = with lib; {
|
||||||
|
|
@ -34,35 +37,43 @@ in
|
||||||
|
|
||||||
home.packages = [ cfg.package ];
|
home.packages = [ cfg.package ];
|
||||||
|
|
||||||
|
xdg.configFile."delta/config".source = configFormat.generate "delta-config" {
|
||||||
|
delta = {
|
||||||
|
features = "diff-highlight decorations";
|
||||||
|
|
||||||
|
# Less jarring style for `diff-highlight` emulation
|
||||||
|
diff-highlight = {
|
||||||
|
minus-style = "red";
|
||||||
|
minus-non-emph-style = "red";
|
||||||
|
minus-emph-style = "bold red 52";
|
||||||
|
|
||||||
|
plus-style = "green";
|
||||||
|
plus-non-emph-style = "green";
|
||||||
|
plus-emph-style = "bold green 22";
|
||||||
|
|
||||||
|
whitespace-error-style = "reverse red";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Personal preference for easier reading
|
||||||
|
decorations = {
|
||||||
|
commit-style = "raw"; # Do not recolor meta information
|
||||||
|
keep-plus-minus-markers = true;
|
||||||
|
paging = "always";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.git = lib.mkIf cfg.git.enable {
|
programs.git = lib.mkIf cfg.git.enable {
|
||||||
delta = {
|
delta = {
|
||||||
enable = true;
|
enable = true;
|
||||||
inherit (cfg) package;
|
inherit (cfg) package;
|
||||||
|
|
||||||
options = {
|
|
||||||
features = "diff-highlight decorations";
|
|
||||||
|
|
||||||
# Less jarring style for `diff-highlight` emulation
|
|
||||||
diff-highlight = {
|
|
||||||
minus-style = "red";
|
|
||||||
minus-non-emph-style = "red";
|
|
||||||
minus-emph-style = "bold red 52";
|
|
||||||
|
|
||||||
plus-style = "green";
|
|
||||||
plus-non-emph-style = "green";
|
|
||||||
plus-emph-style = "bold green 22";
|
|
||||||
|
|
||||||
whitespace-error-style = "reverse red";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Personal preference for easier reading
|
|
||||||
decorations = {
|
|
||||||
commit-style = "raw"; # Do not recolor meta information
|
|
||||||
keep-plus-minus-markers = true;
|
|
||||||
paging = "always";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
includes = [
|
||||||
|
{
|
||||||
|
path = configPath;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
let
|
let
|
||||||
cfg = config.my.home.firefox.tridactyl;
|
cfg = config.my.home.firefox.tridactyl;
|
||||||
|
|
||||||
term = config.my.home.terminal.program;
|
term = config.my.home.terminal.default;
|
||||||
|
|
||||||
vimCommandLine = {
|
vimCommandLine = {
|
||||||
alacritty = ''-e "vim" "%f" "+normal!%lGzv%c|"'';
|
alacritty = ''-e "vim" "%f" "+normal!%lGzv%c|"'';
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ in
|
||||||
automatic = true;
|
automatic = true;
|
||||||
|
|
||||||
# Every week, with some wiggle room
|
# Every week, with some wiggle room
|
||||||
frequency = "weekly";
|
dates = "weekly";
|
||||||
randomizedDelaySec = "10min";
|
randomizedDelaySec = "10min";
|
||||||
|
|
||||||
# Use a persistent timer for e.g: laptops
|
# Use a persistent timer for e.g: laptops
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ in
|
||||||
{
|
{
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
includes = [
|
includes = [
|
||||||
# Local configuration, not-versioned
|
# Local configuration, not-versioned
|
||||||
|
|
@ -53,11 +54,12 @@ in
|
||||||
identityFile = "~/.ssh/shared_rsa";
|
identityFile = "~/.ssh/shared_rsa";
|
||||||
user = "ambroisie";
|
user = "ambroisie";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = ''
|
# `*` is automatically made the last match block by the module
|
||||||
AddKeysToAgent yes
|
"*" = {
|
||||||
'';
|
addKeysToAgent = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.my.home.terminal;
|
cfg = config.my.home.terminal.alacritty;
|
||||||
|
inherit (config.my.home.terminal) colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (cfg.program == "alacritty") {
|
options.my.home.terminal.alacritty = with lib; {
|
||||||
|
enable = lib.mkEnableOption "alacritty" // {
|
||||||
|
default = config.my.home.terminal.default == "alacritty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
@ -14,36 +21,36 @@ in
|
||||||
|
|
||||||
colors = {
|
colors = {
|
||||||
primary = {
|
primary = {
|
||||||
background = cfg.colors.background;
|
background = colors.background;
|
||||||
foreground = cfg.colors.foreground;
|
foreground = colors.foreground;
|
||||||
|
|
||||||
bright_foreground = cfg.colors.foregroundBold;
|
bright_foreground = colors.foregroundBold;
|
||||||
};
|
};
|
||||||
|
|
||||||
cursor = {
|
cursor = {
|
||||||
cursor = cfg.colors.cursor;
|
cursor = colors.cursor;
|
||||||
};
|
};
|
||||||
|
|
||||||
normal = {
|
normal = {
|
||||||
black = cfg.colors.black;
|
black = colors.black;
|
||||||
red = cfg.colors.red;
|
red = colors.red;
|
||||||
green = cfg.colors.green;
|
green = colors.green;
|
||||||
yellow = cfg.colors.yellow;
|
yellow = colors.yellow;
|
||||||
blue = cfg.colors.blue;
|
blue = colors.blue;
|
||||||
magenta = cfg.colors.magenta;
|
magenta = colors.magenta;
|
||||||
cyan = cfg.colors.cyan;
|
cyan = colors.cyan;
|
||||||
white = cfg.colors.white;
|
white = colors.white;
|
||||||
};
|
};
|
||||||
|
|
||||||
bright = {
|
bright = {
|
||||||
black = cfg.colors.blackBold;
|
black = colors.blackBold;
|
||||||
red = cfg.colors.redBold;
|
red = colors.redBold;
|
||||||
green = cfg.colors.greenBold;
|
green = colors.greenBold;
|
||||||
yellow = cfg.colors.yellowBold;
|
yellow = colors.yellowBold;
|
||||||
blue = cfg.colors.blueBold;
|
blue = colors.blueBold;
|
||||||
magenta = cfg.colors.magentaBold;
|
magenta = colors.magentaBold;
|
||||||
cyan = cfg.colors.cyanBold;
|
cyan = colors.cyanBold;
|
||||||
white = cfg.colors.whiteBold;
|
white = colors.whiteBold;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,11 @@ in
|
||||||
|
|
||||||
options.my.home = with lib; {
|
options.my.home = with lib; {
|
||||||
terminal = {
|
terminal = {
|
||||||
program = mkOption {
|
default = mkOption {
|
||||||
type = with types; nullOr (enum [ "alacritty" "termite" ]);
|
type = with types; nullOr (enum [ "alacritty" "termite" ]);
|
||||||
default = null;
|
default = null;
|
||||||
example = "termite";
|
example = "termite";
|
||||||
description = "Which terminal to use for home session";
|
description = "Which default terminal to use for home session";
|
||||||
};
|
};
|
||||||
|
|
||||||
colors = {
|
colors = {
|
||||||
|
|
@ -56,7 +56,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.home.sessionVariables = lib.mkIf (cfg.program != null) {
|
config.home.sessionVariables = lib.mkIf (cfg.default != null) {
|
||||||
TERMINAL = cfg.program;
|
TERMINAL = cfg.default;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,16 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.my.home.terminal;
|
cfg = config.my.home.terminal.termite;
|
||||||
|
inherit (config.my.home.terminal) colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (cfg.program == "termite") {
|
options.my.home.terminal.termite = with lib; {
|
||||||
|
enable = lib.mkEnableOption "termite" // {
|
||||||
|
default = config.my.home.terminal.default == "termite";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
programs.termite = {
|
programs.termite = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|
@ -24,11 +31,11 @@ in
|
||||||
|
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
backgroundColor = cfg.colors.background;
|
backgroundColor = colors.background;
|
||||||
cursorColor = cfg.colors.cursor;
|
cursorColor = colors.cursor;
|
||||||
foregroundColor = cfg.colors.foreground;
|
foregroundColor = colors.foreground;
|
||||||
foregroundBoldColor = cfg.colors.foregroundBold;
|
foregroundBoldColor = colors.foregroundBold;
|
||||||
colorsExtra = with cfg.colors; ''
|
colorsExtra = with colors; ''
|
||||||
# Normal colors
|
# Normal colors
|
||||||
color0 = ${black}
|
color0 = ${black}
|
||||||
color1 = ${red}
|
color1 = ${red}
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,16 @@ let
|
||||||
(config.my.home.wm.windowManager != null)
|
(config.my.home.wm.windowManager != null)
|
||||||
];
|
];
|
||||||
|
|
||||||
mkTerminalFeature = opt: flag:
|
mkTerminalFlag = tmuxVar: opt: flag:
|
||||||
let
|
let
|
||||||
mkFlag = term: ''set -as terminal-features ",${term}:${flag}"'';
|
mkFlag = term: ''set -as ${tmuxVar} ",${term}:${flag}"'';
|
||||||
enabledTerminals = lib.filterAttrs (_: v: v.${opt}) cfg.terminalFeatures;
|
enabledTerminals = lib.filterAttrs (_: v: v.${opt}) cfg.terminalFeatures;
|
||||||
terminals = lib.attrNames enabledTerminals;
|
terminals = lib.attrNames enabledTerminals;
|
||||||
in
|
in
|
||||||
lib.concatMapStringsSep "\n" mkFlag terminals;
|
lib.concatMapStringsSep "\n" mkFlag terminals;
|
||||||
|
|
||||||
|
mkTerminalFeature = mkTerminalFlag "terminal-features";
|
||||||
|
mkTerminalOverride = mkTerminalFlag "terminal-overrides";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.my.home.tmux = with lib; {
|
options.my.home.tmux = with lib; {
|
||||||
|
|
@ -28,12 +31,14 @@ in
|
||||||
hyperlinks = my.mkDisableOption "hyperlinks through OSC8";
|
hyperlinks = my.mkDisableOption "hyperlinks through OSC8";
|
||||||
|
|
||||||
trueColor = my.mkDisableOption "24-bit (RGB) color support";
|
trueColor = my.mkDisableOption "24-bit (RGB) color support";
|
||||||
|
|
||||||
|
underscoreStyle = my.mkDisableOption "underscore style/color support";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
default = { ${config.my.home.terminal.program} = { }; };
|
default = { ${config.my.home.terminal.default} = { }; };
|
||||||
defaultText = literalExpression ''
|
defaultText = literalExpression ''
|
||||||
{ ''${config.my.home.terminal.program} = { }; };
|
{ ''${config.my.home.terminal.default} = { }; };
|
||||||
'';
|
'';
|
||||||
example = { xterm-256color = { }; };
|
example = { xterm-256color = { }; };
|
||||||
description = ''
|
description = ''
|
||||||
|
|
@ -54,6 +59,20 @@ in
|
||||||
terminal = "tmux-256color"; # I want accurate termcap info
|
terminal = "tmux-256color"; # I want accurate termcap info
|
||||||
aggressiveResize = true; # Automatic resize when switching client size
|
aggressiveResize = true; # Automatic resize when switching client size
|
||||||
|
|
||||||
|
# FIXME
|
||||||
|
# * Sixel support
|
||||||
|
# * OSC 133 prompt integration
|
||||||
|
# FIXME: when sensible-on-top is disabled: check if any of those are unset
|
||||||
|
# * tmux bind-key $prefix_without_ctrl last-window
|
||||||
|
# *
|
||||||
|
# * tmux bind-key C-b send-prefix: included
|
||||||
|
# * aggressive resize? done
|
||||||
|
# * tmux bind-key C-p previous-window: done
|
||||||
|
# * tmux bind-key C-n next-window: done
|
||||||
|
# * C-r to refresh my config: done
|
||||||
|
# * tmux set-option -g focus-events on: done
|
||||||
|
|
||||||
|
# FIXME: make PRs for `bind-key` description
|
||||||
plugins = with pkgs.tmuxPlugins; builtins.filter (attr: attr != { }) [
|
plugins = with pkgs.tmuxPlugins; builtins.filter (attr: attr != { }) [
|
||||||
# Open high-lighted files in copy mode
|
# Open high-lighted files in copy mode
|
||||||
open
|
open
|
||||||
|
|
@ -61,8 +80,8 @@ in
|
||||||
pain-control
|
pain-control
|
||||||
# Better session management
|
# Better session management
|
||||||
sessionist
|
sessionist
|
||||||
|
# X clipboard integration
|
||||||
{
|
{
|
||||||
# X clipboard integration
|
|
||||||
plugin = yank;
|
plugin = yank;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
# Use 'clipboard' because of misbehaving apps (e.g: firefox)
|
# Use 'clipboard' because of misbehaving apps (e.g: firefox)
|
||||||
|
|
@ -71,8 +90,8 @@ in
|
||||||
set -g @yank_action 'copy-pipe'
|
set -g @yank_action 'copy-pipe'
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
# Show when prefix has been pressed
|
||||||
{
|
{
|
||||||
# Show when prefix has been pressed
|
|
||||||
plugin = prefix-highlight;
|
plugin = prefix-highlight;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
# Also show when I'm in copy or sync mode
|
# Also show when I'm in copy or sync mode
|
||||||
|
|
@ -126,6 +145,11 @@ in
|
||||||
${mkTerminalFeature "hyperlinks" "hyperlinks"}
|
${mkTerminalFeature "hyperlinks" "hyperlinks"}
|
||||||
# Force 24-bit color for each relevant $TERM
|
# Force 24-bit color for each relevant $TERM
|
||||||
${mkTerminalFeature "trueColor" "RGB"}
|
${mkTerminalFeature "trueColor" "RGB"}
|
||||||
|
# Force underscore style/color for each relevant $TERM
|
||||||
|
${mkTerminalFeature "underscoreStyle" "usstyle"}
|
||||||
|
# FIXME: see https://github.com/folke/tokyonight.nvim#fix-undercurls-in-tmux for additional overrides
|
||||||
|
# ${mkTerminalOverride "underscoreStyle" "Smulx=\\E[4::%p1%dm"}
|
||||||
|
# ${mkTerminalOverride "underscoreStyle" "Setulc=\\E[58::2::::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m"}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
17
modules/home/trgui/default.nix
Normal file
17
modules/home/trgui/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.home.trgui;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.home.trgui = with lib; {
|
||||||
|
enable = mkEnableOption "Transmission GUI onfiguration";
|
||||||
|
|
||||||
|
package = mkPackageOption pkgs "TrguiNG" { default = "trgui-ng"; };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
cfg.package
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,8 @@ let
|
||||||
isEnabled = config.my.home.wm.windowManager == "i3";
|
isEnabled = config.my.home.wm.windowManager == "i3";
|
||||||
|
|
||||||
terminal =
|
terminal =
|
||||||
if config.my.home.terminal.program != null
|
if config.my.home.terminal.default != null
|
||||||
then config.my.home.terminal.program
|
then config.my.home.terminal.default
|
||||||
else "i3-sensible-terminal";
|
else "i3-sensible-terminal";
|
||||||
|
|
||||||
alt = "Mod1"; # `Alt` key
|
alt = "Mod1"; # `Alt` key
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ in
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
terminal = config.my.home.terminal.program; # null by default
|
terminal = config.my.home.terminal.default; # null by default
|
||||||
|
|
||||||
package = pkgs.rofi.override {
|
package = pkgs.rofi.override {
|
||||||
plugins = with pkgs; [
|
plugins = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -56,4 +56,7 @@ in
|
||||||
XCOMPOSECACHE = "${dataHome}/X11/xcompose";
|
XCOMPOSECACHE = "${dataHome}/X11/xcompose";
|
||||||
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${configHome}/java";
|
_JAVA_OPTIONS = "-Djava.util.prefs.userRoot=${configHome}/java";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Some modules *optionally* use `XDG_*_HOME` when told to
|
||||||
|
config.home.preferXdgDirectories = lib.mkIf cfg.enable true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ in
|
||||||
# Nice wallpaper
|
# Nice wallpaper
|
||||||
services.xserver.displayManager.lightdm.background =
|
services.xserver.displayManager.lightdm.background =
|
||||||
let
|
let
|
||||||
wallpapers = "${pkgs.plasma5Packages.plasma-workspace-wallpapers}/share/wallpapers";
|
wallpapers = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers";
|
||||||
in
|
in
|
||||||
"${wallpapers}/summer_1am/contents/images/2560x1600.jpg";
|
"${wallpapers}/summer_1am/contents/images/2560x1600.jpg";
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue