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
|
||||
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": {
|
||||
"locked": {
|
||||
"lastModified": 1703013332,
|
||||
"narHash": "sha256-+tFNwMvlXLbJZXiMHqYq77z/RfmpfpiI3yjL6o/Zo9M=",
|
||||
"lastModified": 1707092692,
|
||||
"narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "54aac082a4d9bb5bbc5c4e899603abfb76a3f6d6",
|
||||
"rev": "faf912b086576fd1a15fca610166c98d47bc667e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -10,7 +10,7 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
outputs = inputs @ { self, nixpkgs, home-manager }:
|
||||
outputs = { nixpkgs, home-manager, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
user = {
|
||||
|
@ -14,20 +14,6 @@
|
||||
dataHome = "${config.home.homeDirectory}/.local/share";
|
||||
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 = {
|
||||
enable = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
@ -51,20 +37,6 @@
|
||||
defaultEditor = true;
|
||||
viAlias = 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 = {
|
||||
enable = true;
|
||||
@ -85,60 +57,6 @@
|
||||
newSession = false;
|
||||
prefix = "C-b";
|
||||
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";
|
||||
}
|
||||
|
@ -3,6 +3,8 @@
|
||||
{
|
||||
imports = [
|
||||
./base.nix
|
||||
./dots/tmux.nix
|
||||
./dots/bash.nix
|
||||
];
|
||||
home.shellAliases = {
|
||||
wget = "wget --hsts-file=${config.xdg.configHome}/wget-hsts";
|
||||
@ -51,16 +53,27 @@
|
||||
};
|
||||
neovim = {
|
||||
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; [
|
||||
dracula-nvim
|
||||
goyo-vim
|
||||
limelight-vim
|
||||
twilight-nvim
|
||||
vim-numbertoggle
|
||||
vim-nix
|
||||
vimwiki
|
||||
zen-mode-nvim
|
||||
];
|
||||
};
|
||||
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 = [
|
||||
./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 = {
|
||||
systemDirs.data = [
|
||||
"/var/lib/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 = [
|
||||
./gui.nix
|
||||
./dots/foot.nix
|
||||
./dots/mako.nix
|
||||
./dots/river.nix
|
||||
./dots/swappy.nix
|
||||
./dots/swaylock.nix
|
||||
./dots/waybar.nix
|
||||
];
|
||||
xdg.configFile = {
|
||||
"foot" = {
|
||||
source = ./dots/foot;
|
||||
target = "foot";
|
||||
recursive = true;
|
||||
};
|
||||
"mako" = {
|
||||
source = ./dots/mako;
|
||||
target = "mako";
|
||||
recursive = true;
|
||||
};
|
||||
"river" = {
|
||||
source = ./dots/river;
|
||||
target = "river";
|
||||
recursive = true;
|
||||
};
|
||||
"swaylock" = {
|
||||
source = ./dots/swaylock;
|
||||
target = "swaylock";
|
||||
recursive = true;
|
||||
};
|
||||
"way-displays" = {
|
||||
source = ./dots/way-displays;
|
||||
target = "way-displays";
|
||||
recursive = true;
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
default = {
|
||||
outputs = [
|
||||
{
|
||||
criteria = "DP-1";
|
||||
position = "0,0";
|
||||
mode = "2560x1440@164.99Hz";
|
||||
}
|
||||
{
|
||||
criteria = "DP-2";
|
||||
position = "2560,0";
|
||||
mode = "2560x1440@164.99Hz";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -33,7 +33,7 @@
|
||||
};
|
||||
home.file = {
|
||||
"xinitrc" = {
|
||||
source = ./dots/xinitrc;
|
||||
source = ./dots/xorg/xinitrc;
|
||||
target = ".xinitrc";
|
||||
};
|
||||
};
|
||||
@ -66,12 +66,12 @@
|
||||
};
|
||||
xdg.configFile = {
|
||||
"dunst" = {
|
||||
source = ./dots/dunst;
|
||||
source = ./dots/xorg/dunst;
|
||||
target = "dunst";
|
||||
recursive = true;
|
||||
};
|
||||
"sxhkd" = {
|
||||
source = ./dots/sxhkd;
|
||||
source = ./dots/xorg/sxhkd;
|
||||
target = "sxhkd";
|
||||
recursive = 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";
|
||||
timeout = 2;
|
||||
};
|
||||
tmp.cleanOnBoot = true;
|
||||
};
|
||||
networking = {
|
||||
hostName = "${hostname}";
|
||||
@ -73,12 +72,15 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
programs.virt-manager.enable = true;
|
||||
programs = {
|
||||
virt-manager.enable = true;
|
||||
river.enable = true;
|
||||
};
|
||||
users.users.${user.name} = {
|
||||
extraGroups = [ "davfs2" "libvirtd" "transmission" ];
|
||||
packages = with pkgs; [
|
||||
mixxx
|
||||
polychromatic
|
||||
python311Packages.eyeD3
|
||||
tagutil
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -1,24 +1,6 @@
|
||||
# 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"
|
||||
];
|
||||
};
|
||||
};
|
||||
services = {
|
||||
udiskie = {
|
||||
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; };
|
||||
modules = [
|
||||
../nixos/wayland.nix
|
||||
../nixos/gaming.nix
|
||||
../nixos/office.nix
|
||||
../nixos/collections/dev.nix
|
||||
../nixos/collections/gaming.nix
|
||||
../nixos/collections/office.nix
|
||||
./buckwheat/configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit user; };
|
||||
home-manager.extraSpecialArgs = { inherit user inputs; };
|
||||
home-manager.users.${user.name} = {
|
||||
imports = [
|
||||
../home-manager/wayland.nix
|
||||
@ -26,9 +27,9 @@
|
||||
inherit system;
|
||||
specialArgs = { inherit user inputs; };
|
||||
modules = [
|
||||
../nixos/xorg.nix
|
||||
../nixos/office.nix
|
||||
../nixos/pentest.nix
|
||||
../nixos/wayland.nix
|
||||
../nixos/collections/office.nix
|
||||
../nixos/collections/pentest.nix
|
||||
./fireweed/configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
@ -36,27 +37,26 @@
|
||||
home-manager.extraSpecialArgs = { inherit user; };
|
||||
home-manager.users.${user.name} = {
|
||||
imports = [
|
||||
../home-manager/xorg.nix
|
||||
../home-manager/wayland.nix
|
||||
./fireweed/home.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
vm = lib.nixosSystem {
|
||||
base = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit user inputs; };
|
||||
modules = [
|
||||
../nixos/cli.nix
|
||||
./vm/configuration.nix
|
||||
../nixos/base.nix
|
||||
./base/configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit user; };
|
||||
home-manager.users.${user.name} = {
|
||||
imports = [
|
||||
../home-manager/cli.nix
|
||||
./vm/home.nix
|
||||
../home-manager/base.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -32,11 +32,6 @@ in
|
||||
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" ];
|
||||
@ -51,11 +46,11 @@ in
|
||||
enable = true;
|
||||
package = pkgs.mullvad-vpn;
|
||||
};
|
||||
udisks2 = {
|
||||
cage = {
|
||||
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
|
||||
'';
|
||||
};
|
||||
boot = {
|
||||
tmp.cleanOnBoot = true;
|
||||
};
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
@ -68,8 +69,8 @@
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
initialPassword = "hunter2";
|
||||
packages = with pkgs; [
|
||||
bottom
|
||||
eva
|
||||
gotop
|
||||
links2
|
||||
nix-du
|
||||
nmap
|
||||
@ -111,17 +112,16 @@
|
||||
];
|
||||
};
|
||||
system = {
|
||||
#autoUpgrade = {
|
||||
# enable = true;
|
||||
# allowReboot = false;
|
||||
# channel = "https://channels.nixos.org/nixos-unstable";
|
||||
# flake = "<git repo url>";
|
||||
# flags = [
|
||||
# "--update-input"
|
||||
# "nixpkgs"
|
||||
# "--commit-lockfile"
|
||||
# ];
|
||||
#};
|
||||
autoUpgrade = {
|
||||
enable = true;
|
||||
allowReboot = false;
|
||||
flake = "https://git.sdf.org/${user.long}/confix.git";
|
||||
flags = [
|
||||
"--update-input"
|
||||
"nixpkgs"
|
||||
"--commit-lockfile"
|
||||
];
|
||||
};
|
||||
stateVersion = "22.11";
|
||||
};
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
environment = {
|
||||
localBinInPath = true;
|
||||
variables = {
|
||||
GOPROXY = "direct";
|
||||
#MAILRC="$XDG_CONFIG_HOME/mail/mailrc"
|
||||
#allowing environmental variable is needed for a mosh connection
|
||||
LC_CTYPE = "en_US.UTF-8";
|
||||
@ -87,7 +86,6 @@
|
||||
ffmpeg
|
||||
fq
|
||||
fx
|
||||
gitui
|
||||
glow
|
||||
gpg-tui
|
||||
gping
|
||||
@ -105,6 +103,7 @@
|
||||
john
|
||||
jq
|
||||
killall
|
||||
lavat
|
||||
lynis
|
||||
mdp
|
||||
mediainfo
|
||||
@ -114,6 +113,7 @@
|
||||
oed
|
||||
pdfgrep
|
||||
phetch
|
||||
pinentry
|
||||
profanity
|
||||
recutils
|
||||
senpai
|
||||
@ -123,7 +123,7 @@
|
||||
ssss
|
||||
surfraw
|
||||
tmux-xpanes
|
||||
tut
|
||||
toot
|
||||
unrar
|
||||
unzip
|
||||
up
|
||||
@ -132,5 +132,6 @@
|
||||
yank
|
||||
yq-go
|
||||
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
|
||||
pandoc
|
||||
pdftk
|
||||
qcal
|
||||
#sc-im
|
||||
thunderbird
|
||||
];
|
@ -6,6 +6,7 @@
|
||||
};
|
||||
users.users.${user.name}.packages = with pkgs; [
|
||||
burpsuite
|
||||
httpie
|
||||
metasploit
|
||||
nikto
|
||||
sherlock
|
@ -44,7 +44,9 @@
|
||||
};
|
||||
users.users.${user.name}.packages = with pkgs; [
|
||||
ani-cli
|
||||
bitwarden
|
||||
glib
|
||||
gparted
|
||||
lagrange
|
||||
librewolf
|
||||
mangal
|
||||
@ -53,6 +55,7 @@
|
||||
mupdf
|
||||
#onionshare-gui
|
||||
signal-desktop
|
||||
simplex-chat-desktop
|
||||
tor-browser-bundle-bin
|
||||
#urlview
|
||||
ytfzf
|
||||
|
@ -22,27 +22,27 @@
|
||||
];
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
river = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
bemenu
|
||||
bemoji
|
||||
cliphist
|
||||
foot
|
||||
grimblast
|
||||
imv
|
||||
mako
|
||||
swaylock
|
||||
swww
|
||||
tessen
|
||||
way-displays
|
||||
wl-clipboard
|
||||
wtype
|
||||
];
|
||||
};
|
||||
xwayland = {
|
||||
enable = true;
|
||||
};
|
||||
services = {
|
||||
seatd.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