Compare commits
47 Commits
ece09d9598
...
598c08a060
Author | SHA1 | Date | |
---|---|---|---|
598c08a060 | |||
0173d9cdc3 | |||
083aa025bc | |||
c4d43d21c8 | |||
660285c743 | |||
fcdf1058a5 | |||
450f9e382d | |||
c1d0c467a9 | |||
d0d24560d5 | |||
0ddb13b31a | |||
4e6f7979b0 | |||
c172f2d358 | |||
331084c19a | |||
0591102ed7 | |||
abd4276cfb | |||
23057f5ba6 | |||
9911b86478 | |||
2de9b8a6b3 | |||
d3bbb125de | |||
17603cfafd | |||
041780e3d7 | |||
58dcf630a8 | |||
70e61193b4 | |||
7c71848893 | |||
401b7c91a5 | |||
e09fcfffc1 | |||
a3e71d894e | |||
c13d39843c | |||
d5aea5ccd3 | |||
e92617649f | |||
7a2345d3e3 | |||
4aea3d5fc8 | |||
e29e3e895f | |||
d2532f713d | |||
35c53cfd5c | |||
7c32ff5a6b | |||
8d795cb782 | |||
a09b48feab | |||
f892218419 | |||
cf8e8f08f9 | |||
1e687fa231 | |||
5f6a23a104 | |||
2c50398ea8 | |||
23ac64bf87 | |||
535fb8778b | |||
34e40b502b | |||
0202aab104 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
build.log
|
build.log
|
||||||
flake.lock
|
flake.lock
|
||||||
|
.index
|
||||||
|
12
.index
Normal file
12
.index
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
flake.lock
|
||||||
|
flake.nix
|
||||||
|
home-manager
|
||||||
|
hosts
|
||||||
|
nixos
|
||||||
|
pkgs
|
||||||
|
README.md
|
||||||
|
|
||||||
|
|
||||||
|
todos
|
||||||
|
|
||||||
|
justfile
|
@ -22,11 +22,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1703013332,
|
"lastModified": 1707092692,
|
||||||
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
|
"narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
|
"rev": "faf912b086576fd1a15fca610166c98d47bc667e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = inputs @ { self, nixpkgs, home-manager }:
|
outputs = { nixpkgs, home-manager, ... }@inputs:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
user = {
|
user = {
|
||||||
|
@ -14,20 +14,6 @@
|
|||||||
dataHome = "${config.home.homeDirectory}/.local/share";
|
dataHome = "${config.home.homeDirectory}/.local/share";
|
||||||
stateHome = "${config.home.homeDirectory}/.local/state";
|
stateHome = "${config.home.homeDirectory}/.local/state";
|
||||||
};
|
};
|
||||||
home.file = {
|
|
||||||
"bash_login" = {
|
|
||||||
source = ./dots/bash_login;
|
|
||||||
target = ".bash_login";
|
|
||||||
};
|
|
||||||
"bash_logout" = {
|
|
||||||
source = ./dots/bash_logout;
|
|
||||||
target = ".bash_logout";
|
|
||||||
};
|
|
||||||
"bashrc" = {
|
|
||||||
source = ./dots/bashrc;
|
|
||||||
target = ".bashrc";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs.fzf = {
|
programs.fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
tmux.enableShellIntegration = true;
|
tmux.enableShellIntegration = true;
|
||||||
@ -51,20 +37,6 @@
|
|||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
extraConfig = ''
|
|
||||||
syntax enable
|
|
||||||
set nowrap
|
|
||||||
set linebreak
|
|
||||||
set number
|
|
||||||
set relativenumber
|
|
||||||
set splitbelow
|
|
||||||
set splitright
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
if filereadable(expand(".vim-project"))
|
|
||||||
source .vim-project
|
|
||||||
endif
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -85,60 +57,6 @@
|
|||||||
newSession = false;
|
newSession = false;
|
||||||
prefix = "C-b";
|
prefix = "C-b";
|
||||||
terminal = "screen-256color";
|
terminal = "screen-256color";
|
||||||
extraConfig = ''
|
|
||||||
# Do not rename windows automatically
|
|
||||||
set-option -g allow-rename off
|
|
||||||
|
|
||||||
# Hide statusbar while using one window
|
|
||||||
set -g status off
|
|
||||||
set-hook -g after-new-window 'if "[ #{session_windows} -gt 1 ]" "set status on"'
|
|
||||||
set-hook -g after-kill-pane 'if "[ #{session_windows} -lt 2 ]" "set status off"'
|
|
||||||
set-hook -g pane-exited 'if "[ #{session_windows} -lt 2 ]" "set status off"'
|
|
||||||
set-hook -g window-layout-changed 'if "[ #{session_windows} -lt 2 ]" "set status off"'
|
|
||||||
|
|
||||||
# Reload tmux.conf
|
|
||||||
unbind r
|
|
||||||
bind r source-file $HOME/.config/tmux/tmux.conf \; display "tmux config reloaded"
|
|
||||||
|
|
||||||
# Rebind vertical/horizontal splitting
|
|
||||||
unbind %
|
|
||||||
unbind v
|
|
||||||
bind v split-window -h -c "#{pane_current_path}"
|
|
||||||
unbind '"'
|
|
||||||
unbind c
|
|
||||||
bind c split-window -v -c "#{pane_current_path}"
|
|
||||||
|
|
||||||
unbind Enter
|
|
||||||
bind Enter new-window
|
|
||||||
unbind Tab
|
|
||||||
bind Tab last-window
|
|
||||||
|
|
||||||
unbind l
|
|
||||||
# Rebind moving panes
|
|
||||||
bind -n C-h select-pane -L
|
|
||||||
bind -n C-j select-pane -D
|
|
||||||
bind -n C-k select-pane -U
|
|
||||||
bind -n C-l select-pane -R
|
|
||||||
bind -n M-h select-pane -L
|
|
||||||
bind -n M-j select-pane -D
|
|
||||||
bind -n M-k select-pane -U
|
|
||||||
bind -n M-l select-pane -R
|
|
||||||
|
|
||||||
# Set status bar postition
|
|
||||||
set -g status-position top
|
|
||||||
|
|
||||||
# Status bar theme
|
|
||||||
set -g status-style "fg=#50fa7b"
|
|
||||||
|
|
||||||
# Window theme
|
|
||||||
setw -g window-status-current-style "bg=#50fa7b fg=#282a36"
|
|
||||||
setw -g window-status-current-format " #I:#W#F "
|
|
||||||
setw -g window-status-format "[#I:#W#F]"
|
|
||||||
'';
|
|
||||||
plugins = with pkgs; [
|
|
||||||
tmuxPlugins.urlview
|
|
||||||
tmuxPlugins.yank
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./base.nix
|
./base.nix
|
||||||
|
./dots/tmux.nix
|
||||||
|
./dots/bash.nix
|
||||||
];
|
];
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
wget = "wget --hsts-file=${config.xdg.configHome}/wget-hsts";
|
wget = "wget --hsts-file=${config.xdg.configHome}/wget-hsts";
|
||||||
@ -51,16 +53,27 @@
|
|||||||
};
|
};
|
||||||
neovim = {
|
neovim = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
let g:limelight_conceal_ctermfg = 'block'
|
syntax enable
|
||||||
|
set wrap
|
||||||
|
set nospell
|
||||||
|
set linebreak
|
||||||
|
set number
|
||||||
|
set relativenumber
|
||||||
|
set splitbelow
|
||||||
|
set splitright
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
if filereadable(expand(".vim-project"))
|
||||||
|
source .vim-project
|
||||||
|
endif
|
||||||
|
let g:limelight_conceal_ctermfg = 'block'
|
||||||
'';
|
'';
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
dracula-nvim
|
|
||||||
goyo-vim
|
goyo-vim
|
||||||
limelight-vim
|
limelight-vim
|
||||||
twilight-nvim
|
vim-numbertoggle
|
||||||
vim-nix
|
vim-nix
|
||||||
vimwiki
|
vimwiki
|
||||||
zen-mode-nvim
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
yt-dlp = {
|
yt-dlp = {
|
||||||
|
93
home-manager/dots/bash.nix
Normal file
93
home-manager/dots/bash.nix
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{ pkgs, config, user, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
sessionVariables = {
|
||||||
|
};
|
||||||
|
file = {
|
||||||
|
".bash_login" = {
|
||||||
|
enable = true;
|
||||||
|
text = ''
|
||||||
|
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||||
|
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
|
||||||
|
exec river
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
".bash_logout" = {
|
||||||
|
enable = true;
|
||||||
|
text = ''
|
||||||
|
if [ "$SHLVL" = 1 ]; then
|
||||||
|
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
".bashrc" = {
|
||||||
|
enable = true;
|
||||||
|
text = ''
|
||||||
|
# Source global definitions
|
||||||
|
if [ -f /etc/bashrc ]; then
|
||||||
|
. /etc/bashrc
|
||||||
|
fi
|
||||||
|
set -o vi
|
||||||
|
unset HISTFILE
|
||||||
|
# Aliases
|
||||||
|
alias mkfoo='. $HOME/.local/bin/mkfoo.sh'
|
||||||
|
alias ed='ed -p "> "'
|
||||||
|
# Functions
|
||||||
|
function get-ssh() {
|
||||||
|
if [ ! -f $HOME/.ssh/id_ed25519.pub ]; then
|
||||||
|
ssh-keygen -t ed25519 -C "${user.email}"
|
||||||
|
fi
|
||||||
|
cat $HOME/.ssh/id_ed25519.pub
|
||||||
|
}
|
||||||
|
function home() {
|
||||||
|
cd
|
||||||
|
clear
|
||||||
|
}
|
||||||
|
function search() {
|
||||||
|
surfraw $(surfraw -elvi | fzf | awk '{print $1;}')
|
||||||
|
}
|
||||||
|
function mkcd {
|
||||||
|
mkdir -p $1
|
||||||
|
cd $1
|
||||||
|
}
|
||||||
|
|
||||||
|
# fe [FUZZY PATTERN] - Open the selected file with the default editor
|
||||||
|
# - Bypass fuzzy finder if there's only one match (--select-1)
|
||||||
|
# - Exit if there's no match (--exit-0)
|
||||||
|
function fe() {
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
files=$(fzf --query="$1" --multi --select-1 --exit-0)
|
||||||
|
[ -n "$files" ] && "$EDITOR" "$files"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Environmental Variables
|
||||||
|
# Uncomment the following line if you don't like systemctl's auto-paging feature:
|
||||||
|
export SYSTEMD_PAGER=
|
||||||
|
export PS1="\n\u@\h:\w (\j)\n$? \$ "
|
||||||
|
export LIBSEAT_BACKEND=logind
|
||||||
|
export BEMENU_OPTS="--fn 'Comic Mono 12'\
|
||||||
|
--tb '#6272a4'\
|
||||||
|
--tf '#f8f8f2'\
|
||||||
|
--fb '#282a36'\
|
||||||
|
--ff '#f8f8f2'\
|
||||||
|
--nb '#282a36'\
|
||||||
|
--nf '#6272a4'\
|
||||||
|
--hb '#44475a'\
|
||||||
|
--hf '#50fa7b'\
|
||||||
|
--sb '#44475a'\
|
||||||
|
--sf '#50fa7b'\
|
||||||
|
--scb '#282a36'\
|
||||||
|
--scf '#ff79c6'\
|
||||||
|
--hp '10'\
|
||||||
|
--binding 'vim'\
|
||||||
|
--vim-esc-exits\
|
||||||
|
--ignorecase\
|
||||||
|
--no-overlap\
|
||||||
|
--bottom"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,4 +0,0 @@
|
|||||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
|
||||||
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
|
|
||||||
exec river
|
|
||||||
fi
|
|
@ -1,3 +0,0 @@
|
|||||||
if [ "$SHLVL" = 1 ]; then
|
|
||||||
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
|
|
||||||
fi
|
|
@ -1,131 +0,0 @@
|
|||||||
# .bashrc
|
|
||||||
|
|
||||||
# Source global definitions
|
|
||||||
if [ -f /etc/bashrc ]; then
|
|
||||||
. /etc/bashrc
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -o vi
|
|
||||||
unset HISTFILE
|
|
||||||
|
|
||||||
# Functions
|
|
||||||
function home() {
|
|
||||||
cd
|
|
||||||
clear
|
|
||||||
}
|
|
||||||
|
|
||||||
function search() {
|
|
||||||
surfraw $(surfraw -elvi | fzf | awk '{print $1;}')
|
|
||||||
}
|
|
||||||
|
|
||||||
function mkcd {
|
|
||||||
mkdir -p $1
|
|
||||||
cd $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# fe [FUZZY PATTERN] - Open the selected file with the default editor
|
|
||||||
# - Bypass fuzzy finder if there's only one match (--select-1)
|
|
||||||
# - Exit if there's no match (--exit-0)
|
|
||||||
function fe() {
|
|
||||||
IFS='
|
|
||||||
'
|
|
||||||
files=$(fzf --query="$1" --multi --select-1 --exit-0)
|
|
||||||
[ -n "$files" ] && ${EDITOR} "${files}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function _track() {
|
|
||||||
TRACK_DIR=${TRACK_DIR:-.}
|
|
||||||
local lis
|
|
||||||
lis=$(find "$TRACK_DIR"/*.csv -maxdepth 1 2>/dev/null | sed -e 's/.*\///' | sed -e 's/\..*$//')
|
|
||||||
local cur
|
|
||||||
cur=${COMP_WORDS[COMP_CWORD]}
|
|
||||||
COMPREPLY=( $(compgen -W "$lis" -- "$cur") )
|
|
||||||
}
|
|
||||||
|
|
||||||
function track() {
|
|
||||||
TRACK_DIR=${TRACK_DIR:-.}
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
find "$TRACK_DIR"/*.csv -maxdepth 1 2>/dev/null | sed -e 's/.*\///' | sed -e 's/\..*$//'
|
|
||||||
else
|
|
||||||
case "$1" in
|
|
||||||
-h|--help)
|
|
||||||
echo "track - track a thing"
|
|
||||||
echo " "
|
|
||||||
echo "usage: track # list things tracked"
|
|
||||||
echo "usage: track (-h or --help) # show this help"
|
|
||||||
echo "usage: track [thing] # show most recent value of thing"
|
|
||||||
echo "usage: track [thing] [value] # track new value of thing for today"
|
|
||||||
echo "usage: track [thing] [options]"
|
|
||||||
echo " options:"
|
|
||||||
echo " -a, --all # show all values of thing"
|
|
||||||
echo " -n, --number # show (number) values of thing"
|
|
||||||
echo " -d, --delete # delete thing tracking"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
local f
|
|
||||||
local fn
|
|
||||||
f="$TRACK_DIR"/"$1".csv
|
|
||||||
fn="$1"
|
|
||||||
shift
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
if [ ! -f "$f" ]; then
|
|
||||||
echo "track: '$fn' not found"
|
|
||||||
else
|
|
||||||
tail -n 1 "$f" | column -s, -t | awk '{printf "\033[38;05;226m%s-\033[38;05;226m%s-\033[38;05;226m%s\t\033[38;05;46m%s\t\n", $1, $2, $3, $4;}'
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ ! -f "$f" ]; then
|
|
||||||
echo "year,month,day,$fn" > "$f"
|
|
||||||
fi
|
|
||||||
case "$1" in
|
|
||||||
-a|--all)
|
|
||||||
column -s, -t "$f" | awk '{printf "\033[38;05;226m%s-\033[38;05;226m%s-\033[38;05;226m%s\t\033[38;05;46m%s\t\n", $1, $2, $3, $4;}'
|
|
||||||
;;
|
|
||||||
-n|--number)
|
|
||||||
tail -n "$2" "$f" | column -s, -t | awk '{printf "\033[38;05;226m%s-\033[38;05;226m%s-\033[38;05;226m%s\t\033[38;05;46m%s\t\n", $1, $2, $3, $4;}'
|
|
||||||
;;
|
|
||||||
-d|--delete)
|
|
||||||
rm "$f"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
local d
|
|
||||||
d=$(date '+%Y,%m,%d')
|
|
||||||
local l
|
|
||||||
l=$(sed -n "/$d/{=;}" "$f")
|
|
||||||
local c
|
|
||||||
c="${*//,/-}"
|
|
||||||
if [ -z "$l" ]; then
|
|
||||||
echo "$d,$c" >> "$f"
|
|
||||||
else
|
|
||||||
sed -i "$l c $d,$c" "$f"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
complete -F _track track
|
|
||||||
|
|
||||||
# Environmental Variables
|
|
||||||
# Uncomment the following line if you don't like systemctl's auto-paging feature:
|
|
||||||
export SYSTEMD_PAGER=
|
|
||||||
export BEMENU_OPTS="--tb '#6272a4'\
|
|
||||||
--tf '#f8f8f2'\
|
|
||||||
--fb '#282a36'\
|
|
||||||
--ff '#f8f8f2'\
|
|
||||||
--nb '#282a36'\
|
|
||||||
--nf '#6272a4'\
|
|
||||||
--hb '#44475a'\
|
|
||||||
--hf '#50fa7b'\
|
|
||||||
--sb '#44475a'\
|
|
||||||
--sf '#50fa7b'\
|
|
||||||
--scb '#282a36'\
|
|
||||||
--scf '#ff79c6'\
|
|
||||||
--fn 'Comic Mono 12'\
|
|
||||||
--hp '10'\
|
|
||||||
--binding 'vim'\
|
|
||||||
--vim-esc-exits\
|
|
||||||
--ignorecase\
|
|
||||||
--no-overlap"
|
|
50
home-manager/dots/firefox.nix
Normal file
50
home-manager/dots/firefox.nix
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Firefox home.nix
|
||||||
|
{ config, lib, pkgs, inputs, user, ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles.${user.name} = {
|
||||||
|
id = 0;
|
||||||
|
name = "default";
|
||||||
|
settings = {
|
||||||
|
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||||
|
};
|
||||||
|
bookmarks = [
|
||||||
|
{
|
||||||
|
name = "readlater";
|
||||||
|
url = "javascript:q=location.href;p=document.title;void(t=open('https://pinboard.in/add?later=yes&noui=yes&jump=close&url='+encodeURIComponent(q)+'&title='+encodeURIComponent(p),'Pinboard','toolbar=no,width=100,height=100'));t.blur();";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "bookmark";
|
||||||
|
url = "javascript:q=location.href;if(document.getSelection){d=document.getSelection();}else{d='''';};p=document.title;void(open('https://pinboard.in/add?url='+encodeURIComponent(q)+'&description='+encodeURIComponent(d)+'&title='+encodeURIComponent(p),'Pinboard','toolbar=no,width=700,height=350'));";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "subscribe";
|
||||||
|
url = "javascript:location.href='https://reader.miniflux.app/bookmarklet?uri='+encodeURIComponent(window.location.href)";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "untagged";
|
||||||
|
url = "https://pinboard.in/u:iiogama/untagged/";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "fastmail";
|
||||||
|
url = "https://app.fastmail.com/";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "transmission";
|
||||||
|
url = "http://127.0.0.1:9091/transmission/web/";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "iptorrents";
|
||||||
|
url = "https://iptorrents.com/peers";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "soundcloud";
|
||||||
|
url = "https://soundcloud.com/";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
35
home-manager/dots/foot.nix
Normal file
35
home-manager/dots/foot.nix
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
programs.foot = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
font = "Comic Mono:size=12";
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
alpha = 1.0;
|
||||||
|
background = "282a36";
|
||||||
|
foreground = "f8f8f2";
|
||||||
|
regular0 = "21222c";
|
||||||
|
regular1 = "ff5555";
|
||||||
|
regular2 = "50fa7b";
|
||||||
|
regular3 = "f1fa8c";
|
||||||
|
regular4 = "bd93f9";
|
||||||
|
regular5 = "ff79c6";
|
||||||
|
regular6 = "8be9fd";
|
||||||
|
regular7 = "f8f8f2";
|
||||||
|
bright0 = "6272a4";
|
||||||
|
bright1 = "ff6e6e";
|
||||||
|
bright2 = "69ff94";
|
||||||
|
bright3 = "ffffa5";
|
||||||
|
bright4 = "d6acff";
|
||||||
|
bright5 = "ff92df";
|
||||||
|
bright6 = "a4ffff";
|
||||||
|
bright7 = "ffffff";
|
||||||
|
selection-foreground = "ffffff";
|
||||||
|
selection-background = "44475a";
|
||||||
|
urls = "8be9fd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,23 +0,0 @@
|
|||||||
font=Comic Mono:size=11
|
|
||||||
[colors]
|
|
||||||
alpha=1.0
|
|
||||||
foreground=f8f8f2
|
|
||||||
background=282a36
|
|
||||||
## Normal/regular colors (color palette 0-7)
|
|
||||||
regular0=000000
|
|
||||||
regular1=ff5555
|
|
||||||
regular2=50fa7b
|
|
||||||
regular3=f1fa8c
|
|
||||||
regular4=bd93f9
|
|
||||||
regular5=ff79c6
|
|
||||||
regular6=8be9fd
|
|
||||||
regular7=bfbfbf
|
|
||||||
## Bright colors (color palette 8-15)
|
|
||||||
bright0=4d4d4d
|
|
||||||
bright1=ff6367
|
|
||||||
bright2=5af78e
|
|
||||||
bright3=f4f99d
|
|
||||||
bright4=caa9fa
|
|
||||||
bright5=ff92d0
|
|
||||||
bright6=9aedfe
|
|
||||||
bright7=e63636
|
|
29
home-manager/dots/mako.nix
Normal file
29
home-manager/dots/mako.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
services.mako = {
|
||||||
|
enable = true;
|
||||||
|
backgroundColor = "#282A36";
|
||||||
|
borderColor = "#BD93F9";
|
||||||
|
borderRadius = 5;
|
||||||
|
borderSize = 2;
|
||||||
|
margin = "20";
|
||||||
|
textColor = "#F8F8F2";
|
||||||
|
anchor = "bottom-right";
|
||||||
|
layer = "overlay";
|
||||||
|
maxVisible = 5;
|
||||||
|
font = "Comic Mono 12";
|
||||||
|
defaultTimeout = 10000;
|
||||||
|
extraConfig = ''
|
||||||
|
[urgency=low]
|
||||||
|
border-color=#282A36
|
||||||
|
text-color=#F8F8F2
|
||||||
|
[urgency=normal]
|
||||||
|
border-color=#BD93F9
|
||||||
|
text-color=#F8F8F2
|
||||||
|
[urgency=high]
|
||||||
|
background-color=#FF5555
|
||||||
|
border-color=#FF5555
|
||||||
|
text-color=#F8F8F2
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
@ -1,21 +0,0 @@
|
|||||||
max-history=10
|
|
||||||
max-visible=5
|
|
||||||
anchor=bottom-right
|
|
||||||
font=Comic Mono 12
|
|
||||||
background-color=#282a36
|
|
||||||
text-color=#50fa7b
|
|
||||||
border-color=#282a36
|
|
||||||
default-timeout=10000
|
|
||||||
|
|
||||||
[urgency=low]
|
|
||||||
border-color=#282a36
|
|
||||||
text-color=#6272a4
|
|
||||||
|
|
||||||
[urgency=normal]
|
|
||||||
border-color=#bd93f9
|
|
||||||
text-color=#50fa7b
|
|
||||||
|
|
||||||
[urgency=high]
|
|
||||||
background-color=#ff5555
|
|
||||||
border-color=#ff5555
|
|
||||||
text-color=#f8f8f2
|
|
174
home-manager/dots/river.nix
Normal file
174
home-manager/dots/river.nix
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
xdg.configFile = {
|
||||||
|
"river/init" = {
|
||||||
|
enable = true;
|
||||||
|
executable = true;
|
||||||
|
text = ''
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
TERMINAL="foot"
|
||||||
|
LOCKSCREEN="swaylock"
|
||||||
|
|
||||||
|
# Autostart
|
||||||
|
riverctl spawn "kanshi"
|
||||||
|
riverctl spawn "wallpaper.sh -r"
|
||||||
|
riverctl spawn "waybar"
|
||||||
|
riverctl spawn "mako"
|
||||||
|
riverctl spawn "wl-paste --type text --watch cliphist store"
|
||||||
|
riverctl spawn "wl-paste --type image --watch cliphist store"
|
||||||
|
riverctl spawn "mullvad-gui"
|
||||||
|
riverctl spawn "nm-applet"
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
riverctl background-color 0x282A36
|
||||||
|
riverctl border-color-focused 0xBD93F9
|
||||||
|
riverctl border-color-unfocused 0x282A36
|
||||||
|
|
||||||
|
# Launch Shortcuts
|
||||||
|
riverctl map normal Super Return spawn "$TERMINAL tmux.sh"
|
||||||
|
riverctl map normal Super+Shift Return spawn "$TERMINAL"
|
||||||
|
riverctl map normal Super Space spawn "wmenu.sh"
|
||||||
|
|
||||||
|
# Focus Controls
|
||||||
|
riverctl map normal Super H focus-view previous
|
||||||
|
riverctl map normal Super J focus-view next
|
||||||
|
riverctl map normal Super K focus-view previous
|
||||||
|
riverctl map normal Super L focus-view next
|
||||||
|
riverctl map normal Alt Tab focus-view next
|
||||||
|
riverctl map normal Alt+Shift Tab focus-view previous
|
||||||
|
riverctl map normal Super Tab focus-output next
|
||||||
|
riverctl map normal Super Bracketright focus-output next
|
||||||
|
riverctl map normal Super Bracketleft focus-output previous
|
||||||
|
|
||||||
|
# Move Controls
|
||||||
|
riverctl map normal Super+Shift H swap previous
|
||||||
|
riverctl map normal Super+Shift J swap next
|
||||||
|
riverctl map normal Super+Shift K swap previous
|
||||||
|
riverctl map normal Super+Shift L swap next
|
||||||
|
riverctl map normal Super+Shift Space zoom
|
||||||
|
riverctl map normal Super+Shift Tab send-to-output next
|
||||||
|
riverctl map normal Super+Shift Bracketright send-to-output next
|
||||||
|
riverctl map normal Super+Shift Bracketleft send-to-output previous
|
||||||
|
|
||||||
|
# Layout Controls
|
||||||
|
riverctl map normal Super+Alt H send-layout-cmd rivertile "main-ratio -0.05"
|
||||||
|
riverctl map normal Super+Alt L send-layout-cmd rivertile "main-ratio +0.05"
|
||||||
|
riverctl map normal Super I send-layout-cmd rivertile "main-count +1"
|
||||||
|
riverctl map normal Super+Shift I send-layout-cmd rivertile "main-count -1"
|
||||||
|
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
|
||||||
|
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
|
||||||
|
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
|
||||||
|
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
|
||||||
|
|
||||||
|
# Floating Controls
|
||||||
|
riverctl map normal Super F toggle-float
|
||||||
|
riverctl map normal Super+Control H move left 100
|
||||||
|
riverctl map normal Super+Control J move down 100
|
||||||
|
riverctl map normal Super+Control K move up 100
|
||||||
|
riverctl map normal Super+Control L move right 100
|
||||||
|
riverctl map normal Super+Shift+Control H snap left
|
||||||
|
riverctl map normal Super+Shift+Control J snap down
|
||||||
|
riverctl map normal Super+Shift+Control K snap up
|
||||||
|
riverctl map normal Super+Shift+Control L snap right
|
||||||
|
riverctl map normal Super+Alt+Shift H resize horizontal -100
|
||||||
|
riverctl map normal Super+Alt+Shift J resize vertical 100
|
||||||
|
riverctl map normal Super+Alt+Shift K resize vertical -100
|
||||||
|
riverctl map normal Super+Alt+Shift L resize horizontal 100
|
||||||
|
riverctl map-pointer normal Super BTN_LEFT move-view
|
||||||
|
riverctl map-pointer normal Super BTN_RIGHT resize-view
|
||||||
|
|
||||||
|
# Close focused view
|
||||||
|
riverctl map normal Super W close
|
||||||
|
riverctl map normal Super Q close
|
||||||
|
# Exit River
|
||||||
|
riverctl map normal Super+Shift Q exit
|
||||||
|
|
||||||
|
for i in $(seq 1 9)
|
||||||
|
do
|
||||||
|
tags=$((1 << ($i - 1)))
|
||||||
|
|
||||||
|
# Super+[1-9] to focus tag [0-8]
|
||||||
|
riverctl map normal Super $i spawn "riverctl set-focused-tags $tags; notify-send 'Tag $tags focus toggle';"
|
||||||
|
|
||||||
|
# Super+Shift+[1-9] to tag focused view with tag [0-8]
|
||||||
|
riverctl map normal Super+Shift $i spawn "riverctl set-view-tags $tags; riverctl set-focused-tags $tags; notify-send 'Tag $tags swap toggle';"
|
||||||
|
|
||||||
|
# Super+Control+[1-9] to toggle focus of tag [0-8]
|
||||||
|
riverctl map normal Super+Control $i spawn "riverctl toggle-focused-tags $tags; notify-send 'Tag $tags focus toggle';"
|
||||||
|
|
||||||
|
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
|
||||||
|
riverctl map normal Super+Shift+Control $i spawn "riverctl toggle-view-tags $tags; notiy-send 'Tag $tags assignment toggle';"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Super+0 to focus all tags
|
||||||
|
# Super+Shift+0 to tag focused view with all tags
|
||||||
|
all_tags=$(((1 << 32) - 1))
|
||||||
|
riverctl map normal Super 0 spawn "riverctl set-focused-tags $all_tags; notify-send 'All tags focus toggle';"
|
||||||
|
riverctl map normal Super+Shift 0 spawn "riverctl set-view-tags $all_tags; notify-send 'All tags assignment toggle';"
|
||||||
|
|
||||||
|
# Toggle fullscreen
|
||||||
|
riverctl map normal None F11 toggle-fullscreen
|
||||||
|
riverctl map normal Super Z toggle-fullscreen
|
||||||
|
|
||||||
|
# Declare a passthrough mode. This mode has only a single mapping to return to
|
||||||
|
# normal mode. This makes it useful for testing a nested wayland compositor
|
||||||
|
riverctl declare-mode passthrough
|
||||||
|
|
||||||
|
# Super+F11 to enter passthrough mode
|
||||||
|
riverctl map normal Super F11 enter-mode passthrough
|
||||||
|
|
||||||
|
# Super+F11 to return to normal mode
|
||||||
|
riverctl map passthrough Super F11 enter-mode normal
|
||||||
|
|
||||||
|
# Various media key mapping examples for both normal and locked mode which do
|
||||||
|
# not have a modifier
|
||||||
|
for mode in normal locked
|
||||||
|
do
|
||||||
|
riverctl map $mode None XF86Eject spawn 'eject -T'
|
||||||
|
|
||||||
|
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
|
||||||
|
riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
|
||||||
|
riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
|
||||||
|
riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
|
||||||
|
|
||||||
|
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
|
||||||
|
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
|
||||||
|
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
|
||||||
|
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
|
||||||
|
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
|
||||||
|
|
||||||
|
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
|
||||||
|
riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5'
|
||||||
|
riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5'
|
||||||
|
done
|
||||||
|
|
||||||
|
# Set keyboard repeat rate
|
||||||
|
riverctl set-repeat 50 300
|
||||||
|
|
||||||
|
# Make all views with an app-id that starts with "float" and title "foo" start floating.
|
||||||
|
riverctl rule-add -app-id 'float*' -title 'foo' float
|
||||||
|
|
||||||
|
# Make all views with app-id "bar" and any title use client-side decorations
|
||||||
|
riverctl rule-add -app-id "bar" csd
|
||||||
|
|
||||||
|
# Global Configuration Settings
|
||||||
|
riverctl default-layout rivertile
|
||||||
|
rivertile -view-padding 10 -outer-padding 10 &
|
||||||
|
riverctl attach-mode bottom
|
||||||
|
riverctl hide-cursor timeout 10000
|
||||||
|
riverctl hide-cursor when-typing enabled
|
||||||
|
riverctl set-cursor-warp on-focus-change
|
||||||
|
riverctl focus-follows-cursor always
|
||||||
|
|
||||||
|
riverctl focus-output DP-1
|
||||||
|
riverctl send-layout-cmd rivertile "main-location right"
|
||||||
|
riverctl focus-output DP-2
|
||||||
|
riverctl send-layout-cmd rivertile "main-location left"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,152 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
|
|
||||||
# documentation.
|
|
||||||
|
|
||||||
# Autostart
|
|
||||||
riverctl spawn "way-displays -c $HOME/.config/way-displays/cfg.yaml"
|
|
||||||
riverctl spawn "swww init"
|
|
||||||
riverctl spawn "swww img $HOME/Pictures/wallpapers/bliss-night.png --transition-type simple"
|
|
||||||
riverctl spawn "wl-paste --type text --watch cliphist store"
|
|
||||||
riverctl spawn "wl-paste --type image --watch cliphist store"
|
|
||||||
riverctl spawn "mako"
|
|
||||||
riverctl spawn "mullvad-gui"
|
|
||||||
|
|
||||||
# Theme
|
|
||||||
riverctl background-color 0x282a36
|
|
||||||
riverctl border-color-focused 0xbd93f9
|
|
||||||
riverctl border-color-unfocused 0x282a36
|
|
||||||
|
|
||||||
# Launch Shortcuts
|
|
||||||
riverctl map normal Super Return spawn "foot tmux.sh"
|
|
||||||
riverctl map normal Super+Shift Return spawn "foot"
|
|
||||||
riverctl map normal Super Space spawn "wmenu.sh"
|
|
||||||
|
|
||||||
# Focus Controls
|
|
||||||
riverctl map normal Super H focus-view previous
|
|
||||||
riverctl map normal Super J focus-view next
|
|
||||||
riverctl map normal Super K focus-view previous
|
|
||||||
riverctl map normal Super L focus-view next
|
|
||||||
riverctl map normal Alt Tab focus-view next
|
|
||||||
riverctl map normal Alt+Shift Tab focus-view previous
|
|
||||||
riverctl map normal Super Tab focus-output next
|
|
||||||
riverctl map normal Super Bracketright focus-output next
|
|
||||||
riverctl map normal Super Bracketleft focus-output previous
|
|
||||||
|
|
||||||
# Move Controls
|
|
||||||
riverctl map normal Super+Shift H zoom
|
|
||||||
riverctl map normal Super+Shift J swap next
|
|
||||||
riverctl map normal Super+Shift K swap previous
|
|
||||||
riverctl map normal Super+Shift L swap next
|
|
||||||
riverctl map normal Super+Shift Tab send-to-output next
|
|
||||||
riverctl map normal Super+Shift Bracketright send-to-output next
|
|
||||||
riverctl map normal Super+Shift Bracketleft send-to-output previous
|
|
||||||
|
|
||||||
# Layout Controls
|
|
||||||
riverctl map normal Super+Alt H send-layout-cmd rivertile "main-ratio -0.05"
|
|
||||||
riverctl map normal Super+Alt L send-layout-cmd rivertile "main-ratio +0.05"
|
|
||||||
riverctl map normal Super I send-layout-cmd rivertile "main-count +1"
|
|
||||||
riverctl map normal Super D send-layout-cmd rivertile "main-count -1"
|
|
||||||
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
|
|
||||||
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
|
|
||||||
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
|
|
||||||
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
|
|
||||||
|
|
||||||
# Floating Controls
|
|
||||||
riverctl map normal Super F toggle-float
|
|
||||||
riverctl map normal Super+Control H move left 100
|
|
||||||
riverctl map normal Super+Control J move down 100
|
|
||||||
riverctl map normal Super+Control K move up 100
|
|
||||||
riverctl map normal Super+Control L move right 100
|
|
||||||
riverctl map normal Super+Shift+Control H snap left
|
|
||||||
riverctl map normal Super+Shift+Control J snap down
|
|
||||||
riverctl map normal Super+Shift+Control K snap up
|
|
||||||
riverctl map normal Super+Shift+Control L snap right
|
|
||||||
riverctl map normal Super+Alt+Shift H resize horizontal -100
|
|
||||||
riverctl map normal Super+Alt+Shift J resize vertical 100
|
|
||||||
riverctl map normal Super+Alt+Shift K resize vertical -100
|
|
||||||
riverctl map normal Super+Alt+Shift L resize horizontal 100
|
|
||||||
riverctl map-pointer normal Super BTN_LEFT move-view
|
|
||||||
riverctl map-pointer normal Super BTN_RIGHT resize-view
|
|
||||||
|
|
||||||
# Close focused view
|
|
||||||
riverctl map normal Super W close
|
|
||||||
riverctl map normal Super Q close
|
|
||||||
# Exit River
|
|
||||||
riverctl map normal Super+Shift Q exit
|
|
||||||
|
|
||||||
for i in $(seq 1 9)
|
|
||||||
do
|
|
||||||
tags=$((1 << ($i - 1)))
|
|
||||||
|
|
||||||
# Super+[1-9] to focus tag [0-8]
|
|
||||||
riverctl map normal Super $i set-focused-tags $tags
|
|
||||||
|
|
||||||
# Super+Shift+[1-9] to tag focused view with tag [0-8]
|
|
||||||
riverctl map normal Super+Shift $i set-view-tags $tags
|
|
||||||
|
|
||||||
# Super+Control+[1-9] to toggle focus of tag [0-8]
|
|
||||||
riverctl map normal Super+Control $i toggle-focused-tags $tags
|
|
||||||
|
|
||||||
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
|
|
||||||
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
|
|
||||||
done
|
|
||||||
|
|
||||||
# Super+0 to focus all tags
|
|
||||||
# Super+Shift+0 to tag focused view with all tags
|
|
||||||
all_tags=$(((1 << 32) - 1))
|
|
||||||
riverctl map normal Super 0 set-focused-tags $all_tags
|
|
||||||
riverctl map normal Super+Shift 0 set-view-tags $all_tags
|
|
||||||
|
|
||||||
# Toggle fullscreen
|
|
||||||
riverctl map normal None F11 toggle-fullscreen
|
|
||||||
riverctl map normal Super Z toggle-fullscreen
|
|
||||||
|
|
||||||
# Declare a passthrough mode. This mode has only a single mapping to return to
|
|
||||||
# normal mode. This makes it useful for testing a nested wayland compositor
|
|
||||||
riverctl declare-mode passthrough
|
|
||||||
|
|
||||||
# Super+F11 to enter passthrough mode
|
|
||||||
riverctl map normal Super F11 enter-mode passthrough
|
|
||||||
|
|
||||||
# Super+F11 to return to normal mode
|
|
||||||
riverctl map passthrough Super F11 enter-mode normal
|
|
||||||
|
|
||||||
# Various media key mapping examples for both normal and locked mode which do
|
|
||||||
# not have a modifier
|
|
||||||
for mode in normal locked
|
|
||||||
do
|
|
||||||
riverctl map $mode None XF86Eject spawn 'eject -T'
|
|
||||||
|
|
||||||
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
|
|
||||||
riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
|
|
||||||
riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
|
|
||||||
riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
|
|
||||||
|
|
||||||
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
|
|
||||||
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
|
|
||||||
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
|
|
||||||
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
|
|
||||||
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
|
|
||||||
|
|
||||||
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
|
|
||||||
riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5'
|
|
||||||
riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5'
|
|
||||||
done
|
|
||||||
|
|
||||||
# Set keyboard repeat rate
|
|
||||||
riverctl set-repeat 50 300
|
|
||||||
|
|
||||||
# Make all views with an app-id that starts with "float" and title "foo" start floating.
|
|
||||||
riverctl rule-add -app-id 'float*' -title 'foo' float
|
|
||||||
|
|
||||||
# Make all views with app-id "bar" and any title use client-side decorations
|
|
||||||
riverctl rule-add -app-id "bar" csd
|
|
||||||
|
|
||||||
# Global Configuration Settings
|
|
||||||
riverctl default-layout rivertile
|
|
||||||
rivertile -view-padding 10 -outer-padding 10 &
|
|
||||||
riverctl attach-mode bottom
|
|
||||||
riverctl hide-cursor timeout 10000
|
|
||||||
riverctl hide-cursor when-typing enabled
|
|
||||||
riverctl set-cursor-warp on-focus-change
|
|
||||||
riverctl focus-follows-cursor always
|
|
15
home-manager/dots/swappy.nix
Normal file
15
home-manager/dots/swappy.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
xdg.configFile = {
|
||||||
|
"swappy/config" = {
|
||||||
|
enable = true;
|
||||||
|
text = ''
|
||||||
|
[Default]
|
||||||
|
save_dir=$HOME/Pictures/screenshots
|
||||||
|
line_size=5
|
||||||
|
text_size=20
|
||||||
|
text_font=Comic Mono
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
30
home-manager/dots/swaylock.nix
Normal file
30
home-manager/dots/swaylock.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
programs.swaylock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
color = "282a36";
|
||||||
|
inside-color = "1F202A";
|
||||||
|
line-color = "1F202A";
|
||||||
|
ring-color = "bd93f9";
|
||||||
|
text-color = "f8f8f2";
|
||||||
|
layout-bg-color = "1F202A";
|
||||||
|
layout-text-color = "f8f8f2";
|
||||||
|
inside-clear-color = "6272a4";
|
||||||
|
line-clear-color = "1F202A";
|
||||||
|
ring-clear-color = "6272a4";
|
||||||
|
text-clear-color = "1F202A";
|
||||||
|
inside-ver-color = "bd93f9";
|
||||||
|
line-ver-color = "1F202A";
|
||||||
|
ring-ver-color = "bd93f9";
|
||||||
|
text-ver-color = "1F202A";
|
||||||
|
inside-wrong-color = "ff5555";
|
||||||
|
line-wrong-color = "1F202A";
|
||||||
|
ring-wrong-color = "ff5555";
|
||||||
|
text-wrong-color = "1F202A";
|
||||||
|
bs-hl-color = "ff5555";
|
||||||
|
key-hl-color = "50fa7b";
|
||||||
|
text-caps-lock-color = "f8f8f2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,28 +0,0 @@
|
|||||||
color=282a36
|
|
||||||
inside-color=1F202A
|
|
||||||
line-color=1F202A
|
|
||||||
ring-color=bd93f9
|
|
||||||
text-color=f8f8f2
|
|
||||||
|
|
||||||
layout-bg-color=1F202A
|
|
||||||
layout-text-color=f8f8f2
|
|
||||||
|
|
||||||
inside-clear-color=6272a4
|
|
||||||
line-clear-color=1F202A
|
|
||||||
ring-clear-color=6272a4
|
|
||||||
text-clear-color=1F202A
|
|
||||||
|
|
||||||
inside-ver-color=bd93f9
|
|
||||||
line-ver-color=1F202A
|
|
||||||
ring-ver-color=bd93f9
|
|
||||||
text-ver-color=1F202A
|
|
||||||
|
|
||||||
inside-wrong-color=ff5555
|
|
||||||
line-wrong-color=1F202A
|
|
||||||
ring-wrong-color=ff5555
|
|
||||||
text-wrong-color=1F202A
|
|
||||||
|
|
||||||
bs-hl-color=ff5555
|
|
||||||
key-hl-color=50fa7b
|
|
||||||
|
|
||||||
text-caps-lock-color=f8f8f2
|
|
55
home-manager/dots/tmux.nix
Normal file
55
home-manager/dots/tmux.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
programs.tmux = {
|
||||||
|
extraConfig = ''
|
||||||
|
# Do not rename windows automatically
|
||||||
|
set-option -g allow-rename off
|
||||||
|
|
||||||
|
# Hide statusbar while using one window
|
||||||
|
set -g status off
|
||||||
|
set-hook -g after-new-window 'if "[ #{session_windows} -gt 1 ]" "set status on"'
|
||||||
|
set-hook -g after-kill-pane 'if "[ #{session_windows} -lt 2 ]" "set status off"'
|
||||||
|
set-hook -g pane-exited 'if "[ #{session_windows} -lt 2 ]" "set status off"'
|
||||||
|
set-hook -g window-layout-changed 'if "[ #{session_windows} -lt 2 ]" "set status off"'
|
||||||
|
|
||||||
|
# Reload tmux.conf
|
||||||
|
unbind r
|
||||||
|
bind r source-file $HOME/.config/tmux/tmux.conf \; display "tmux config reloaded"
|
||||||
|
|
||||||
|
# Rebind vertical/horizontal splitting
|
||||||
|
unbind %
|
||||||
|
unbind v
|
||||||
|
bind v split-window -h -c "#{pane_current_path}"
|
||||||
|
unbind '"'
|
||||||
|
unbind c
|
||||||
|
bind c split-window -v -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
unbind Enter
|
||||||
|
bind Enter new-window
|
||||||
|
unbind Tab
|
||||||
|
bind Tab last-window
|
||||||
|
|
||||||
|
unbind l
|
||||||
|
# Rebind moving panes
|
||||||
|
bind -n C-h select-pane -L
|
||||||
|
bind -n C-j select-pane -D
|
||||||
|
bind -n C-k select-pane -U
|
||||||
|
bind -n C-l select-pane -R
|
||||||
|
bind -n M-h select-pane -L
|
||||||
|
bind -n M-j select-pane -D
|
||||||
|
bind -n M-k select-pane -U
|
||||||
|
bind -n M-l select-pane -R
|
||||||
|
|
||||||
|
set -g status-position top
|
||||||
|
set -g status-left "[#S] "
|
||||||
|
set -g status-right "#{=21:pane_title} %H:%M"
|
||||||
|
set -g status-style "bg=#282a36 fg=#f8f8f2"
|
||||||
|
setw -g window-status-current-style "bg=#BD93F9 fg=#282a36"
|
||||||
|
setw -g window-status-current-format " #I:#W #F "
|
||||||
|
setw -g window-status-format "#I:#W #F"
|
||||||
|
'';
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
urlview
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -1,80 +0,0 @@
|
|||||||
# Default cfg.yaml for way-displays.
|
|
||||||
# Copy this to ~/.config/way-displays/cfg.yaml and edit it to your liking.
|
|
||||||
#
|
|
||||||
# See https://github.com/alex-courtis/way-displays/blob/master/doc/CONFIGURATION.md
|
|
||||||
|
|
||||||
|
|
||||||
# Arrange displays in a ROW (default, left to right) or a COLUMN (top to bottom)
|
|
||||||
ARRANGE: ROW
|
|
||||||
|
|
||||||
# Align ROWs at the TOP (default), MIDDLE or BOTTOM
|
|
||||||
# Align COLUMNs at the LEFT (default), MIDDLE or RIGHT
|
|
||||||
ALIGN: TOP
|
|
||||||
|
|
||||||
|
|
||||||
# The default ORDER is simply the order in which the displays are discovered.
|
|
||||||
# Define your own.
|
|
||||||
ORDER:
|
|
||||||
- 'DP-1'
|
|
||||||
- 'DP-2'
|
|
||||||
|
|
||||||
|
|
||||||
# Enable scaling, overrides AUTO_SCALE and SCALE
|
|
||||||
SCALING: TRUE
|
|
||||||
|
|
||||||
# The default is to scale each display by DPI.
|
|
||||||
# This may be disabled and scale 1 will be used, unless a SCALE has been specified.
|
|
||||||
AUTO_SCALE: TRUE
|
|
||||||
|
|
||||||
|
|
||||||
# Auto scale may be overridden for each display.
|
|
||||||
SCALE:
|
|
||||||
#- NAME_DESC: 'monitor description'
|
|
||||||
# SCALE: 1.75
|
|
||||||
|
|
||||||
# Override the preferred mode.
|
|
||||||
# WARNING: this may result in an unusable display. See https://github.com/alex-courtis/way-displays#known-issues-with-workarounds
|
|
||||||
# for a possible workaround.
|
|
||||||
MODE:
|
|
||||||
# Resolution and refresh
|
|
||||||
#- NAME_DESC: HDMI-A-1
|
|
||||||
# WIDTH: 1920
|
|
||||||
# HEIGHT: 1080
|
|
||||||
# HZ: 60
|
|
||||||
|
|
||||||
# Resolution with highest refresh
|
|
||||||
#- NAME_DESC: 'monitor description'
|
|
||||||
# WIDTH: 2560
|
|
||||||
# HEIGHT: 1440
|
|
||||||
|
|
||||||
# Highest available
|
|
||||||
- NAME_DESC: DP-1
|
|
||||||
MAX: TRUE
|
|
||||||
- NAME_DESC: DP-2
|
|
||||||
MAX: TRUE
|
|
||||||
|
|
||||||
# Rotate or translate the display.
|
|
||||||
# 90, 180, 270, FLIPPED, FLIPPED-90, FLIPPED-180, FLIPPED-270
|
|
||||||
TRANSFORM:
|
|
||||||
# - NAME_DESC: 'monitor description'
|
|
||||||
# TRANSFORM: 270
|
|
||||||
|
|
||||||
# VRR / adaptive sync is enabled by default. Disable it per display.
|
|
||||||
VRR_OFF:
|
|
||||||
# - DP-2
|
|
||||||
# - '!.*my monitor.*'
|
|
||||||
|
|
||||||
|
|
||||||
# Laptop displays usually start with eDP e.g. eDP-1. This may be overridden if
|
|
||||||
# your laptop is different.
|
|
||||||
#LAPTOP_DISPLAY_PREFIX: 'eDP'
|
|
||||||
|
|
||||||
|
|
||||||
# One of: ERROR, WARNING, INFO (default), DEBUG
|
|
||||||
LOG_THRESHOLD: INFO
|
|
||||||
|
|
||||||
|
|
||||||
# Disable the specified displays.
|
|
||||||
DISABLED:
|
|
||||||
#- "eDP-1"
|
|
||||||
|
|
78
home-manager/dots/waybar.nix
Normal file
78
home-manager/dots/waybar.nix
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
xdg.configFile = {
|
||||||
|
"waybar/config" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
[{
|
||||||
|
"exclusive": false,
|
||||||
|
"position": "top",
|
||||||
|
"height": 20,
|
||||||
|
"fixed-center": false,
|
||||||
|
"modules-left": [
|
||||||
|
"user"
|
||||||
|
],
|
||||||
|
"modules-right": [
|
||||||
|
"clock"
|
||||||
|
],
|
||||||
|
"user": {
|
||||||
|
"format": "{work_d}:{work_H}:{work_M}:{work_S}",
|
||||||
|
"interval": 1
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%H:%M:%S}",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"format-alt": "{:%Y-%m-%d}",
|
||||||
|
"interval": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"exclusive": false,
|
||||||
|
"position": "bottom",
|
||||||
|
"height": 20,
|
||||||
|
"fixed-center": false,
|
||||||
|
"modules-left": [
|
||||||
|
"river/mode"
|
||||||
|
],
|
||||||
|
"modules-right": [
|
||||||
|
"tray"
|
||||||
|
],
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 4,
|
||||||
|
"show-passive-items": true,
|
||||||
|
"reverse-direction": true
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
"waybar/style.css" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
* {
|
||||||
|
background: transparent;
|
||||||
|
color: #F2F2F8;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
#user {
|
||||||
|
background: #282A36;
|
||||||
|
padding: 0 8 0 8;
|
||||||
|
}
|
||||||
|
#clock {
|
||||||
|
background: #282A36;
|
||||||
|
padding: 0 8 0 8;
|
||||||
|
}
|
||||||
|
#mode {
|
||||||
|
background: #282A36;
|
||||||
|
padding: 0 8 0 8;
|
||||||
|
}
|
||||||
|
#tray {
|
||||||
|
background: #282A36;
|
||||||
|
padding: 0 4 0 8;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
77
home-manager/dots/waybar.nix.bak
Normal file
77
home-manager/dots/waybar.nix.bak
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
settings = [{
|
||||||
|
topBar = {
|
||||||
|
exclusive = false;
|
||||||
|
position = "top";
|
||||||
|
height = 22;
|
||||||
|
spacing = 16;
|
||||||
|
modules-left = [ "user" ];
|
||||||
|
modules-right = [ "clock" ];
|
||||||
|
"user" = {
|
||||||
|
format = "{work_d}:{work_H}:{work_M}:{work_S}";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
"clock" = {
|
||||||
|
format = "{:%H:%M:%S}";
|
||||||
|
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||||
|
format-alt = "{:%Y-%m-%d}";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
bottomBar = {
|
||||||
|
exclusive = false;
|
||||||
|
position = "bottom";
|
||||||
|
height = 22;
|
||||||
|
spacing = 16;
|
||||||
|
fixed-center = false;
|
||||||
|
modules-left = [ "river/mode" ];
|
||||||
|
modules-right = [ "tray" ];
|
||||||
|
"tray" = {
|
||||||
|
icon-size = 18;
|
||||||
|
spacing = 4;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
background: transparent;
|
||||||
|
color: #F2F2F8;
|
||||||
|
}
|
||||||
|
#user {
|
||||||
|
background: #282A36;
|
||||||
|
border-style: solid;
|
||||||
|
border-bottom-right-radius: 5px;
|
||||||
|
border-width: 0 2 2 0;
|
||||||
|
border-color: #BD93F9;
|
||||||
|
padding: 0 8 0 8;
|
||||||
|
}
|
||||||
|
#clock {
|
||||||
|
background: #282A36;
|
||||||
|
border-style: solid;
|
||||||
|
border-bottom-left-radius: 5px;
|
||||||
|
border-width: 0 0 2 2;
|
||||||
|
border-color: #BD93F9;
|
||||||
|
padding: 0 8 0 8;
|
||||||
|
}
|
||||||
|
#mode {
|
||||||
|
background: #282A36;
|
||||||
|
border-style: solid;
|
||||||
|
border-top-right-radius: 5px;
|
||||||
|
border-width: 2 2 0 0;
|
||||||
|
border-color: #BD93F9;
|
||||||
|
padding: 0 8 0 8;
|
||||||
|
}
|
||||||
|
#tray {
|
||||||
|
background: #282A36;
|
||||||
|
border-style: solid;
|
||||||
|
border-top-left-radius: 5px;
|
||||||
|
border-width: 2 0 0 2;
|
||||||
|
border-color: #BD93F9;
|
||||||
|
padding: 0 4 0 8;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
@ -4,24 +4,24 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./cli.nix
|
./cli.nix
|
||||||
];
|
];
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
font = {
|
||||||
|
name = "Comic Mono";
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
name = "dracula-icon-theme";
|
||||||
|
package = pkgs.dracula-icon-theme;
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
name = "dracula-theme";
|
||||||
|
package = pkgs.dracula-theme;
|
||||||
|
};
|
||||||
|
};
|
||||||
xdg = {
|
xdg = {
|
||||||
systemDirs.data = [
|
systemDirs.data = [
|
||||||
"/var/lib/flatpak/exports/share"
|
"/var/lib/flatpak/exports/share"
|
||||||
"${config.xdg.dataHome}/flatpak/exports/share"
|
"${config.xdg.dataHome}/flatpak/exports/share"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Dracula";
|
|
||||||
package = pkgs.dracula-theme;
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
name = "Dracula-Icon-Theme";
|
|
||||||
package = pkgs.dracula-icon-theme;
|
|
||||||
};
|
|
||||||
font = {
|
|
||||||
name = "Comic Mono";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -3,32 +3,30 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gui.nix
|
./gui.nix
|
||||||
|
./dots/foot.nix
|
||||||
|
./dots/mako.nix
|
||||||
|
./dots/river.nix
|
||||||
|
./dots/swappy.nix
|
||||||
|
./dots/swaylock.nix
|
||||||
|
./dots/waybar.nix
|
||||||
];
|
];
|
||||||
xdg.configFile = {
|
services.kanshi = {
|
||||||
"foot" = {
|
enable = true;
|
||||||
source = ./dots/foot;
|
profiles = {
|
||||||
target = "foot";
|
default = {
|
||||||
recursive = true;
|
outputs = [
|
||||||
};
|
{
|
||||||
"mako" = {
|
criteria = "DP-1";
|
||||||
source = ./dots/mako;
|
position = "0,0";
|
||||||
target = "mako";
|
mode = "2560x1440@164.99Hz";
|
||||||
recursive = true;
|
}
|
||||||
};
|
{
|
||||||
"river" = {
|
criteria = "DP-2";
|
||||||
source = ./dots/river;
|
position = "2560,0";
|
||||||
target = "river";
|
mode = "2560x1440@164.99Hz";
|
||||||
recursive = true;
|
}
|
||||||
};
|
];
|
||||||
"swaylock" = {
|
};
|
||||||
source = ./dots/swaylock;
|
|
||||||
target = "swaylock";
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
"way-displays" = {
|
|
||||||
source = ./dots/way-displays;
|
|
||||||
target = "way-displays";
|
|
||||||
recursive = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
};
|
};
|
||||||
home.file = {
|
home.file = {
|
||||||
"xinitrc" = {
|
"xinitrc" = {
|
||||||
source = ./dots/xinitrc;
|
source = ./dots/xorg/xinitrc;
|
||||||
target = ".xinitrc";
|
target = ".xinitrc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -66,12 +66,12 @@
|
|||||||
};
|
};
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"dunst" = {
|
"dunst" = {
|
||||||
source = ./dots/dunst;
|
source = ./dots/xorg/dunst;
|
||||||
target = "dunst";
|
target = "dunst";
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
"sxhkd" = {
|
"sxhkd" = {
|
||||||
source = ./dots/sxhkd;
|
source = ./dots/xorg/sxhkd;
|
||||||
target = "sxhkd";
|
target = "sxhkd";
|
||||||
recursive = true;
|
recursive = true;
|
||||||
executable = true;
|
executable = true;
|
||||||
|
26
hosts/base/configuration.nix
Normal file
26
hosts/base/configuration.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Base configuration.nix
|
||||||
|
{ config, lib, pkgs, inputs, user, ... }:
|
||||||
|
let
|
||||||
|
hostname="nixos";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
boot = {
|
||||||
|
loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "/dev/vda";
|
||||||
|
useOSProber = true;
|
||||||
|
};
|
||||||
|
# Hardware-configuration edits
|
||||||
|
kernel.sysctl."net.ipv4.ip_forward" = 1;
|
||||||
|
};
|
||||||
|
networking = {
|
||||||
|
hostName = "${hostname}";
|
||||||
|
firewall = {
|
||||||
|
allowedTCPPorts = [ 445 139 ];
|
||||||
|
allowedUDPPorts = [ 137 138 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -17,7 +17,6 @@ in
|
|||||||
efi.efiSysMountPoint = "/boot/efi";
|
efi.efiSysMountPoint = "/boot/efi";
|
||||||
timeout = 2;
|
timeout = 2;
|
||||||
};
|
};
|
||||||
tmp.cleanOnBoot = true;
|
|
||||||
};
|
};
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "${hostname}";
|
hostName = "${hostname}";
|
||||||
@ -73,12 +72,15 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.virt-manager.enable = true;
|
programs = {
|
||||||
|
virt-manager.enable = true;
|
||||||
|
river.enable = true;
|
||||||
|
};
|
||||||
users.users.${user.name} = {
|
users.users.${user.name} = {
|
||||||
extraGroups = [ "davfs2" "libvirtd" "transmission" ];
|
extraGroups = [ "davfs2" "libvirtd" "transmission" ];
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
mixxx
|
python311Packages.eyeD3
|
||||||
polychromatic
|
tagutil
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,6 @@
|
|||||||
# Buckwheat home.nix
|
# Buckwheat home.nix
|
||||||
{ config, lib, pkgs, inputs, user, ... }:
|
{ config, lib, pkgs, inputs, user, ... }:
|
||||||
{
|
{
|
||||||
xsession.windowManager.bspwm = {
|
|
||||||
monitors = {
|
|
||||||
DP-1 = [
|
|
||||||
"1"
|
|
||||||
"2"
|
|
||||||
"3"
|
|
||||||
"4"
|
|
||||||
"5"
|
|
||||||
];
|
|
||||||
DP-2 = [
|
|
||||||
"6"
|
|
||||||
"7"
|
|
||||||
"8"
|
|
||||||
"9"
|
|
||||||
"0"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services = {
|
services = {
|
||||||
udiskie = {
|
udiskie = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
22
hosts/buckwheat/xorg.nix
Normal file
22
hosts/buckwheat/xorg.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Buckwheat home.nix
|
||||||
|
{ config, lib, pkgs, inputs, user, ... }:
|
||||||
|
{
|
||||||
|
xsession.windowManager.bspwm = {
|
||||||
|
monitors = {
|
||||||
|
DP-1 = [
|
||||||
|
"1"
|
||||||
|
"2"
|
||||||
|
"3"
|
||||||
|
"4"
|
||||||
|
"5"
|
||||||
|
];
|
||||||
|
DP-2 = [
|
||||||
|
"6"
|
||||||
|
"7"
|
||||||
|
"8"
|
||||||
|
"9"
|
||||||
|
"0"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -6,13 +6,14 @@
|
|||||||
specialArgs = { inherit user inputs; };
|
specialArgs = { inherit user inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
../nixos/wayland.nix
|
../nixos/wayland.nix
|
||||||
../nixos/gaming.nix
|
../nixos/collections/dev.nix
|
||||||
../nixos/office.nix
|
../nixos/collections/gaming.nix
|
||||||
|
../nixos/collections/office.nix
|
||||||
./buckwheat/configuration.nix
|
./buckwheat/configuration.nix
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user inputs; };
|
||||||
home-manager.users.${user.name} = {
|
home-manager.users.${user.name} = {
|
||||||
imports = [
|
imports = [
|
||||||
../home-manager/wayland.nix
|
../home-manager/wayland.nix
|
||||||
@ -26,9 +27,9 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit user inputs; };
|
specialArgs = { inherit user inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
../nixos/xorg.nix
|
../nixos/wayland.nix
|
||||||
../nixos/office.nix
|
../nixos/collections/office.nix
|
||||||
../nixos/pentest.nix
|
../nixos/collections/pentest.nix
|
||||||
./fireweed/configuration.nix
|
./fireweed/configuration.nix
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
@ -36,27 +37,26 @@
|
|||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
home-manager.users.${user.name} = {
|
home-manager.users.${user.name} = {
|
||||||
imports = [
|
imports = [
|
||||||
../home-manager/xorg.nix
|
../home-manager/wayland.nix
|
||||||
./fireweed/home.nix
|
./fireweed/home.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
vm = lib.nixosSystem {
|
base = lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit user inputs; };
|
specialArgs = { inherit user inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
../nixos/cli.nix
|
../nixos/base.nix
|
||||||
./vm/configuration.nix
|
./base/configuration.nix
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
home-manager.users.${user.name} = {
|
home-manager.users.${user.name} = {
|
||||||
imports = [
|
imports = [
|
||||||
../home-manager/cli.nix
|
../home-manager/base.nix
|
||||||
./vm/home.nix
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -32,11 +32,6 @@ in
|
|||||||
allowedTCPPorts = [ 445 139 ];
|
allowedTCPPorts = [ 445 139 ];
|
||||||
allowedUDPPorts = [ 137 138 ];
|
allowedUDPPorts = [ 137 138 ];
|
||||||
};
|
};
|
||||||
# Proxy configuration
|
|
||||||
# proxy = {
|
|
||||||
# default = "http://user:password@proxy:port/";
|
|
||||||
# noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
users.users.${user.name} = {
|
users.users.${user.name} = {
|
||||||
extraGroups = [ "davfs2" ];
|
extraGroups = [ "davfs2" ];
|
||||||
@ -51,11 +46,11 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.mullvad-vpn;
|
package = pkgs.mullvad-vpn;
|
||||||
};
|
};
|
||||||
udisks2 = {
|
cage = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mountOnMedia = true;
|
program = "${pkgs.foot}/bin/foot";
|
||||||
|
user = "${user.name}";
|
||||||
};
|
};
|
||||||
# Enable automatic login for the user.
|
|
||||||
# getty.autologinUser = "${user.name}";
|
|
||||||
};
|
};
|
||||||
|
getty.autologinUser = "${user.name}";
|
||||||
}
|
}
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
# NixOS VM configuration.nix
|
|
||||||
{ config, lib, pkgs, inputs, user, ... }:
|
|
||||||
let
|
|
||||||
hostname="nixos";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
boot = {
|
|
||||||
loader.grub = {
|
|
||||||
enable = true;
|
|
||||||
device = "/dev/vda";
|
|
||||||
useOSProber = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Hardware-configuration edits
|
|
||||||
kernel.sysctl."net.ipv4.ip_forward" = 1;
|
|
||||||
|
|
||||||
# Clean /tmp at boot
|
|
||||||
tmp.cleanOnBoot = true;
|
|
||||||
};
|
|
||||||
networking = {
|
|
||||||
hostName = "${hostname}"; # Define your hostname.
|
|
||||||
firewall = {
|
|
||||||
# To disable the firewall altogether:
|
|
||||||
# enable = false;
|
|
||||||
allowedTCPPorts = [ 445 139 ];
|
|
||||||
allowedUDPPorts = [ 137 138 ];
|
|
||||||
};
|
|
||||||
# Proxy configuration
|
|
||||||
# proxy = {
|
|
||||||
# default = "http://user:password@proxy:port/";
|
|
||||||
# noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
users.users.${user.name} = {
|
|
||||||
extraGroups = [
|
|
||||||
];
|
|
||||||
packages = with pkgs; [
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
# Enable automatic login for the user.
|
|
||||||
getty.autologinUser = "${user.name}";
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,123 +0,0 @@
|
|||||||
# Buckwheat configuration.nix
|
|
||||||
{ config, lib, pkgs, inputs, user, ... }:
|
|
||||||
let
|
|
||||||
hostname="buckwheat";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
boot = {
|
|
||||||
loader = {
|
|
||||||
systemd-boot = {
|
|
||||||
enable = true;
|
|
||||||
configurationLimit = 10;
|
|
||||||
};
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
efi.efiSysMountPoint = "/boot/efi";
|
|
||||||
timeout = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Hardware-configuration edits
|
|
||||||
kernel.sysctl."net.ipv4.ip_forward" = 1;
|
|
||||||
|
|
||||||
# Clean /tmp at boot
|
|
||||||
tmp.cleanOnBoot = true;
|
|
||||||
};
|
|
||||||
networking = {
|
|
||||||
hostName = "${hostname}"; # Define your hostname.
|
|
||||||
firewall = {
|
|
||||||
# To disable the firewall altogether:
|
|
||||||
# enable = false;
|
|
||||||
allowedTCPPorts = [ 445 139 ];
|
|
||||||
allowedUDPPorts = [ 137 138 ];
|
|
||||||
};
|
|
||||||
# Proxy configuration
|
|
||||||
# proxy = {
|
|
||||||
# default = "http://user:password@proxy:port/";
|
|
||||||
# noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
users.users.${user.name} = {
|
|
||||||
extraGroups = [ "davfs2" "libvirtd" "transmission" ];
|
|
||||||
packages = with pkgs; [
|
|
||||||
mixxx
|
|
||||||
virt-manager
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
davfs2 = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
mullvad-vpn = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.mullvad-vpn;
|
|
||||||
};
|
|
||||||
transmission = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
udisks2 = {
|
|
||||||
enable = true;
|
|
||||||
mountOnMedia = true;
|
|
||||||
};
|
|
||||||
# Enable automatic login for the user.
|
|
||||||
# getty.autologinUser = "${user.name}";
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
|
|
||||||
# Borg backup configuration
|
|
||||||
services.borgbackup.jobs."daily" = {
|
|
||||||
paths = [
|
|
||||||
"/home"
|
|
||||||
];
|
|
||||||
exclude = [
|
|
||||||
"/home/*/go/bin"
|
|
||||||
"/home/*/go/pkg"
|
|
||||||
];
|
|
||||||
repo = "/mnt/daily/buckwheat";
|
|
||||||
encryption = {
|
|
||||||
mode = "repokey-blake2";
|
|
||||||
passCommand = "cat /root/borgbackup/passphrase";
|
|
||||||
};
|
|
||||||
compression = "auto,lzma";
|
|
||||||
startAt = "daily";
|
|
||||||
prune.keep = {
|
|
||||||
within = "7d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.borgbackup.jobs."weekly" = {
|
|
||||||
paths = [
|
|
||||||
"/home"
|
|
||||||
];
|
|
||||||
exclude = [
|
|
||||||
"/home/*/go/bin"
|
|
||||||
"/home/*/go/pkg"
|
|
||||||
];
|
|
||||||
repo = "/mnt/weekly/buckwheat";
|
|
||||||
encryption = {
|
|
||||||
mode = "repokey-blake2";
|
|
||||||
passCommand = "cat /root/borgbackup/passphrase";
|
|
||||||
};
|
|
||||||
compression = "auto,lzma";
|
|
||||||
startAt = "weekly";
|
|
||||||
};
|
|
||||||
#services.borgbackup.jobs."borgbase" = {
|
|
||||||
# paths = [
|
|
||||||
# "/home"
|
|
||||||
# ];
|
|
||||||
# exclude = [
|
|
||||||
# "/home/*/go/bin"
|
|
||||||
# "/home/*/go/pkg"
|
|
||||||
# ];
|
|
||||||
# repo = "<repo_hash>.repo.borgbase.com:repo";
|
|
||||||
# encryption = {
|
|
||||||
# mode = "repokey-blake2";
|
|
||||||
# passCommand = "cat /root/borgbackup/passphrase";
|
|
||||||
# };
|
|
||||||
# environment.BORG_RSH = "ssh -i /root/borgbackup/ssh_key";
|
|
||||||
# compression = "auto,lzma";
|
|
||||||
# startAt = "daily";
|
|
||||||
#};
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
# NixOS VM home.nix
|
|
||||||
{ config, lib, pkgs, inputs, user, ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
};
|
|
||||||
}
|
|
20
justfile
Normal file
20
justfile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
recipe-name:
|
||||||
|
grep "description" "./flake.nix"
|
||||||
|
|
||||||
|
default:
|
||||||
|
just --list
|
||||||
|
|
||||||
|
debug:
|
||||||
|
nixos-rebuild switch --flake . --use-remote-sudo --show-trace --verbose
|
||||||
|
|
||||||
|
test:
|
||||||
|
nixos-rebuild test --flake ".#$(hostname)" --use-remote-sudo
|
||||||
|
|
||||||
|
switch:
|
||||||
|
nixos-rebuild switch --flake ".#$(hostname)" --use-remote-sudo
|
||||||
|
|
||||||
|
update:
|
||||||
|
nixos-rebuild switch --flake --update-input nixpkgs ".#$(hostname)"
|
||||||
|
|
||||||
|
todo:
|
||||||
|
nb todos/
|
@ -18,10 +18,11 @@
|
|||||||
keep-derivations = true
|
keep-derivations = true
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
boot = {
|
||||||
|
tmp.cleanOnBoot = true;
|
||||||
|
};
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
time.timeZone = "America/Los_Angeles";
|
time.timeZone = "America/Los_Angeles";
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
@ -68,8 +69,8 @@
|
|||||||
extraGroups = [ "networkmanager" "wheel" ];
|
extraGroups = [ "networkmanager" "wheel" ];
|
||||||
initialPassword = "hunter2";
|
initialPassword = "hunter2";
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
bottom
|
||||||
eva
|
eva
|
||||||
gotop
|
|
||||||
links2
|
links2
|
||||||
nix-du
|
nix-du
|
||||||
nmap
|
nmap
|
||||||
@ -111,17 +112,16 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
system = {
|
system = {
|
||||||
#autoUpgrade = {
|
autoUpgrade = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# allowReboot = false;
|
allowReboot = false;
|
||||||
# channel = "https://channels.nixos.org/nixos-unstable";
|
flake = "https://git.sdf.org/${user.long}/confix.git";
|
||||||
# flake = "<git repo url>";
|
flags = [
|
||||||
# flags = [
|
"--update-input"
|
||||||
# "--update-input"
|
"nixpkgs"
|
||||||
# "nixpkgs"
|
"--commit-lockfile"
|
||||||
# "--commit-lockfile"
|
];
|
||||||
# ];
|
};
|
||||||
#};
|
|
||||||
stateVersion = "22.11";
|
stateVersion = "22.11";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
environment = {
|
environment = {
|
||||||
localBinInPath = true;
|
localBinInPath = true;
|
||||||
variables = {
|
variables = {
|
||||||
GOPROXY = "direct";
|
|
||||||
#MAILRC="$XDG_CONFIG_HOME/mail/mailrc"
|
#MAILRC="$XDG_CONFIG_HOME/mail/mailrc"
|
||||||
#allowing environmental variable is needed for a mosh connection
|
#allowing environmental variable is needed for a mosh connection
|
||||||
LC_CTYPE = "en_US.UTF-8";
|
LC_CTYPE = "en_US.UTF-8";
|
||||||
@ -87,7 +86,6 @@
|
|||||||
ffmpeg
|
ffmpeg
|
||||||
fq
|
fq
|
||||||
fx
|
fx
|
||||||
gitui
|
|
||||||
glow
|
glow
|
||||||
gpg-tui
|
gpg-tui
|
||||||
gping
|
gping
|
||||||
@ -105,6 +103,7 @@
|
|||||||
john
|
john
|
||||||
jq
|
jq
|
||||||
killall
|
killall
|
||||||
|
lavat
|
||||||
lynis
|
lynis
|
||||||
mdp
|
mdp
|
||||||
mediainfo
|
mediainfo
|
||||||
@ -114,6 +113,7 @@
|
|||||||
oed
|
oed
|
||||||
pdfgrep
|
pdfgrep
|
||||||
phetch
|
phetch
|
||||||
|
pinentry
|
||||||
profanity
|
profanity
|
||||||
recutils
|
recutils
|
||||||
senpai
|
senpai
|
||||||
@ -123,7 +123,7 @@
|
|||||||
ssss
|
ssss
|
||||||
surfraw
|
surfraw
|
||||||
tmux-xpanes
|
tmux-xpanes
|
||||||
tut
|
toot
|
||||||
unrar
|
unrar
|
||||||
unzip
|
unzip
|
||||||
up
|
up
|
||||||
@ -132,5 +132,6 @@
|
|||||||
yank
|
yank
|
||||||
yq-go
|
yq-go
|
||||||
yt-dlp
|
yt-dlp
|
||||||
|
zoxide
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
17
nixos/collections/dev.nix
Normal file
17
nixos/collections/dev.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Software Development Packages
|
||||||
|
{ config, lib, pkgs, user, ... }:
|
||||||
|
{
|
||||||
|
environment = {
|
||||||
|
variables = {
|
||||||
|
GOPROXY = "direct";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
users.users.${user.name}.packages = with pkgs; [
|
||||||
|
cargo
|
||||||
|
gitui
|
||||||
|
go
|
||||||
|
just
|
||||||
|
lazygit
|
||||||
|
rustc
|
||||||
|
];
|
||||||
|
}
|
@ -7,6 +7,7 @@
|
|||||||
#obsidian
|
#obsidian
|
||||||
pandoc
|
pandoc
|
||||||
pdftk
|
pdftk
|
||||||
|
qcal
|
||||||
#sc-im
|
#sc-im
|
||||||
thunderbird
|
thunderbird
|
||||||
];
|
];
|
@ -6,6 +6,7 @@
|
|||||||
};
|
};
|
||||||
users.users.${user.name}.packages = with pkgs; [
|
users.users.${user.name}.packages = with pkgs; [
|
||||||
burpsuite
|
burpsuite
|
||||||
|
httpie
|
||||||
metasploit
|
metasploit
|
||||||
nikto
|
nikto
|
||||||
sherlock
|
sherlock
|
@ -44,7 +44,9 @@
|
|||||||
};
|
};
|
||||||
users.users.${user.name}.packages = with pkgs; [
|
users.users.${user.name}.packages = with pkgs; [
|
||||||
ani-cli
|
ani-cli
|
||||||
|
bitwarden
|
||||||
glib
|
glib
|
||||||
|
gparted
|
||||||
lagrange
|
lagrange
|
||||||
librewolf
|
librewolf
|
||||||
mangal
|
mangal
|
||||||
@ -53,6 +55,7 @@
|
|||||||
mupdf
|
mupdf
|
||||||
#onionshare-gui
|
#onionshare-gui
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
simplex-chat-desktop
|
||||||
tor-browser-bundle-bin
|
tor-browser-bundle-bin
|
||||||
#urlview
|
#urlview
|
||||||
ytfzf
|
ytfzf
|
||||||
|
@ -22,27 +22,27 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs = {
|
services = {
|
||||||
river = {
|
seatd.enable = true;
|
||||||
enable = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
bemenu
|
|
||||||
bemoji
|
|
||||||
cliphist
|
|
||||||
foot
|
|
||||||
grimblast
|
|
||||||
imv
|
|
||||||
mako
|
|
||||||
swaylock
|
|
||||||
swww
|
|
||||||
tessen
|
|
||||||
way-displays
|
|
||||||
wl-clipboard
|
|
||||||
wtype
|
|
||||||
];
|
|
||||||
};
|
|
||||||
xwayland = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bemenu
|
||||||
|
bemoji
|
||||||
|
cliphist
|
||||||
|
grim
|
||||||
|
foot
|
||||||
|
imv
|
||||||
|
kanshi
|
||||||
|
mako
|
||||||
|
pinentry-bemenu
|
||||||
|
slurp
|
||||||
|
swappy
|
||||||
|
swaylock
|
||||||
|
swww
|
||||||
|
tessen
|
||||||
|
waybar
|
||||||
|
wf-recorder
|
||||||
|
wl-clipboard
|
||||||
|
wtype
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
44
todo.md
44
todo.md
@ -1,44 +0,0 @@
|
|||||||
- [ ] Create additional host configurations
|
|
||||||
- [ ] Implement the Impermanence module
|
|
||||||
- [Erase your darlings](https://grahamc.com/blog/erase-your-darlings/)
|
|
||||||
- [tmpfs as home](https://elis.nu/blog/2020/06/nixos-tmpfs-as-home/)
|
|
||||||
- [tmpfs as root](https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/)
|
|
||||||
- [Impermanence - NixOS Wiki](https://nixos.wiki/wiki/Impermanence)
|
|
||||||
- [ ] Implement [Agenix](https://nixos.wiki/wiki/Agenix) or Sopsnix
|
|
||||||
- [Agenix Git Repo](https://github.com/ryantm/agenix)
|
|
||||||
- [Homeage Git Repo](https://github.com/jordanisaacs/homeage)
|
|
||||||
- [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/)
|
|
||||||
- [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU)
|
|
||||||
- [ ] Implement [Stylix](https://danth.github.io/stylix/)
|
|
||||||
- [ ] Implement [MicroVM.nix](https://github.com/astro/microvm.nix)
|
|
||||||
- [ ] Figure out urlview and yank conflict with tmux plugins
|
|
||||||
- [ ] Implement [Nix-Colors](https://youtube.com/watch?v=jO2o0IN0LPE)
|
|
||||||
- [ ] Fix autoupdate with remote flake repo
|
|
||||||
- [ ] Wayland monitors swap positions after turning off and turning back on
|
|
||||||
- [ ] GPG unlock prompt not happening on Wayland anymore
|
|
||||||
|
|
||||||
|
|
||||||
https://github.com/alex-courtis/way-displays
|
|
||||||
|
|
||||||
Configure
|
|
||||||
|
|
||||||
Restart the compositor and run way-displays -g or look at /tmp/way-displays.1.me.log.
|
|
||||||
|
|
||||||
Tweak cfg.yaml to your liking and save it. Changes will be immediately applied.
|
|
||||||
|
|
||||||
Alternatively, use the command line to make your changes then persist them with way-displays -w.
|
|
||||||
|
|
||||||
You might want to tail -f /tmp/way-displays.1.me.log whilst you are tweaking.
|
|
||||||
Usage
|
|
||||||
|
|
||||||
See Configuration for details on cfg.yaml and the command line.
|
|
||||||
|
|
||||||
Start the way-displays server by running once with no arguments after your wayland compositor has been started.
|
|
||||||
|
|
||||||
It will remain in the background, responding to changes, such as plugging in a display, and will terminate when you exit the compositor.
|
|
||||||
|
|
||||||
It will print messages to inform you of everything that is going on.
|
|
||||||
|
|
||||||
You can interact with the server via the command line
|
|
||||||
|
|
||||||
The server responds to IPC requests to fetch and mutate state.
|
|
10
todos/.index
Normal file
10
todos/.index
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
20240114220929.todo.md
|
||||||
|
20240114221107.todo.md
|
||||||
|
20240114221315.todo.md
|
||||||
|
20240114221429.todo.md
|
||||||
|
20240114221545.todo.md
|
||||||
|
20240115092910.todo.md
|
||||||
|
20240115093320.todo.md
|
||||||
|
20240115093833.todo.md
|
||||||
|
20240116194420.todo.md
|
||||||
|
20240120104042.todo.md
|
1
todos/20240114220929.todo.md
Normal file
1
todos/20240114220929.todo.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# [ ] GPG unlock GUI prompt not happening on Wayland anymore
|
26
todos/20240114221107.todo.md
Normal file
26
todos/20240114221107.todo.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# [x] Wayland monitors swap positions after turning off and turning back on
|
||||||
|
Kanshi may be the solution (https://github.com/emersion/kanshi)
|
||||||
|
https://github.com/alex-courtis/way-displays
|
||||||
|
|
||||||
|
Configure
|
||||||
|
|
||||||
|
Restart the compositor and run way-displays -g or look at /tmp/way-displays.1.me.log.
|
||||||
|
|
||||||
|
Tweak cfg.yaml to your liking and save it. Changes will be immediately applied.
|
||||||
|
|
||||||
|
Alternatively, use the command line to make your changes then persist them with way-displays -w.
|
||||||
|
|
||||||
|
You might want to tail -f /tmp/way-displays.1.me.log whilst you are tweaking.
|
||||||
|
Usage
|
||||||
|
|
||||||
|
See Configuration for details on cfg.yaml and the command line.
|
||||||
|
|
||||||
|
Start the way-displays server by running once with no arguments after your wayland compositor has been started.
|
||||||
|
|
||||||
|
It will remain in the background, responding to changes, such as plugging in a display, and will terminate when you exit the compositor.
|
||||||
|
|
||||||
|
It will print messages to inform you of everything that is going on.
|
||||||
|
|
||||||
|
You can interact with the server via the command line
|
||||||
|
|
||||||
|
The server responds to IPC requests to fetch and mutate state.
|
2
todos/20240114221315.todo.md
Normal file
2
todos/20240114221315.todo.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# [ ] Implement MicroVM.nix
|
||||||
|
https://github.com/astro/microvm.nix
|
9
todos/20240114221429.todo.md
Normal file
9
todos/20240114221429.todo.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# [ ] Implement Agenix or Sopsnix
|
||||||
|
- [Agenix](https://nixos.wiki/wiki/Agenix)
|
||||||
|
- Sopsnix
|
||||||
|
- [Agenix Git Repo](https://github.com/ryantm/agenix)
|
||||||
|
- [Homeage Git Repo](https://github.com/jordanisaacs/homeage)
|
||||||
|
- [Handling Secrets in NixOS](https://lgug2z.com/articles/handling-secrets-in-nixos-an-overview/)
|
||||||
|
- [NixOS Secrets Management](https://onion.tube/watch?v=G5f6GC7SnhU)
|
||||||
|
- https://www.youtube.com/watch?v=G5f6GC7SnhU
|
||||||
|
- This is needed for borg backup key
|
5
todos/20240114221545.todo.md
Normal file
5
todos/20240114221545.todo.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# [ ] Implement the Impermance module
|
||||||
|
- [Erase your darlings](https://grahamc.com/blog/erase-your-darlings/)
|
||||||
|
- [tmpfs as home](https://elis.nu/blog/2020/06/nixos-tmpfs-as-home/)
|
||||||
|
- [tmpfs as root](https://elis.nu/blog/2020/05/nixos-tmpfs-as-root/)
|
||||||
|
- [Impermanence - NixOS Wiki](https://nixos.wiki/wiki/Impermanence)
|
2
todos/20240115092910.todo.md
Normal file
2
todos/20240115092910.todo.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# [ ] Switch from librewolf to a declared firefox install
|
||||||
|
Follow this video tutorial https://youtube.com/watch?v=GaM_paeX7TI
|
13
todos/20240115093320.todo.md
Normal file
13
todos/20240115093320.todo.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# [ ] Implement flake-parts
|
||||||
|
|
||||||
|
# Flake Parts Information
|
||||||
|
https://github.com/hercules-ci/flake-parts
|
||||||
|
https://git.forge.nihilum.space/~yushyin/nurpkgs-yushyin/tree/master
|
||||||
|
|
||||||
|
# General Flake Information
|
||||||
|
https://dev.to/misterio/how-to-package-a-rust-app-using-nix-3lh3
|
||||||
|
https://srid.ca/rust-nix
|
||||||
|
https://www.youtube.com/watch?v=IdHbRGB-yXI
|
||||||
|
https://onion.tube/watch?v=a67Sv4Mbxmc
|
||||||
|
https://onion.tube/watch?v=4ZoBGlkMPWI
|
||||||
|
https://onion.tube/watch?v=WT75jfETWRg
|
3
todos/20240115093833.todo.md
Normal file
3
todos/20240115093833.todo.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# [ ] Figure out cron jobs or systemd timers
|
||||||
|
|
||||||
|
https://nixos.wiki/wiki/Cron
|
12
todos/20240116194420.todo.md
Normal file
12
todos/20240116194420.todo.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# [ ] Web Services
|
||||||
|
|
||||||
|
soju/senpai
|
||||||
|
soundcloud
|
||||||
|
bitwarden
|
||||||
|
searx
|
||||||
|
miniflux
|
||||||
|
ssh
|
||||||
|
http
|
||||||
|
gemini
|
||||||
|
gopher
|
||||||
|
|
1
todos/20240120104042.todo.md
Normal file
1
todos/20240120104042.todo.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# [ ] Figure out how to use Perl and Perl modules with NixOS
|
Loading…
Reference in New Issue
Block a user