Compare commits

...

26 Commits

Author SHA1 Message Date
66f7c95451 Removed river-bsp-layout flake addition for Wayland merge and push. I will create a new branch for flake package integrations 2024-01-13 09:40:27 -08:00
6f9bdb39af Changed xdg portal to xdg-desktop-portal-wlr 2024-01-12 22:15:01 -08:00
c11bd2e632 Removed cage, sticking with river for my compositor. Added some vim plugins, made various QoL changes, and added auto-start gui applications to river/init 2024-01-12 21:49:00 -08:00
46fa1c4aac Customized waybar config, removed it from autostarting, and added cava config to home-manager/dots 2024-01-11 19:45:23 -08:00
d923ec387f Installing cage and cagebreak for testing 2024-01-11 07:11:37 -08:00
48f6cf3aed Testing Vimjoyer's lf configuration 2024-01-10 20:47:29 -08:00
2817659814 Made QOL improvements to river hotkeys 2024-01-10 20:03:06 -08:00
368b81ae39 Cleaned up now_playing script output and included a check for if cmus is playing 2024-01-10 18:51:22 -08:00
e5b9b32e4d Created a now_playing script for waybar to show currently playing song in cmus 2024-01-10 18:38:06 -08:00
7ccc5cdc19 Removed tmux session autostart section from bash_login, seemed to be causing issues. 2024-01-10 17:58:40 -08:00
fda84ea5ee Added river autostart to bash_login 2024-01-10 17:54:48 -08:00
c17465ed1e Added xwayland, swaylock configuration, waybar configuration, and river configuration. Moved some wayland packages from environment to user installation. 2024-01-10 17:52:10 -08:00
cc20358391 Hyprland kept crashing and DWL wouldn't patch with Nix, error stated that tags was not declared, yet I didn't edit anything declaring tags in the config.h. Removed those two compositors and installed and configure river. 2024-01-09 20:50:35 -08:00
b1659e6633 Swapped out dunst for mako. I think dunst was only working because X was still installed, I thought it was wayland compatible. 2024-01-08 20:13:13 -08:00
61f1237ec2 Added missing gui.nix imports to home-manager/wayland.nix and home-manager/xorg.nix. Added the eww-wayland package. 2024-01-08 19:22:06 -08:00
3880f0e2b7 Split home-manager gui config between Wayland and Xorg dedicated nix files. Added the ytfzf package to nixos/gui.nix. 2024-01-08 19:10:48 -08:00
80b40728b7 Split xorg and wayland configuration into respective nix files 2024-01-08 07:36:26 -08:00
9e9165cb4e Finalized initial wayland configuration using Hyprland and Bemenu. Found replacment tools for ones used with bspwm and dmenu. 2024-01-07 19:13:29 -08:00
f305aad88b Fixed typo with hyprland enable 2024-01-06 09:31:46 -08:00
65dba09e3d Enabled hyprland window manager in nixos/gui.nix 2024-01-06 09:30:39 -08:00
0306aa6381 Removed config.h patch from dwl for initial testing. 2024-01-06 09:21:03 -08:00
d36ca7fab1 Added dwl, foot, and bemenu to start wayland implementation journey. Commented out startx autostart in bash_login. 2024-01-06 09:14:55 -08:00
eb11ec0726 Added senpai configuration to home-manager/chat.nix, moved catgirl configuration to home-manager/chat.nix, and added sic package to nixos/chat.nix 2024-01-05 21:52:21 -08:00
e6d13ffdf8 Added tmux-xpanes package to nixos/cli.nix 2024-01-05 19:55:40 -08:00
c003bf810a Reverted tmux and sxhkd terminal creation back to using the Return key 2024-01-04 20:36:17 -08:00
ab5cd85f72 Added senpai irc client package to nixos/chat.nix 2024-01-04 06:58:59 -08:00
31 changed files with 1440 additions and 158 deletions

View File

@ -36,10 +36,28 @@
"type": "github"
}
},
"river-bsp-layout": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1,
"narHash": "sha256-9l80YSyV6CEKAJVnJ3LoUc88O/M0b9wKbj0mMGmL6gI=",
"path": "./packages/river-bsp-layout",
"type": "path"
},
"original": {
"path": "./packages/river-bsp-layout",
"type": "path"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs",
"river-bsp-layout": "river-bsp-layout"
}
}
},

View File

@ -59,15 +59,74 @@
set relativenumber
set splitbelow
set splitright
set tabstop=2
set shiftwidth=2
set tabstop=4
set shiftwidth=4
if filereadable(expand(".vim-project"))
source .vim-project
endif
'';
};
xdg.configFile."lf/icons".source = ./dots/icons;
programs.lf = {
enable = true;
commands = {
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"'';
editor-open = ''$$EDITOR $f'';
mkdir = ''
''${{
printf "Directory Name: "
read DIR
mkdir $DIR
}}
'';
};
keybindings = {
"\\\"" = "";
o = "";
c = "mkdir";
"." = "set hidden!";
"`" = "mark-load";
"\\'" = "mark-load";
"<enter>" = "open";
do = "dragon-out";
"g~" = "cd";
gh = "cd";
"g/" = "/";
ee = "editor-open";
V = ''''$${pkgs.bat}/bin/bat --paging=always "$f"'';
};
settings = {
preview = true;
hidden = true;
drawbox = true;
icons = true;
ignorecase = true;
};
extraConfig =
let
previewer =
pkgs.writeShellScriptBin "pv.sh" ''
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
${pkgs.pistol}/bin/pistol "$file"
'';
cleaner = pkgs.writeShellScriptBin "clean.sh" ''
${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file </dev/null > /dev/tty
'';
in
''
set cleaner ${cleaner}/bin/clean.sh
set previewer ${previewer}/bin/pv.sh
'';
};
programs.password-store = {
enable = true;
@ -87,6 +146,7 @@
mouse = false;
newSession = false;
prefix = "C-b";
terminal = "screen-256color";
extraConfig = ''
# Do not rename windows automatically
set-option -g allow-rename off
@ -107,11 +167,11 @@
unbind v
bind v split-window -h -c "#{pane_current_path}"
unbind '"'
unbind b
bind b split-window -v -c "#{pane_current_path}"
unbind c
bind c new-window
bind c split-window -v -c "#{pane_current_path}"
unbind Enter
bind Enter new-window
unbind Tab
bind Tab last-window

16
home-manager/chat.nix Normal file
View File

@ -0,0 +1,16 @@
# Chat home.nix
{ config, lib, pkgs, inputs, user, ... }:
{
xdg.configFile = {
"catgirl" = {
source = ./dots/catgirl;
target = "catgirl";
recursive = true;
};
"senpai" = {
source = ./dots/senpai;
target = "senpai";
recursive = true;
};
};
}

View File

@ -12,9 +12,9 @@
"${config.home.homeDirectory}/.local/share/go/bin"
];
xdg.configFile = {
"catgirl" = {
source = ./dots/catgirl;
target = "catgirl";
"cava" = {
source = ./dots/cava;
target = "cava";
recursive = true;
};
};
@ -44,8 +44,10 @@
dracula-nvim
goyo-vim
limelight-vim
twilight-nvim
vim-nix
vimwiki
zen-mode-nvim
];
};
yt-dlp = {

View File

@ -1,4 +1,4 @@
[[ -f ~/.bashrc ]] && . ~/.bashrc
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then
exec startx
exec river
fi

View File

@ -1,5 +1,10 @@
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
set -o vi
unset HISTFILE
@ -7,15 +12,12 @@ unset HISTFILE
function search() {
surfraw $(surfraw -elvi | fzf | awk '{print $1;}')
}
function mkcd {
mkdir -p $1
cd $1
}
function ukr() {
read -rsp "Password: " PASS
export $(echo -n "$PASS" | gnome-keyring-daemon --replace --unlock)
unset PASS
}
# 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)
@ -25,6 +27,7 @@ function fe() {
files=$(fzf --query="$1" --multi --select-1 --exit-0)
[ -n "$files" ] && ${EDITOR} "${files}"
}
function _track() {
TRACK_DIR=${TRACK_DIR:-.}
local lis
@ -33,6 +36,7 @@ function _track() {
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W "$lis" -- "$cur") )
}
function track() {
TRACK_DIR=${TRACK_DIR:-.}
if [ $# -eq 0 ]; then
@ -99,10 +103,24 @@ function track() {
}
complete -F _track track
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# Environmental Variables
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
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"

View File

@ -0,0 +1,210 @@
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
; mode = normal
# Accepts only non-negative values.
; framerate = 60
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
; autosens = 1
; overshoot = 20
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values.
; sensitivity = 100
# The number of bars (0-200). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
; bars = 0
; bar_width = 1
; bar_spacing = 1
# bar_height is only used for output in "noritake" format
; bar_height = 32
# For SDL width and space between bars is in pixels, defaults are:
; bar_width = 20
; bar_spacing = 5
# Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified.
; lower_cutoff_freq = 50
; higher_cutoff_freq = 10000
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
; sleep_timer = 0
[input]
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
#
# All input methods uses the same config variable 'source'
# to define where it should get the audio.
#
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
#
# For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file.
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
; method = pulse
; source = auto
; method = alsa
; source = hw:Loopback,1
; method = fifo
; source = /tmp/mpd.fifo
; sample_rate = 44100
; sample_bits = 16
; method = shmem
; source = /squeezelite-AA:BB:CC:DD:EE:FF
; method = portaudio
; source = auto
[output]
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake' or 'sdl'.
# 'noncurses' uses a custom framebuffer technique and prints only changes
# from frame to frame in the terminal. 'ncurses' is default if supported.
#
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
# stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
#
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
# in graphic mode. It only support the 3000 series graphical VFDs for now.
#
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
; method = ncurses
# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'.
# Default is 'bottom'. Other orientations are only supported on sdl and ncruses
# output. Note: many fonts have weird glyphs for 'top' and 'right' characters,
# which can make ncurses not look right.
; orientation = bottom
# Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center.
# 'mono' outputs left to right lowest to highest frequencies.
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
# set 'reverse' to 1 to display frequencies the other way around.
; channels = mono
; mono_option = average
; reverse = 0
# Raw output target. A fifo will be created if target does not exist.
; raw_target = /dev/stdout
# Raw data format. Can be 'binary' or 'ascii'.
; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
; ascii_max_range = 1000
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
; bar_delimiter = 59
; frame_delimiter = 10
# sdl window size and position. -1,-1 is centered.
; sdl_width = 1000
; sdl_height = 500
; sdl_x = -1
; sdl_y= -1
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
# 'frequency' displays the lower cut off frequency of the bar above.
# Only supported on ncurses and noncurses output.
; xaxis = none
# enable alacritty synchronized updates. 1 = on, 0 = off
# removes flickering in alacritty terminal emeulator.
# defaults to off since the behaviour in other terminal emulators is unknown
; alacritty_sync = 0
[color]
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
# a terminal that can change color definitions such as Gnome-terminal or rxvt.
# default is to keep current terminal color
; background = default
; foreground = default
# SDL only support hex code colors, these are the default:
; background = '#111111'
; foreground = '#33cccc'
# Gradient mode, only hex defined colors are supported,
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
# You can define as many as 8 different colors. They range from bottom to top of screen
; gradient = 0
; gradient_count = 8
; gradient_color_1 = '#59cc33'
; gradient_color_2 = '#80cc33'
; gradient_color_3 = '#a6cc33'
; gradient_color_4 = '#cccc33'
; gradient_color_5 = '#cca633'
; gradient_color_6 = '#cc8033'
; gradient_color_7 = '#cc5933'
; gradient_color_8 = '#cc3333'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
# DEPRECATED as of 0.8.0, use noise_reduction instead
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 0
; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
# DEPRECATED as of 0.8.0, use noise_reduction instead
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
# DEPRECATED as of 0.8.0
; ignore = 0
# Noise reduction, float 0 - 1. default 0.77
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
# 1 will be very slow and smooth, 0 will be fast but noisy.
; noise_reduction = 0.77
[eq]
# This one is tricky. You can have as much keys as you want.
# Remember to uncomment more then one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples.
; 1 = 1 # bass
; 2 = 1
; 3 = 1 # midtone
; 4 = 1
; 5 = 1 # treble

View File

@ -0,0 +1,79 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform int bar_width; // bar width (configurable), not used here
uniform int bar_spacing; // space bewteen bars (configurable)
uniform vec3 u_resolution; // window resolution
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
uniform vec3 bg_color; // background color
uniform vec3 fg_color; // foreground color
uniform int gradient_count;
uniform vec3 gradient_colors[8]; // gradient colors
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
{
//create color based on fraction of this color and next color
float yr = (y - y_min) / (y_max - y_min);
return col_1 * (1.0 - yr) + col_2 * yr;
}
void main()
{
// find which bar to use based on where we are on the x axis
float x = u_resolution.x * fragCoord.x;
int bar = int(bars_count * fragCoord.x);
//calculate a bar size
float bar_size = u_resolution.x / bars_count;
//the y coordinate and bar values are the same
float y = bars[bar];
// make sure there is a thin line at bottom
if (y * u_resolution.y < 1.0)
{
y = 1.0 / u_resolution.y;
}
//draw the bar up to current height
if (y > fragCoord.y)
{
//make some space between bars basen on settings
if (x > (bar + 1) * (bar_size) - bar_spacing)
{
fragColor = vec4(bg_color,1.0);
}
else
{
if (gradient_count == 0)
{
fragColor = vec4(fg_color,1.0);
}
else
{
//find which color in the configured gradient we are at
int color = int((gradient_count - 1) * fragCoord.y);
//find where on y this and next color is supposed to be
float y_min = color / (gradient_count - 1.0);
float y_max = (color + 1.0) / (gradient_count - 1.0);
//make color
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
}
}
}
else
{
fragColor = vec4(bg_color,1.0);
}
}

View File

@ -0,0 +1,34 @@
#version 330
in vec2 fragCoord;
out vec4 fragColor;
// bar values. defaults to left channels first (low to high), then right (high to low).
uniform float bars[512];
uniform int bars_count; // number of bars (left + right) (configurable)
uniform vec3 u_resolution; // window resolution, not used here
//colors, configurable in cava config file
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
uniform vec3 fg_color; // foreground color, not used here
void main()
{
// find which bar to use based on where we are on the x axis
int bar = int(bars_count * fragCoord.x);
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
float y = (bars[bar]) * bar_y;
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
bar_r = bar_r * bar_r * 2;
// set color
fragColor.r = fg_color.x * y * bar_r;
fragColor.g = fg_color.y * y * bar_r;
fragColor.b = fg_color.z * y * bar_r;
}

View File

@ -0,0 +1,14 @@
#version 330
// Input vertex data, different for all executions of this shader.
layout(location = 0) in vec3 vertexPosition_modelspace;
// Output data ; will be interpolated for each fragment.
out vec2 fragCoord;
void main()
{
gl_Position = vec4(vertexPosition_modelspace,1);
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
}

View File

@ -0,0 +1,23 @@
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

357
home-manager/dots/icons Normal file
View File

@ -0,0 +1,357 @@
# vim:ft=conf
# These examples require Nerd Fonts or a compatible font to be used.
# See https://www.nerdfonts.com for more information.
# default values from lf (with matching order)
# ln l # LINK
# or l # ORPHAN
# tw t # STICKY_OTHER_WRITABLE
# ow d # OTHER_WRITABLE
# st t # STICKY
# di d # DIR
# pi p # FIFO
# so s # SOCK
# bd b # BLK
# cd c # CHR
# su u # SETUID
# sg g # SETGID
# ex x # EXEC
# fi - # FILE
# file types (with matching order)
ln  # LINK
or  # ORPHAN
tw t # STICKY_OTHER_WRITABLE
ow  # OTHER_WRITABLE
st t # STICKY
di  # DIR
pi p # FIFO
so s # SOCK
bd b # BLK
cd c # CHR
su u # SETUID
sg g # SETGID
ex  # EXEC
fi  # FILE
# file extensions (vim-devicons)
*.styl 
*.sass 
*.scss 
*.htm 
*.html 
*.slim 
*.haml 
*.ejs 
*.css 
*.less 
*.md 
*.mdx 
*.markdown 
*.rmd 
*.json 
*.webmanifest 
*.js 
*.mjs 
*.jsx 
*.rb 
*.gemspec 
*.rake 
*.php 
*.py 
*.pyc 
*.pyo 
*.pyd 
*.coffee 
*.mustache 
*.hbs 
*.conf 
*.ini 
*.yml 
*.yaml 
*.toml 
*.bat 
*.mk 
*.jpg 
*.jpeg 
*.bmp 
*.png 
*.webp 
*.gif 
*.ico 
*.twig 
*.cpp 
*.c++ 
*.cxx 
*.cc 
*.cp 
*.c 
*.cs 󰌛
*.h 
*.hh 
*.hpp 
*.hxx 
*.hs 
*.lhs 
*.nix 
*.lua 
*.java 
*.sh 
*.fish 
*.bash 
*.zsh 
*.ksh 
*.csh 
*.awk 
*.ps1 
*.ml λ
*.mli λ
*.diff 
*.db 
*.sql 
*.dump 
*.clj 
*.cljc 
*.cljs 
*.edn 
*.scala 
*.go 
*.dart 
*.xul 
*.sln 
*.suo 
*.pl 
*.pm 
*.t 
*.rss 
'*.f#' 
*.fsscript 
*.fsx 
*.fs 
*.fsi 
*.rs 
*.rlib 
*.d 
*.erl 
*.hrl 
*.ex 
*.exs 
*.eex 
*.leex 
*.heex 
*.vim 
*.ai 
*.psd 
*.psb 
*.ts 
*.tsx 
*.jl 
*.pp 
*.vue 
*.elm 
*.swift 
*.xcplayground 
*.tex 󰙩
*.r 󰟔
*.rproj 󰗆
*.sol 󰡪
*.pem 
# file names (vim-devicons) (case-insensitive not supported in lf)
*gruntfile.coffee 
*gruntfile.js 
*gruntfile.ls 
*gulpfile.coffee 
*gulpfile.js 
*gulpfile.ls 
*mix.lock 
*dropbox 
*.ds_store 
*.gitconfig 
*.gitignore 
*.gitattributes 
*.gitlab-ci.yml 
*.bashrc 
*.zshrc 
*.zshenv 
*.zprofile 
*.vimrc 
*.gvimrc 
*_vimrc 
*_gvimrc 
*.bashprofile 
*favicon.ico 
*license 
*node_modules 
*react.jsx 
*procfile 
*dockerfile 
*docker-compose.yml 
*rakefile 
*config.ru 
*gemfile 
*makefile 
*cmakelists.txt 
*robots.txt 󰚩
# file names (case-sensitive adaptations)
*Gruntfile.coffee 
*Gruntfile.js 
*Gruntfile.ls 
*Gulpfile.coffee 
*Gulpfile.js 
*Gulpfile.ls 
*Dropbox 
*.DS_Store 
*LICENSE 
*React.jsx 
*Procfile 
*Dockerfile 
*Docker-compose.yml 
*Rakefile 
*Gemfile 
*Makefile 
*CMakeLists.txt 
# file patterns (vim-devicons) (patterns not supported in lf)
# .*jquery.*\.js$ 
# .*angular.*\.js$ 
# .*backbone.*\.js$ 
# .*require.*\.js$ 
# .*materialize.*\.js$ 
# .*materialize.*\.css$ 
# .*mootools.*\.js$ 
# .*vimrc.* 
# Vagrantfile$ 
# file patterns (file name adaptations)
*jquery.min.js 
*angular.min.js 
*backbone.min.js 
*require.min.js 
*materialize.min.js 
*materialize.min.css 
*mootools.min.js 
*vimrc 
Vagrantfile 
# archives or compressed (extensions from dircolors defaults)
*.tar 
*.tgz 
*.arc 
*.arj 
*.taz 
*.lha 
*.lz4 
*.lzh 
*.lzma 
*.tlz 
*.txz 
*.tzo 
*.t7z 
*.zip 
*.z 
*.dz 
*.gz 
*.lrz 
*.lz 
*.lzo 
*.xz 
*.zst 
*.tzst 
*.bz2 
*.bz 
*.tbz 
*.tbz2 
*.tz 
*.deb 
*.rpm 
*.jar 
*.war 
*.ear 
*.sar 
*.rar 
*.alz 
*.ace 
*.zoo 
*.cpio 
*.7z 
*.rz 
*.cab 
*.wim 
*.swm 
*.dwm 
*.esd 
# image formats (extensions from dircolors defaults)
*.jpg 
*.jpeg 
*.mjpg 
*.mjpeg 
*.gif 
*.bmp 
*.pbm 
*.pgm 
*.ppm 
*.tga 
*.xbm 
*.xpm 
*.tif 
*.tiff 
*.png 
*.svg 
*.svgz 
*.mng 
*.pcx 
*.mov 
*.mpg 
*.mpeg 
*.m2v 
*.mkv 
*.webm 
*.ogm 
*.mp4 
*.m4v 
*.mp4v 
*.vob 
*.qt 
*.nuv 
*.wmv 
*.asf 
*.rm 
*.rmvb 
*.flc 
*.avi 
*.fli 
*.flv 
*.gl 
*.dl 
*.xcf 
*.xwd 
*.yuv 
*.cgm 
*.emf 
*.ogv 
*.ogx 
# audio formats (extensions from dircolors defaults)
*.aac 
*.au 
*.flac 
*.m4a 
*.mid 
*.midi 
*.mka 
*.mp3 
*.mpc 
*.ogg 
*.ra 
*.wav 
*.oga 
*.opus 
*.spx 
*.xspf 
# other formats
*.pdf 

View File

@ -0,0 +1,21 @@
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

158
home-manager/dots/river/init Executable file
View File

@ -0,0 +1,158 @@
#!/bin/sh
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
# documentation.
# Autostart
riverctl spawn "way-displays > /tmp/way-displays.${XDG_VTNR}.${USER}.log 2>&1"
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"
riverctl spawn "mullvad-browser"
riverctl spawn "librewolf"
riverctl spawn "thunderbird"
riverctl spawn "steam"
riverctl spawn "discord"
riverctl spawn "signal-desktop"
# Theme
riverctl background-color 0x282a36
riverctl border-color-focused 0xbd93f9
riverctl border-color-unfocused 0x282a36
# Launch Shortcuts
riverctl map normal Super Return spawn "foot iitmux"
riverctl map normal Super+Shift Return spawn "foot"
riverctl map normal Super Space spawn "iiwmenu"
# 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

View File

@ -0,0 +1,6 @@
#!/usr/bin/env sh
escape() {
printf "%s" "$1" | sed 's#\#\\#g'
}
notify-desktop "[$BUFFER] $SENDER" "$(escape "$MESSAGE")"

View File

@ -0,0 +1,6 @@
#address irc.pico.sh:6697
address ma.sdf.org:36036
tls false
nickname iiogama
password-cmd pass irc-pico
highlight

View File

@ -0,0 +1,28 @@
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

View File

@ -3,11 +3,11 @@
# program launchers
# terminal emulator
super + c
super + Return
st
# terminal emulator with tmux session menu
super + shift + c
super + shift + Return
st -e "iitmux"
# program launcher

View File

@ -0,0 +1,80 @@
# 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"

View File

@ -1,95 +1,18 @@
# GUI home.nix
{ config, lib, pkgs, inputs, user, ... }:
# GUI home.nix
{ config, lib, pkgs, inputs, user, ... }:
{
xresources.properties = {
"*.foreground" = "#f8f8f2";
"*.background" = "#282a36";
"*.color0" = "#000000";
"*.color8" = "#4d4d4d";
"*.color1" = "#ff5555";
"*.color9" = "#ff6367";
"*.color2" = "#50fa7b";
"*.color10" = "#5af78e";
"*.color3" = "#f1fa8c";
"*.color11" = "#f4f99d";
"*.color4" = "#bd93f9";
"*.color12" = "#caa9fa";
"*.color5" = "#ff79c6";
"*.color13" = "#ff92d0";
"*.color6" = "#8be9fd";
"*.color14" = "#9aedfe";
"*.color7" = "#bfbfbf";
"*.color15" = "#e63636";
"*backarrowKeyIsErase" = true;
"XTerm*renderFont" = true;
"XTerm*faceName" = "ComicMono";
"XTerm*faceSize" = 10;
"XTerm*utf8" = true;
"XTerm*ptyInitialErase" = true;
"XTerm*backarrowKeyIsErase" = false;
};
xdg = {
systemDirs.data = [
"/var/lib/flatpak/exports/share"
"${config.xdg.dataHome}/flatpak/exports/share"
];
};
home.file = {
"xinitrc" = {
source = ./dots/xinitrc;
target = ".xinitrc";
};
};
xsession.windowManager.bspwm = {
enable = true;
rules = {
"trayer:panel:" = {
border = false;
manage = false;
};
"xdragon:Xdragon:" = {
state = "floating";
sticky = true;
};
};
settings = {
automatic_scheme = "alternate";
split_ratio = 0.60;
focus_follows_pointer = true;
pointer_follows_focus = false;
border_width = 1;
top_padding = 0;
window_gap = 24;
borderless_monocle = false;
gapless_monocle = false;
focused_border_color = "#bd93f9";
normal_border_color = "#282a36";
presel_feedback_color = "#282a36";
};
};
xdg.configFile = {
"dunst" = {
source = ./dots/dunst;
target = "dunst";
recursive = true;
};
"sxhkd" = {
source = ./dots/sxhkd;
target = "sxhkd";
recursive = true;
executable = true;
};
};
gtk = {
enable = true;
theme = {
name = "Dracula";
package = pkgs.dracula-theme;
};
#iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
#};
iconTheme = {
name = "Dracula-Icon-Theme";
package = pkgs.dracula-icon-theme;

34
home-manager/wayland.nix Normal file
View File

@ -0,0 +1,34 @@
# Wayland home.nix
{ config, lib, pkgs, inputs, user, ... }:
{
imports = [
./gui.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;
};
};
}

80
home-manager/xorg.nix Normal file
View File

@ -0,0 +1,80 @@
# Xorg home.nix
{ config, lib, pkgs, inputs, user, ... }:
{
imports = [
./gui.nix
];
xresources.properties = {
"*.foreground" = "#f8f8f2";
"*.background" = "#282a36";
"*.color0" = "#000000";
"*.color8" = "#4d4d4d";
"*.color1" = "#ff5555";
"*.color9" = "#ff6367";
"*.color2" = "#50fa7b";
"*.color10" = "#5af78e";
"*.color3" = "#f1fa8c";
"*.color11" = "#f4f99d";
"*.color4" = "#bd93f9";
"*.color12" = "#caa9fa";
"*.color5" = "#ff79c6";
"*.color13" = "#ff92d0";
"*.color6" = "#8be9fd";
"*.color14" = "#9aedfe";
"*.color7" = "#bfbfbf";
"*.color15" = "#e63636";
"*backarrowKeyIsErase" = true;
"XTerm*renderFont" = true;
"XTerm*faceName" = "ComicMono";
"XTerm*faceSize" = 10;
"XTerm*utf8" = true;
"XTerm*ptyInitialErase" = true;
"XTerm*backarrowKeyIsErase" = false;
};
home.file = {
"xinitrc" = {
source = ./dots/xinitrc;
target = ".xinitrc";
};
};
xsession.windowManager.bspwm = {
enable = true;
rules = {
"trayer:panel:" = {
border = false;
manage = false;
};
"xdragon:Xdragon:" = {
state = "floating";
sticky = true;
};
};
settings = {
automatic_scheme = "alternate";
split_ratio = 0.60;
focus_follows_pointer = true;
pointer_follows_focus = true;
border_width = 1;
top_padding = 0;
window_gap = 24;
borderless_monocle = false;
gapless_monocle = false;
focused_border_color = "#bd93f9";
normal_border_color = "#282a36";
presel_feedback_color = "#282a36";
};
};
xdg.configFile = {
"dunst" = {
source = ./dots/dunst;
target = "dunst";
recursive = true;
};
"sxhkd" = {
source = ./dots/sxhkd;
target = "sxhkd";
recursive = true;
executable = true;
};
};
}

View File

@ -8,7 +8,7 @@
../nixos/all.nix
../nixos/cli.nix
../nixos/chat.nix
../nixos/gui.nix
../nixos/wayland.nix
../nixos/gaming.nix
../nixos/office.nix
./buckwheat/configuration.nix
@ -20,7 +20,8 @@
imports = [
../home-manager/all.nix
../home-manager/cli.nix
../home-manager/gui.nix
../home-manager/chat.nix
../home-manager/wayland.nix
./buckwheat/home.nix
];
};
@ -33,7 +34,7 @@
modules = [
../nixos/all.nix
../nixos/cli.nix
../nixos/gui.nix
../nixos/xorg.nix
../nixos/office.nix
../nixos/pentest.nix
./fireweed/configuration.nix
@ -45,7 +46,7 @@
imports = [
../home-manager/all.nix
../home-manager/cli.nix
../home-manager/gui.nix
../home-manager/xorg.nix
./fireweed/home.nix
];
};

View File

@ -5,6 +5,8 @@
catgirl
discord
profanity
sic
senpai
signal-desktop
tut
];

View File

@ -66,6 +66,7 @@
alsa.support32Bit = true;
pulse.enable = true;
#jack.enable = true;
wireplumber.enable = true;
};
users.users.${user.name}.packages = with pkgs; [
btfs
@ -98,9 +99,11 @@
jo
john
jq
killall
lynis
mdp
mediainfo
mosh
nb
nethogs
oed
@ -111,9 +114,11 @@
sipcalc
ssss
surfraw
tmux-xpanes
unrar
unzip
up
ueberzugpp
yai
yank
yq-go

View File

@ -11,6 +11,7 @@
gamemode.enable = true;
};
users.users.${user.name}.packages = with pkgs; [
dnd-tools
dosbox-staging
minecraft
];

View File

@ -5,8 +5,6 @@
variables = {
VISUAL = "$EDITOR";
BROWSER = "mullvad-browser";
SXHKD_SHELL = "/bin/sh";
TERMINAL = "st";
};
};
xdg.mime = {
@ -15,32 +13,15 @@
"image/*" = [
"feh.desktop"
];
};
};
xdg = {
autostart.enable = true;
portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
"text/*" = [
"mullvad-browser.desktop"
];
configPackages = [
pkgs.gnome.gnome-session
"video/*" = [
"mpv.desktop"
];
};
};
services = {
xserver = {
enable = true;
displayManager.startx.enable = true;
windowManager.bspwm.enable = true;
layout = "us";
xkbVariant = "";
};
picom = {
enable = true;
};
# To add the Flathub repo, run:
# $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak.enable = true;
@ -57,12 +38,10 @@
];
programs = {
dconf.enable = true;
slock.enable = true;
};
users.users.${user.name}.packages = with pkgs; [
ani-cli
bashmount
feh
glib
lagrange
librewolf
@ -71,30 +50,14 @@
mullvad-browser
mupdf
#onionshare-gui
scrot
tor-browser-bundle-bin
#urlview
ytfzf
];
environment.systemPackages = with pkgs; [
(dmenu.overrideAttrs (oldAttrs: rec {
configFile = writeText "config.def.h" (builtins.readFile ./patches/dmenu/config.h);
postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
}))
(st.overrideAttrs (oldAttrs: rec {
configFile = writeText "config.def.h" (builtins.readFile ./patches/st/config.h);
postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
}))
clipmenu
dunst
hsetroot
libnotify
networkmanagerapplet
notify-desktop
sxhkd
trayer
xbanish
xdg-utils
xdo
xdragon
xsel
];
}

View File

@ -4,6 +4,7 @@
users.users.${user.name}.packages = with pkgs; [
ledger
libreoffice
#obsidian
pandoc
pdftk
#sc-im

52
nixos/wayland.nix Normal file
View File

@ -0,0 +1,52 @@
# Wayland configuration.nix
{ config, lib, pkgs, inputs, user, ... }:
{
imports = [
./gui.nix
];
environment = {
variables = {
TERMINAL = "foot";
};
};
xdg = {
autostart.enable = true;
portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-wlr
];
configPackages = [
pkgs.xdg-desktop-portal-wlr
];
};
};
programs = {
river = {
enable = true;
extraPackages = with pkgs; [
bemenu
foot
mako
swaylock
way-displays
wtype
];
};
xwayland = {
enable = true;
};
};
users.users.${user.name}.packages = with pkgs; [
bemoji
cliphist
grimblast
imv
swww
tessen
wl-clipboard
];
environment.systemPackages = [
];
}

62
nixos/xorg.nix Normal file
View File

@ -0,0 +1,62 @@
# Xorg configuration.nix
{ config, lib, pkgs, inputs, user, ... }:
{
imports = [
./gui.nix
];
environment = {
variables = {
SXHKD_SHELL = "/bin/sh";
TERMINAL = "st";
};
};
xdg = {
autostart.enable = true;
portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
configPackages = [
pkgs.gnome.gnome-session
];
};
};
services = {
xserver = {
enable = true;
displayManager.startx.enable = true;
windowManager.bspwm.enable = true;
layout = "us";
xkbVariant = "";
};
picom = {
enable = true;
};
};
programs = {
slock.enable = true;
};
users.users.${user.name}.packages = with pkgs; [
feh
scrot
];
environment.systemPackages = with pkgs; [
(dmenu.overrideAttrs (oldAttrs: rec {
configFile = writeText "config.def.h" (builtins.readFile ./patches/dmenu/config.h);
postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
}))
(st.overrideAttrs (oldAttrs: rec {
configFile = writeText "config.def.h" (builtins.readFile ./patches/st/config.h);
postPatch = "${oldAttrs.postPatch}\n cp ${configFile} config.def.h";
}))
clipmenu
dunst
hsetroot
sxhkd
trayer
xbanish
xsel
];
}

44
todo.md
View File

@ -1,16 +1,44 @@
- [ ] 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)
- [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)
- [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.