feat(home): Add default apps module
This commit is contained in:
parent
79e69ee899
commit
ff2e9b74d2
9 changed files with 236 additions and 243 deletions
|
@ -26,30 +26,33 @@ in {
|
||||||
|
|
||||||
rose-pine.pointerCursor = mkIf colors.isRosePine enabled;
|
rose-pine.pointerCursor = mkIf colors.isRosePine enabled;
|
||||||
|
|
||||||
marleyos.theme = {
|
marleyos = {
|
||||||
colors = {
|
theme = {
|
||||||
default = "dark";
|
colors = {
|
||||||
|
default = "dark";
|
||||||
|
|
||||||
dark = {
|
dark = {
|
||||||
base = "rose-pine";
|
base = "rose-pine";
|
||||||
flavor = "main";
|
flavor = "main";
|
||||||
|
};
|
||||||
|
|
||||||
|
light = {
|
||||||
|
base = "rose-pine";
|
||||||
|
flavor = "dawn";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
light = {
|
icons = {
|
||||||
base = "rose-pine";
|
package = pkgs.kora-icon-theme;
|
||||||
flavor = "dawn";
|
name = "kora";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
apps = {
|
||||||
icons = {
|
pinentry =
|
||||||
package = pkgs.kora-icon-theme;
|
if isDesktop
|
||||||
name = "kora";
|
then pkgs.pinentry-gtk2
|
||||||
|
else pkgs.pinentry-curses;
|
||||||
};
|
};
|
||||||
|
|
||||||
pinentry =
|
|
||||||
if isDesktop
|
|
||||||
then pkgs.pinentry-gtk2
|
|
||||||
else pkgs.pinentry-curses;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fontconfig = mkIf (is-linux system) {
|
fonts.fontconfig = mkIf (is-linux system) {
|
||||||
|
|
55
modules/home/options/apps/default.nix
Normal file
55
modules/home/options/apps/default.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.snowfall.system) is-linux;
|
||||||
|
|
||||||
|
cfg = config.marleyos.apps;
|
||||||
|
in {
|
||||||
|
options.marleyos.apps = {
|
||||||
|
pinentry = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.pinentry-gtk2;
|
||||||
|
description = "The pinentry package to use.";
|
||||||
|
};
|
||||||
|
|
||||||
|
clipboard = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default =
|
||||||
|
if config.marleyos.wayland.hyprland.enable
|
||||||
|
then pkgs.wl-clipboard
|
||||||
|
else pkgs.clipboard-jh;
|
||||||
|
description = "The clipboard manager to use.";
|
||||||
|
};
|
||||||
|
|
||||||
|
terminal = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.wezterm;
|
||||||
|
description = "Ther terminal emulator to use.";
|
||||||
|
};
|
||||||
|
|
||||||
|
browser = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.floorp;
|
||||||
|
description = "The browser to use.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf (is-linux system) {
|
||||||
|
home.packages = [
|
||||||
|
cfg.pinentry
|
||||||
|
cfg.clipboard
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.rbw = lib.mkDefault {
|
||||||
|
settings.pinentry = cfg.pinentry;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gpg-agent = lib.mkDefault {
|
||||||
|
pinentryPackage = cfg.pinentry;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,19 +1,9 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
|
||||||
system,
|
system,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit
|
|
||||||
(lib)
|
|
||||||
types
|
|
||||||
mkOption
|
|
||||||
literalMD
|
|
||||||
mkMerge
|
|
||||||
mkIf
|
|
||||||
mkDefault
|
|
||||||
;
|
|
||||||
inherit (lib.snowfall.system) is-linux;
|
inherit (lib.snowfall.system) is-linux;
|
||||||
|
|
||||||
cfg = config.marleyos.theme;
|
cfg = config.marleyos.theme;
|
||||||
|
@ -22,12 +12,12 @@
|
||||||
"rose-pine"
|
"rose-pine"
|
||||||
];
|
];
|
||||||
|
|
||||||
colorThemeType = types.submodule {
|
colorThemeType = lib.types.submodule {
|
||||||
options = {
|
options = {
|
||||||
base = mkOption {
|
base = lib.mkOption {
|
||||||
type = colorThemes;
|
type = colorThemes;
|
||||||
example = "rose-pine";
|
example = "rose-pine";
|
||||||
description = literalMD ''
|
description = lib.literalMD ''
|
||||||
The color theme to use. This should match the base of the enable
|
The color theme to use. This should match the base of the enable
|
||||||
options provided by the input's module. For instance, the rose-pine
|
options provided by the input's module. For instance, the rose-pine
|
||||||
home-manager module provides the {option}`rose-pine.enable` base
|
home-manager module provides the {option}`rose-pine.enable` base
|
||||||
|
@ -35,15 +25,15 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
flavor = mkOption {
|
flavor = lib.mkOption {
|
||||||
type = with types; nullOr str;
|
type = with lib.types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "moon";
|
example = "moon";
|
||||||
description = "The theme flavor to use, if applicable.";
|
description = "The theme flavor to use, if applicable.";
|
||||||
};
|
};
|
||||||
|
|
||||||
accent = mkOption {
|
accent = lib.mkOption {
|
||||||
type = with types; nullOr str;
|
type = with lib.types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "rose";
|
example = "rose";
|
||||||
description = "The theme accent to use, if applicable.";
|
description = "The theme accent to use, if applicable.";
|
||||||
|
@ -51,8 +41,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkColorThemeOpt = mode: flavor: (mkOption {
|
mkColorThemeOpt = mode: flavor: (lib.mkOption {
|
||||||
type = with types; either str colorThemeType;
|
type = with lib.types; either str colorThemeType;
|
||||||
default = {
|
default = {
|
||||||
base = "rose-pine";
|
base = "rose-pine";
|
||||||
inherit flavor;
|
inherit flavor;
|
||||||
|
@ -61,10 +51,10 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
# https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix
|
# https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix
|
||||||
iconThemeType = types.submodule {
|
iconThemeType = lib.types.submodule {
|
||||||
options = {
|
options = {
|
||||||
package = mkOption {
|
package = lib.mkOption {
|
||||||
type = with types; nullOr package;
|
type = with lib.types; nullOr package;
|
||||||
default = null;
|
default = null;
|
||||||
example = "pkgs.gnome.adwaita-icon-theme";
|
example = "pkgs.gnome.adwaita-icon-theme";
|
||||||
description = ''
|
description = ''
|
||||||
|
@ -74,8 +64,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
name = mkOption {
|
name = lib.mkOption {
|
||||||
type = with types; str;
|
type = with lib.types; str;
|
||||||
example = "Adwaita";
|
example = "Adwaita";
|
||||||
description = "The name of the icon theme within the package.";
|
description = "The name of the icon theme within the package.";
|
||||||
};
|
};
|
||||||
|
@ -84,8 +74,8 @@
|
||||||
in {
|
in {
|
||||||
options.marleyos.theme = {
|
options.marleyos.theme = {
|
||||||
colors = {
|
colors = {
|
||||||
default = mkOption {
|
default = lib.mkOption {
|
||||||
type = with types; str;
|
type = with lib.types; str;
|
||||||
default = "dark";
|
default = "dark";
|
||||||
description = "Whether to prefer the light or dark theme.";
|
description = "Whether to prefer the light or dark theme.";
|
||||||
};
|
};
|
||||||
|
@ -93,44 +83,29 @@ in {
|
||||||
light = mkColorThemeOpt "light" "dawn";
|
light = mkColorThemeOpt "light" "dawn";
|
||||||
dark = mkColorThemeOpt "dark" "main";
|
dark = mkColorThemeOpt "dark" "main";
|
||||||
|
|
||||||
base = mkOption {
|
base = lib.mkOption {
|
||||||
type = colorThemes;
|
type = colorThemes;
|
||||||
};
|
};
|
||||||
flavor = mkOption {
|
flavor = lib.mkOption {
|
||||||
type = with types; nullOr str;
|
type = with lib.types; nullOr str;
|
||||||
};
|
};
|
||||||
accent = mkOption {
|
accent = lib.mkOption {
|
||||||
type = with types; nullOr str;
|
type = with lib.types; nullOr str;
|
||||||
};
|
};
|
||||||
|
|
||||||
isRosePine = mkOption {
|
isRosePine = lib.mkOption {
|
||||||
type = with types; bool;
|
type = with lib.types; bool;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
icons = mkOption {
|
icons = lib.mkOption {
|
||||||
type = with types; nullOr iconThemeType;
|
type = with lib.types; nullOr iconThemeType;
|
||||||
default = null;
|
default = null;
|
||||||
description = "The icon theme to use.";
|
description = "The icon theme to use.";
|
||||||
};
|
};
|
||||||
|
|
||||||
pinentry = mkOption {
|
|
||||||
type = with types; package;
|
|
||||||
default = pkgs.pinentry-gtk2;
|
|
||||||
description = "The pinentry package to use.";
|
|
||||||
};
|
|
||||||
|
|
||||||
clipboard = mkOption {
|
|
||||||
type = with types; package;
|
|
||||||
default =
|
|
||||||
if config.marleyos.wayland.hyprland.enable
|
|
||||||
then pkgs.wl-clipboard
|
|
||||||
else pkgs.clipboard-jh;
|
|
||||||
description = "The clipboard manager to use.";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = lib.mkMerge [
|
||||||
# colors
|
# colors
|
||||||
{
|
{
|
||||||
marleyos.theme.colors = rec {
|
marleyos.theme.colors = rec {
|
||||||
|
@ -144,36 +119,20 @@ in {
|
||||||
}
|
}
|
||||||
|
|
||||||
# icons
|
# icons
|
||||||
(mkIf ((cfg.icons != null) && (is-linux system)) {
|
(lib.mkIf ((cfg.icons != null) && (is-linux system)) {
|
||||||
gtk = mkDefault {
|
gtk = lib.mkDefault {
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
inherit (cfg.icons) name;
|
inherit (cfg.icons) name;
|
||||||
package = mkIf (cfg.icons.package != null) cfg.icons.package;
|
package = lib.mkIf (cfg.icons.package != null) cfg.icons.package;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.dunst = mkDefault {
|
services.dunst = lib.mkDefault {
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
inherit (cfg.icons) name;
|
inherit (cfg.icons) name;
|
||||||
package = mkIf (cfg.icons.package != null) cfg.icons.package;
|
package = lib.mkIf (cfg.icons.package != null) cfg.icons.package;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
# pinentry
|
|
||||||
(mkIf (is-linux system) {
|
|
||||||
home.packages = [
|
|
||||||
cfg.pinentry
|
|
||||||
cfg.clipboard
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.rbw = mkDefault {
|
|
||||||
settings.pinentry = cfg.pinentry;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gpg-agent = mkDefault {
|
|
||||||
pinentryPackage = cfg.pinentry;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,15 +2,12 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf;
|
||||||
|
|
||||||
cfg = config.marleyos.programs.git;
|
cfg = config.marleyos.programs.git;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
# █████╗ ██╗ ██╗ █████╗ ███████╗███████╗███████╗
|
# █████╗ ██╗ ██╗ █████╗ ███████╗███████╗███████╗
|
||||||
# ██╔══██╗██║ ██║██╔══██╗██╔════╝██╔════╝██╔════╝
|
# ██╔══██╗██║ ██║██╔══██╗██╔════╝██╔════╝██╔════╝
|
||||||
# ███████║██║ ██║███████║███████╗█████╗ ███████╗
|
# ███████║██║ ██║███████║███████╗█████╗ ███████╗
|
||||||
|
@ -18,157 +15,155 @@ in
|
||||||
# ██║ ██║███████╗██║██║ ██║███████║███████╗███████║
|
# ██║ ██║███████╗██║██║ ██║███████║███████╗███████║
|
||||||
# ╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
|
# ╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
|
||||||
|
|
||||||
programs.git.aliases =
|
programs.git.aliases = let
|
||||||
let
|
fish_fns = config.programs.fish.functions;
|
||||||
fish_fns = config.programs.fish.functions;
|
in {
|
||||||
in
|
### Staging ###
|
||||||
{
|
|
||||||
### Staging ###
|
|
||||||
|
|
||||||
a = "add";
|
a = "add";
|
||||||
aa = "add --all";
|
aa = "add --all";
|
||||||
|
|
||||||
# Interactively stage parts of a file.
|
# Interactively stage parts of a file.
|
||||||
apa = "add --patch";
|
apa = "add --patch";
|
||||||
|
|
||||||
da = "diff";
|
da = "diff";
|
||||||
das = "diff --staged";
|
das = "diff --staged";
|
||||||
daw = "diff --word-diff"; # Show diff by word.
|
daw = "diff --word-diff"; # Show diff by word.
|
||||||
dasw = "diff --staged --word-diff";
|
dasw = "diff --staged --word-diff";
|
||||||
|
|
||||||
d = "!f() { git diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
d = "!f() { git diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
||||||
ds = "!f() { git diff --staged \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
ds = "!f() { git diff --staged \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
||||||
dw = "!f() { git diff --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
dw = "!f() { git diff --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
||||||
dsw = "!f() { git diff --staged --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
dsw = "!f() { git diff --staged --word-diff \"$@\" ':(exclude)package-lock.json' ':(exclude)*.lock'; }; f";
|
||||||
|
|
||||||
st = "status --short --branch";
|
st = "status --short --branch";
|
||||||
stu = "status --short --branch --untracked-files";
|
stu = "status --short --branch --untracked-files";
|
||||||
stl = "status";
|
stl = "status";
|
||||||
|
|
||||||
### Committing ###
|
### Committing ###
|
||||||
|
|
||||||
c = "commit";
|
c = "commit";
|
||||||
ce = "commit --amend";
|
ce = "commit --amend";
|
||||||
cen = "commit --amend --no-edit --no-verify";
|
cen = "commit --amend --no-edit --no-verify";
|
||||||
ca = "!git add --alll && git commit";
|
ca = "!git add --alll && git commit";
|
||||||
cae = "!git add --all && git commit --amend";
|
cae = "!git add --all && git commit --amend";
|
||||||
caen = "!git add --all && git commit --amend --no-edit --no-verify";
|
caen = "!git add --all && git commit --amend --no-edit --no-verify";
|
||||||
cfu = "commit --fixup";
|
cfu = "commit --fixup";
|
||||||
|
|
||||||
rev = "revert";
|
rev = "revert";
|
||||||
|
|
||||||
### Working Dir & Index Manipulation ###
|
### Working Dir & Index Manipulation ###
|
||||||
|
|
||||||
co = "checkout";
|
co = "checkout";
|
||||||
|
|
||||||
rt = "reset";
|
rt = "reset";
|
||||||
|
|
||||||
rts = "reset --soft"; # undo commits & stage their changes
|
rts = "reset --soft"; # undo commits & stage their changes
|
||||||
|
|
||||||
rs = "restore --worktree"; # revert local changes
|
rs = "restore --worktree"; # revert local changes
|
||||||
rst = "restore --staged"; # unstage things
|
rst = "restore --staged"; # unstage things
|
||||||
rsa = "restore --worktree --staged";
|
rsa = "restore --worktree --staged";
|
||||||
|
|
||||||
rss = "restore --worktree --source"; # specify a commit to revert to
|
rss = "restore --worktree --source"; # specify a commit to revert to
|
||||||
rsts = "restore --staged --source";
|
rsts = "restore --staged --source";
|
||||||
rsas = "restore --worktree --staged --source";
|
rsas = "restore --worktree --staged --source";
|
||||||
|
|
||||||
rmc = "rm --cached"; # leave worktree copy alone
|
rmc = "rm --cached"; # leave worktree copy alone
|
||||||
|
|
||||||
sta = "stash push";
|
sta = "stash push";
|
||||||
stam = "stash push --message";
|
stam = "stash push --message";
|
||||||
staa = "stash push --include-untracted";
|
staa = "stash push --include-untracted";
|
||||||
staam = "stash push --include-untracted --message";
|
staam = "stash push --include-untracted --message";
|
||||||
|
|
||||||
stap = "stash pop";
|
stap = "stash pop";
|
||||||
stal = "stash list";
|
stal = "stash list";
|
||||||
stas = "stash show --text";
|
stas = "stash show --text";
|
||||||
|
|
||||||
cl = "clean -force"; # remove untracked & unignored files
|
cl = "clean -force"; # remove untracked & unignored files
|
||||||
cldr = "clean --dry-run";
|
cldr = "clean --dry-run";
|
||||||
|
|
||||||
### Branches ###
|
### Branches ###
|
||||||
|
|
||||||
b = "branch";
|
b = "branch";
|
||||||
cb = "checkout -b";
|
cb = "checkout -b";
|
||||||
cm = lib.mkIf (fish_fns ? git_main_branch) "!git checkout $(git_main_branch)";
|
cm = lib.mkIf (fish_fns ? git_main_branch) "!git checkout $(git_main_branch)";
|
||||||
cd = lib.mkIf (fish_fns ? git_develop_branch) "!git checkout $(git_develop_branch)";
|
cd = lib.mkIf (fish_fns ? git_develop_branch) "!git checkout $(git_develop_branch)";
|
||||||
|
|
||||||
m = "merge";
|
m = "merge";
|
||||||
mtl = "mergetool --no-prompt";
|
mtl = "mergetool --no-prompt";
|
||||||
ma = "merge --abort";
|
ma = "merge --abort";
|
||||||
|
|
||||||
cp = "cherry-pick";
|
cp = "cherry-pick";
|
||||||
cpa = "cherry-pick --abort";
|
cpa = "cherry-pick --abort";
|
||||||
cpc = "cherry-pick --continue";
|
cpc = "cherry-pick --continue";
|
||||||
cpq = "cherry-pick --quit";
|
cpq = "cherry-pick --quit";
|
||||||
|
|
||||||
### Remotes ###
|
### Remotes ###
|
||||||
|
|
||||||
p = "push";
|
p = "push";
|
||||||
pv = "push --verbose";
|
pv = "push --verbose";
|
||||||
pdr = "push --dry-run";
|
pdr = "push --dry-run";
|
||||||
pf = "push --force-with-lease --force-if-includes";
|
pf = "push --force-with-lease --force-if-includes";
|
||||||
pfv = "push --verbose --force-with-lease --force-if-includes";
|
pfv = "push --verbose --force-with-lease --force-if-includes";
|
||||||
pff = "push --force";
|
pff = "push --force";
|
||||||
pffv = "push --verbose --force";
|
pffv = "push --verbose --force";
|
||||||
|
|
||||||
f = "fetch";
|
f = "fetch";
|
||||||
fa = "fetch --all --prune";
|
fa = "fetch --all --prune";
|
||||||
|
|
||||||
pl = "pull";
|
pl = "pull";
|
||||||
plr = "pull --rebase";
|
plr = "pull --rebase";
|
||||||
|
|
||||||
sub = "submodule";
|
sub = "submodule";
|
||||||
subu = "submodule update --init --recursive";
|
subu = "submodule update --init --recursive";
|
||||||
|
|
||||||
r = "remote";
|
r = "remote";
|
||||||
rv = "remote --verbose";
|
rv = "remote --verbose";
|
||||||
ra = "remote add";
|
ra = "remote add";
|
||||||
rrm = "remote remove";
|
rrm = "remote remove";
|
||||||
rmv = "remote rename";
|
rmv = "remote rename";
|
||||||
rset = "remote set-url";
|
rset = "remote set-url";
|
||||||
rup = "remote update";
|
rup = "remote update";
|
||||||
|
|
||||||
### Logs ###
|
### Logs ###
|
||||||
|
|
||||||
# Current branch.
|
# Current branch.
|
||||||
l = "log --pretty=lc --graph";
|
l = "log --pretty=lc --graph";
|
||||||
lo = "log --pretty=lo --graph --date=human";
|
lo = "log --pretty=lo --graph --date=human";
|
||||||
ls = "log --pretty=lo --graph --date=human --simplify-by-decoration";
|
ls = "log --pretty=lo --graph --date=human --simplify-by-decoration";
|
||||||
lf = "log --pretty=lf --graph";
|
lf = "log --pretty=lf --graph";
|
||||||
ld = "log --pretty=lf --graph --cc --stat";
|
ld = "log --pretty=lf --graph --cc --stat";
|
||||||
lp = "log --pretty=lf --graph --cc --patch";
|
lp = "log --pretty=lf --graph --cc --patch";
|
||||||
|
|
||||||
lr = "log -5 --pretty=lc --graph";
|
lr = "log -5 --pretty=lc --graph";
|
||||||
lro = "log -5 --pretty=lo --graph --date=human";
|
lro = "log -5 --pretty=lo --graph --date=human";
|
||||||
lrs = "log -5 --pretty=lo --graph --date=human --simplify-by-decoration";
|
lrs = "log -5 --pretty=lo --graph --date=human --simplify-by-decoration";
|
||||||
lrf = "log -5 --pretty=lf --graph";
|
lrf = "log -5 --pretty=lf --graph";
|
||||||
lrd = "log -5 --pretty=lf --graph --cc --stat";
|
lrd = "log -5 --pretty=lf --graph --cc --stat";
|
||||||
lrp = "log -5 --pretty=lf --graph --cc --patch";
|
lrp = "log -5 --pretty=lf --graph --cc --patch";
|
||||||
|
|
||||||
# All branches on all remotes.
|
# All branches on all remotes.
|
||||||
la = "log --pretty=lc --graph --all";
|
la = "log --pretty=lc --graph --all";
|
||||||
lao = "log --pretty=lo --graph --all --date=human";
|
lao = "log --pretty=lo --graph --all --date=human";
|
||||||
las = "log --pretty=lo --graph --all --date=human --simplify-by-decoration";
|
las = "log --pretty=lo --graph --all --date=human --simplify-by-decoration";
|
||||||
laf = "log --pretty=lf --graph --all";
|
laf = "log --pretty=lf --graph --all";
|
||||||
lad = "log --pretty=lf --graph --all --cc --stat";
|
lad = "log --pretty=lf --graph --all --cc --stat";
|
||||||
lap = "log --pretty=lf --graph --all --cc --patch";
|
lap = "log --pretty=lf --graph --all --cc --patch";
|
||||||
|
|
||||||
lar = "log -5 --pretty=lc --graph --all";
|
lar = "log -5 --pretty=lc --graph --all";
|
||||||
laro = "log -5 --pretty=lo --graph --all --date=human";
|
laro = "log -5 --pretty=lo --graph --all --date=human";
|
||||||
lars = "log -5 --pretty=lo --graph --all --date=human --simplify-by-decoration";
|
lars = "log -5 --pretty=lo --graph --all --date=human --simplify-by-decoration";
|
||||||
larf = "log -5 --pretty=lf --graph --all";
|
larf = "log -5 --pretty=lf --graph --all";
|
||||||
lard = "log -5 --pretty=lf --graph --all --cc --stat";
|
lard = "log -5 --pretty=lf --graph --all --cc --stat";
|
||||||
larp = "log -5 --pretty=lf --graph --all --cc --patch";
|
larp = "log -5 --pretty=lf --graph --all --cc --patch";
|
||||||
|
|
||||||
### Shortcuts ###
|
### Shortcuts ###
|
||||||
|
|
||||||
nevermind = "!git reset --hard head && git clean -df";
|
nevermind = "!git reset --hard head && git clean -df";
|
||||||
|
|
||||||
open = lib.mkIf (config.programs.fish.enable && (fish_fns ? git_open)) "!fish -c git_open";
|
open = lib.mkIf (config.programs.fish.enable && (fish_fns ? git_open)) "!fish -c git_open";
|
||||||
|
|
||||||
chash = "!git log --oneline | gum filter --height 10 | cut -d' ' -f1 | cb &>/dev/null";
|
chash = "!git log --oneline | gum filter --height 10 | cut -d' ' -f1 | ${config.marleyos.apps.clipboard} &>/dev/null";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gum
|
gum
|
||||||
config.marleyos.theme.clipboard
|
config.marleyos.apps.clipboard
|
||||||
];
|
];
|
||||||
|
|
||||||
# ██████╗ ██╗████████╗
|
# ██████╗ ██╗████████╗
|
||||||
|
|
|
@ -66,7 +66,7 @@ in {
|
||||||
blur-kern = "3x3box";
|
blur-kern = "3x3box";
|
||||||
blur-background-exclude = [
|
blur-background-exclude = [
|
||||||
"window_type = 'desktop'",
|
"window_type = 'desktop'",
|
||||||
"name = 'firefox'",
|
"name = '${lib.getName config.marleyos.apps.browser}'",
|
||||||
"class_g = 'slop'"
|
"class_g = 'slop'"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -98,11 +98,9 @@ in {
|
||||||
in {
|
in {
|
||||||
monitor = lib.attrValues cfg.monitors;
|
monitor = lib.attrValues cfg.monitors;
|
||||||
|
|
||||||
# TODO: Set this in a default apps module.
|
"$terminal" = lib.getExe config.marleyos.apps.terminal;
|
||||||
"$terminal" = lib.getExe pkgs.wezterm;
|
|
||||||
"$launcher" = "${lib.getExe pkgs.wofi} --show drun";
|
"$launcher" = "${lib.getExe pkgs.wofi} --show drun";
|
||||||
# TODO: Set this in a default apps module.
|
"$browser" = lib.getExe config.marleyos.apps.browser;
|
||||||
"$browser" = "${lib.getExe pkgs.floorp}";
|
|
||||||
|
|
||||||
exec-once = let
|
exec-once = let
|
||||||
browserWs =
|
browserWs =
|
||||||
|
|
|
@ -4,24 +4,14 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit
|
|
||||||
(lib)
|
|
||||||
mkEnableOption
|
|
||||||
mkIf
|
|
||||||
concatMapAttrs
|
|
||||||
map
|
|
||||||
range
|
|
||||||
listToAttrs
|
|
||||||
getExe
|
|
||||||
;
|
|
||||||
inherit (lib.marleyos) enabled disabled;
|
inherit (lib.marleyos) enabled disabled;
|
||||||
|
|
||||||
cfg = config.marleyos.xorg.i3;
|
cfg = config.marleyos.xorg.i3;
|
||||||
isGenericLinux = config.targets.genericLinux.enable;
|
isGenericLinux = config.targets.genericLinux.enable;
|
||||||
in {
|
in {
|
||||||
options.marleyos.xorg.i3.enable = mkEnableOption "i3";
|
options.marleyos.xorg.i3.enable = lib.mkEnableOption "i3";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
marleyos = {
|
marleyos = {
|
||||||
programs.rofi = enabled;
|
programs.rofi = enabled;
|
||||||
services = {
|
services = {
|
||||||
|
@ -43,7 +33,7 @@ in {
|
||||||
|
|
||||||
xsession.windowManager.i3 = {
|
xsession.windowManager.i3 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = mkIf config.marleyos.nixGL.enable (config.lib.nixGL.wrap pkgs.i3);
|
package = lib.mkIf config.marleyos.nixGL.enable (config.lib.nixGL.wrap pkgs.i3);
|
||||||
|
|
||||||
extraConfig = "tiling_drag modifier titlebar";
|
extraConfig = "tiling_drag modifier titlebar";
|
||||||
|
|
||||||
|
@ -83,13 +73,12 @@ in {
|
||||||
|
|
||||||
keybindings = let
|
keybindings = let
|
||||||
mod = config.xsession.windowManager.i3.config.modifier;
|
mod = config.xsession.windowManager.i3.config.modifier;
|
||||||
workspaces = range 1 10;
|
workspaces = lib.range 1 10;
|
||||||
getI = i:
|
getI = i:
|
||||||
if i == 10
|
if i == 10
|
||||||
then "0"
|
then "0"
|
||||||
else toString i;
|
else toString i;
|
||||||
inherit (config.xdg) configHome;
|
inherit (config.xdg) configHome;
|
||||||
isGenericLinux = config.targets.genericLinux.enable;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"${mod}+Shift+c" = "reload";
|
"${mod}+Shift+c" = "reload";
|
||||||
|
@ -109,15 +98,11 @@ in {
|
||||||
"${mod}+q" = "kill";
|
"${mod}+q" = "kill";
|
||||||
|
|
||||||
"${mod}+r" = "exec ${configHome}/rofi/launchers/type-1/launcher.sh";
|
"${mod}+r" = "exec ${configHome}/rofi/launchers/type-1/launcher.sh";
|
||||||
"${mod}+Return" = "exec ${
|
"${mod}+Return" = "exec ${lib.getExe config.marleyos.apps.terminal}";
|
||||||
if isGenericLinux
|
|
||||||
then "wezterm"
|
|
||||||
else "${pkgs.wezterm}/bin/wezterm"
|
|
||||||
}";
|
|
||||||
}
|
}
|
||||||
# PulseAudio Volume - - - - - - - - - - - - - - - - - - - - - - - -
|
# PulseAudio Volume - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
// (
|
// (
|
||||||
concatMapAttrs
|
lib.concatMapAttrs
|
||||||
(key: cmd: {
|
(key: cmd: {
|
||||||
"${key}" = "exec --no-startup-id pactl ${cmd} && killall -SIGUSR1 i3status";
|
"${key}" = "exec --no-startup-id pactl ${cmd} && killall -SIGUSR1 i3status";
|
||||||
})
|
})
|
||||||
|
@ -129,13 +114,13 @@ in {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Focus & Movement - - - - - - - - - - - - - - - - - - - - - - - - -
|
# Focus & Movement - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
// (concatMapAttrs (direction: key: {
|
// (lib.concatMapAttrs (direction: key: {
|
||||||
"${mod}+${key}" = "focus ${direction}";
|
"${mod}+${key}" = "focus ${direction}";
|
||||||
"${mod}+Shift+${key}" = "move ${direction}";
|
"${mod}+Shift+${key}" = "move ${direction}";
|
||||||
})
|
})
|
||||||
directions)
|
directions)
|
||||||
# Switch Workspaces - - - - - - - - - - - - - - - - - - - - - - - - -
|
# Switch Workspaces - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
// (listToAttrs (
|
// (lib.listToAttrs (
|
||||||
(map (i: {
|
(map (i: {
|
||||||
name = "${mod}+${getI i}";
|
name = "${mod}+${getI i}";
|
||||||
value = "workspace number ${toString i}";
|
value = "workspace number ${toString i}";
|
||||||
|
@ -143,7 +128,7 @@ in {
|
||||||
workspaces
|
workspaces
|
||||||
))
|
))
|
||||||
# Move Windows Between Workspaces - - - - - - - - - - - - - - - - - -
|
# Move Windows Between Workspaces - - - - - - - - - - - - - - - - - -
|
||||||
// (listToAttrs (
|
// (lib.listToAttrs (
|
||||||
(map (i: {
|
(map (i: {
|
||||||
name = "${mod}+Shift+${getI i}";
|
name = "${mod}+Shift+${getI i}";
|
||||||
value = "move container to workspace number ${toString i}";
|
value = "move container to workspace number ${toString i}";
|
||||||
|
@ -161,7 +146,7 @@ in {
|
||||||
"${mod}+Control+r" = "mode default";
|
"${mod}+Control+r" = "mode default";
|
||||||
}
|
}
|
||||||
// (
|
// (
|
||||||
concatMapAttrs
|
lib.concatMapAttrs
|
||||||
(key: action: {
|
(key: action: {
|
||||||
"${key}" = "resize ${action} 10 px or 10 ppt";
|
"${key}" = "resize ${action} 10 px or 10 ppt";
|
||||||
})
|
})
|
||||||
|
|
|
@ -8,8 +8,6 @@ in {
|
||||||
|
|
||||||
networking.hostName = "nyx";
|
networking.hostName = "nyx";
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
marleyos = {
|
marleyos = {
|
||||||
hasNvidia = true;
|
hasNvidia = true;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue