diff --git a/apps/de/sway/config b/apps/de/sway/config index 4a1cb67..2c29d3f 100644 --- a/apps/de/sway/config +++ b/apps/de/sway/config @@ -120,7 +120,9 @@ bindsym $mod+Control+Alt+k gaps vertical current plus 5 bindsym $mod+Control+equal gaps inner current set $default_gap bindsym $mod+Control+Shift+l exec swaylock -bindsym $mod+Control+Shift+s exec lock-and-sleep +# TODO: toggle-able swayidle? +# TODO: one-time swayidle? +# bindsym $mod+Control+Shift+s exec lock-and-disable-monitors mode "resize" { bindsym $left resize shrink width 10 px or 10 ppt @@ -140,7 +142,7 @@ mode "resize" { default_border pixel 5 for_window [app_id="floating_terminal"] floating enable for_window [class="floating_terminal"] floating enable -for_window [class=".*"] layout splith +for_window [class=".*"] layout splitv # bindsym $mod+r mode "resize" @@ -160,6 +162,8 @@ client.focused_inactive #111111 #111111 #ffffff #111111 #111111 client.unfocused #111111 #111111 #ffffff #111111 #111111 exec mako -exec gammastep -t 6500:3500 -l 39.0:-94.5 +exec_always kanshi exec_always makoctl reload exec_always notify-send -a "Sway" -i ~/.wallpaper "Sway configuration loaded." + +include $ENV_PATH/sway/config.d/main diff --git a/apps/de/x/resources b/apps/de/x/resources new file mode 100755 index 0000000..4171b2d --- /dev/null +++ b/apps/de/x/resources @@ -0,0 +1,100 @@ +! font +#define mono_font Iosevka +#define mono_font_size 14 +#define bar_font_size 12 +#define mono_font_letterspace 0 +#define icon_font Font Awesome 5 Free Solid +#define icon_font_size 12 +#define bold_mono_font iosevka-lyte Semibold +#define emoji_font Noto Emoji +#define font_fallback_stack xft:icon_font,xft:FreeSans + +! window spacing +#define window_padding 24 +#define window_border 5 +#define window_margin 0 + +! dpi +#define base_dpi 92 + +! alternatives +!#define mono_font scientifica +!#define mono_font_size 11 +!#define mono_font curie +!#define mono_font_size 10 + +! font +*.font: xft:mono_font:pixelsize=mono_font_size,xft:emoji_font,font_fallback_stack +*.boldFont: xft:bold_mono_font:pixelsize=mono_font_size +*.letterSpace: mono_font_letterspace + +! rxvt-unicode +URxvt.termName: rxvt-unicode +URxvt.scrollBar: false +URxvt.cursorUnderline: true +URxvt.cursorBlink: true +URxvt.intensityStyles: true +URxvt.utf8: 1 +URxvt.scaleHeight: 1 +URxvt.depth: 32 +URxvt.internalBorder: window_padding +URxvt.perl-ext-common: default,matcher,resize-font +URxvt.keysym.M-Escape: perl:keyboard-select:activate +URxvt.resize-font.smaller: C-Down +URxvt.resize-font.bigger: C-Up +URxvt.url-launcher: /usr/bin/xdg-open +URxvt.matcher.button: 1 +URxvt.iso14755: False + +! misc +Xcursor.theme: human + +! dpi +dpi: base_dpi +.dpi: base_dpi +*dpi: base_dpi +Xft.dpi: base_dpi + +! font rendering +! TODO: is this still relevant? +*autohint: 0 +*lcdfilter: lcddefault +*hintstyle: hintfull +*hinting: 1 +*antialias: 1 +*rgba: rgb + +! bspwm +bspwm.window_gap: window_margin +bspwm.border_width: window_border +bspwm.num_desktops: 10 +bspwm.reverse_desktop_ordering: 0 +bspwm.reverse_monitor_desktops: 0 +bspwm.split_ratio: 0.5 +bspwm.start_compton: 0 +bspwm.start_bar: 1 + +! polybar +polybar.primary_font: mono_font:pixelsize=bar_font_size;1 +polybar.secondary_font: icon_font:style=Regular:pixelsize=icon_font_size;1 +polybar.display_monitor: DisplayPort-0 +polybar.bottom_of_display: 1 +polybar.margin: window_margin +polybar.storage_volume: / +polybar.ethernet_interface: eth0 +polybar.wireless_interface: wan0 +polybar.width: 100% +polybar.height: 40 +! if you have a margin value, be sure to include that in your offsets +polybar.offset_x: 0 +polybar.offset_y: 0 + +! rofi +rofi.font: mono_font mono_font_size +rofi.padding: window_padding +rofi.bw: window_border +rofi.color-enabled: true +rofi.monitor: -4 +rofi.width: 600 +rofi.sort: true +rofi.sorting-method: fzf diff --git a/apps/kak/colors/selenized-black.kak b/apps/kak/colors/selenized-black.kak new file mode 100644 index 0000000..c5c3c09 --- /dev/null +++ b/apps/kak/colors/selenized-black.kak @@ -0,0 +1,83 @@ +#################### +# SELENIZED BLACK # +#################### +# theme by Jan Warchoł +# ported by TeddyDD + +evaluate-commands %sh{ + +bg="rgb:181818" +black="rgb:252525" +br_black="rgb:3b3b3b" +white="rgb:777777" +fg="rgb:b9b9b9" +br_white="rgb:dedede" + +red="rgb:ed4a46" +green="rgb:70b433" +yellow="rgb:dbb32d" +blue="rgb:368aeb" +magenta="rgb:eb6eb7" +cyan="rgb:3fc5b7" +orange="rgb:e67f43" +violet="rgb:a580e2" + +br_red="rgb:ff5e56" +br_green="rgb:83c746" +br_yellow="rgb:efc541" +br_blue="rgb:4f9cfe" +br_magenta="rgb:ff81ca" +br_cyan="rgb:56d8c9" +br_orange="rgb:fa9153" +br_violet="rgb:b891f5" + +## code +echo " +set-face global value ${orange}+b +set-face global type ${br_orange} +set-face global variable ${magenta} +set-face global module ${blue} +set-face global function ${br_cyan} +set-face global string ${br_green} +set-face global keyword ${violet}+b +set-face global operator ${br_cyan} +set-face global attribute ${orange} +set-face global comment ${white} +set-face global meta ${br_orange} +set-face global builtin ${fg}+b + +set-face global title ${blue}+u +set-face global header ${br_cyan}+u +set-face global bold ${br_white}+b +set-face global italic ${br_white}+i +set-face global mono ${br_green} +set-face global block ${orange} +set-face global link $blue +set-face global bullet ${br_magenta} +set-face global list ${magenta} + +set-face global Default ${fg},${bg} +set-face global PrimarySelection $black,$white +set-face global SecondarySelection ${fg},$br_black+i +set-face global PrimaryCursor $bg,$red+b +set-face global SecondaryCursor $black,$br_cyan+i +set-face global MatchingChar $black,$blue +set-face global Search $br_white,$green +set-face global CurrentWord $white,$blue + +set-face global MenuForeground $cyan,$br_black+b +set-face global MenuBackground $fg,$black + +set-face global Information $br_yellow,$black +set-face global Error $black,$br_red + +set-face global BufferPadding $black,$black +set-face global Whitespace $white +set-face global StatusLine $fg,$black +set-face global StatusLineInfo $yellow,$black + +set-face global LineNumbers default +set-face global LineNumberCursor default,default+r +" + +} diff --git a/apps/kak/colors/selenized-dark.kak b/apps/kak/colors/selenized-dark.kak new file mode 100644 index 0000000..fc2f6e1 --- /dev/null +++ b/apps/kak/colors/selenized-dark.kak @@ -0,0 +1,83 @@ +################## +# SELENIZED DARK # +################## +# theme by Jan Warchoł +# ported by Delapouite + +evaluate-commands %sh{ + +bg="rgb:103c48" +black="rgb:184956" +br_black="rgb:2d5b69" +white="rgb:72898f" +fg="rgb:adbcbc" +br_white="rgb:cad8d9" + +red="rgb:fa5750" +green="rgb:75b938" +yellow="rgb:dbb32d" +blue="rgb:4695f7" +magenta="rgb:f275be" +cyan="rgb:41c7b9" +orange="rgb:ed8649" +violet="rgb:af88eb" + +br_red="rgb:ff665c" +br_green="rgb:84c747" +br_yellow="rgb:ebc13d" +br_blue="rgb:58a3ff" +br_magenta="rgb:ff84cd" +br_cyan="rgb:53d6c7" +br_orange="rgb:fd9456" +br_violet="rgb:bd96fa" + +## code +echo " +set-face global value ${orange}+b +set-face global type ${br_orange} +set-face global variable ${magenta} +set-face global module ${blue} +set-face global function ${br_cyan} +set-face global string ${br_green} +set-face global keyword ${violet}+b +set-face global operator ${br_cyan} +set-face global attribute ${orange} +set-face global comment ${white} +set-face global meta ${br_orange} +set-face global builtin ${fg}+b + +set-face global title ${blue}+u +set-face global header ${br_cyan}+u +set-face global bold ${br_white}+b +set-face global italic ${br_white}+i +set-face global mono ${br_green} +set-face global block ${orange} +set-face global link $blue +set-face global bullet ${br_magenta} +set-face global list ${magenta} + +set-face global Default ${fg},${bg} +set-face global PrimarySelection $black,$white +set-face global SecondarySelection ${fg},$br_black+i +set-face global PrimaryCursor $bg,$red+b +set-face global SecondaryCursor $black,$br_cyan+i +set-face global MatchingChar $black,$blue +set-face global Search $br_white,$green +set-face global CurrentWord $white,$blue + +set-face global MenuForeground $cyan,$br_black+b +set-face global MenuBackground $fg,$black + +set-face global Information $br_yellow,$black +set-face global Error $black,$br_red + +set-face global BufferPadding $black,$black +set-face global Whitespace $white +set-face global StatusLine $fg,$black +set-face global StatusLineInfo $yellow,$black + +set-face global LineNumbers default +set-face global LineNumberCursor default,default+r +" + +} diff --git a/apps/kak/colors/selenized-light.kak b/apps/kak/colors/selenized-light.kak new file mode 100644 index 0000000..96ae169 --- /dev/null +++ b/apps/kak/colors/selenized-light.kak @@ -0,0 +1,90 @@ +#################### +# SELENIZED LIGHT # +#################### +# theme by Jan Warchoł +# ported by TeddyDD + +evaluate-commands %sh{ + +bg='rgb:fbf3db' +black='rgb:ece3cc' +br_black='rgb:d5cdb6' +white='rgb:909995' +fg='rgb:53676d' +br_white='rgb:3a4d53' + +red='rgb:d2212d' +green='rgb:489100' +yellow='rgb:ad8900' +blue='rgb:0072d4' +magenta='rgb:ca4898' +cyan='rgb:009c8f' +orange='rgb:c25d1e' +violet='rgb:8762c6' + +br_red='rgb:cc1729' +br_green='rgb:428b00' +br_yellow='rgb:a78300' +br_blue='rgb:006dce' +br_magenta='rgb:c44392' +br_cyan='rgb:00978a' +br_orange='rgb:bc5819' +br_violet='rgb:825dc0' + +## code +echo " +set-face global value ${orange}+b +set-face global type ${br_orange} +set-face global variable ${magenta} +set-face global module ${green} +set-face global function ${br_cyan} +set-face global string ${green} +set-face global keyword ${violet}+b +set-face global operator ${br_cyan} +set-face global attribute ${orange} +set-face global comment ${br_black} +set-face global meta ${br_orange} +set-face global builtin ${fg}+b +" + +## markup +echo " +set-face global title ${blue}+u +set-face global header ${br_cyan} +set-face global bold ${br_orange}+b +set-face global italic ${orange}+i +set-face global mono ${green} +set-face global block ${orange} +set-face global link $blue +set-face global bullet ${br_magenta} +set-face global list ${magenta} +" + +echo " +set-face global Default ${br_white},${bg} +set-face global PrimarySelection ${fg},$br_black+i +set-face global SecondarySelection $black,$white +set-face global PrimaryCursor $black,$red+b +set-face global SecondaryCursor $bg,$br_cyan+i +set-face global MatchingChar $black,$blue +set-face global Search $br_white,$green +set-face global CurrentWord $white,$blue + +# when item focused in menu +set-face global MenuForeground $orange,$br_black+d +# default bottom menu and autocomplete +set-face global MenuBackground $fg,$black + +set-face global Information $yellow,$black +set-face global Error $black,$red + +set-face global BufferPadding $black,$black +set-face global Whitespace $br_black +set-face global StatusLine $fg,$br_black +set-face global StatusLineInfo $blue,$br_black + +set-face global LineNumbers default +set-face global LineNumberCursor default,default+r +" + +} diff --git a/apps/kak/colors/selenized-white.kak b/apps/kak/colors/selenized-white.kak new file mode 100644 index 0000000..0e8cc63 --- /dev/null +++ b/apps/kak/colors/selenized-white.kak @@ -0,0 +1,90 @@ +################### +# SELENIZED WHITE # +################### +# theme by Jan Warchoł +# ported by Delapouite + +evaluate-commands %sh{ + +bg='rgb:ffffff' +black='rgb:ebebeb' +br_black='rgb:cdcdcd' +white='rgb:878787' +fg='rgb:474747' +br_white='rgb:282828' + +red='rgb:d6000c' +green='rgb:1d9700' +yellow='rgb:c49700' +blue='rgb:0064e4' +magenta='rgb:dd0f9d' +cyan='rgb:00ad9c' +orange='rgb:d04a00' +violet='rgb:7f51d6' + +br_red='rgb:bf0000' +br_green='rgb:008400' +br_yellow='rgb:af8500' +br_blue='rgb:0054cf' +br_magenta='rgb:c7008b' +br_cyan='rgb:009a8a' +br_orange='rgb:ba3700' +br_violet='rgb:6b40c3' + +## code +echo " +set-face global value ${orange}+b +set-face global type ${br_orange} +set-face global variable ${magenta} +set-face global module ${green} +set-face global function ${br_cyan} +set-face global string ${green} +set-face global keyword ${violet}+b +set-face global operator ${br_cyan} +set-face global attribute ${orange} +set-face global comment ${br_black} +set-face global meta ${br_orange} +set-face global builtin ${fg}+b +" + +## markup +echo " +set-face global title ${blue}+u +set-face global header ${br_cyan} +set-face global bold ${br_orange}+b +set-face global italic ${orange}+i +set-face global mono ${green} +set-face global block ${orange} +set-face global link $blue +set-face global bullet ${br_magenta} +set-face global list ${magenta} +" + +echo " +set-face global Default ${br_white},${bg} +set-face global PrimarySelection ${fg},$br_black+i +set-face global SecondarySelection $black,$white +set-face global PrimaryCursor $black,$red+b +set-face global SecondaryCursor $bg,$br_cyan+i +set-face global MatchingChar $black,$blue +set-face global Search $br_white,$green +set-face global CurrentWord $white,$blue + +# when item focused in menu +set-face global MenuForeground $orange,$br_black+d +# default bottom menu and autocomplete +set-face global MenuBackground $fg,$black + +set-face global Information $yellow,$black +set-face global Error $black,$red + +set-face global BufferPadding $black,$black +set-face global Whitespace $br_black +set-face global StatusLine $fg,$br_black +set-face global StatusLineInfo $blue,$br_black + +set-face global LineNumbers default +set-face global LineNumberCursor default,default+r +" + +} diff --git a/apps/kak/kakrc b/apps/kak/kakrc index 730c97a..f2ef56d 100644 --- a/apps/kak/kakrc +++ b/apps/kak/kakrc @@ -1,23 +1,49 @@ source "%val{config}/plugins/plug.kak/rc/plug.kak" -plug "andreyorst/fzf.kak" +plug "TeddyDD/kakoune-selenized" theme +plug "robertmeta/plug.kak" noload config %{ + set global plug_always_ensure true + set global plug_max_active_downloads 25 +} +plug "alexherbo2/connect.kak" +plug "kak-lsp/kak-lsp" do %{ + cargo install --locked --force --path . +} +plug 'delapouite/kakoune-buffers' %{ + # map global normal ^ q + # map global normal Q + # map global normal q b + # map global normal Q B + # map global normal + # map global normal + # map global normal b ': enter-buffers-mode' -docstring 'buffers' + # map global normal B ': enter-user-mode -lock buffers' -docstring 'buffers (lock)' +} -map global normal ': fzf-mode' +# eval %sh{kak-lsp --kakoune -s $kak_session} +hook global WinSetOption filetype=(rust|python|go|javascript|typescript|c|cpp|nim) %{ + lsp-enable-window +} map global normal D 'd' -docstring 'delete to end of line' map global normal Y 'y' -docstring 'yank to end of line' hook global InsertChar k %{ try %{ - exec -draft hh jk d - exec -}} -hook global InsertChar j %{ try %{ - exec -draft hh jj d + exec -draft hH jk d exec }} +map global normal '^' '' -docstring 'jump to start of line' + +# add-highlighter global/show-trailing-whitespaces regex '\h+$' 0:Error +# add-highlighter global show-matching + set global tabstop 2 set global indentwidth 2 -set-option global fzf_file_command 'rg' - +face global Information white,black +face global MenuBackground white,black +face global MenuForeground black,blue +face global PrimarySelection black,blue +face global PrimarySelection black,white +face global MatchingChar default,bright-black diff --git a/apps/kanshi/config b/apps/kanshi/config new file mode 100644 index 0000000..3a2b97e --- /dev/null +++ b/apps/kanshi/config @@ -0,0 +1,6 @@ +profile desktop-H { + output "Samsung Electric Company CF791 HTRJ500315" enable mode 3440x1440@100Hz position 1440,560 scale 1 transform normal + output "Dell Inc. DELL U2719DC 5DL4QS2" enable mode 2560x1440@60Hz position 0,0 scale 1 transform 90 + output "Dell Inc. DELL U2719DC 9DL4QS2" enable mode 2560x1440@60Hz position 4880,0 scale 1 transform 270 + exec "$HOME/.config/dotfiles/apps/kanshi/desktop-H-workspaces.sh" +} diff --git a/apps/kanshi/desktop-H-workspaces.sh b/apps/kanshi/desktop-H-workspaces.sh new file mode 100755 index 0000000..8929748 --- /dev/null +++ b/apps/kanshi/desktop-H-workspaces.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +set -x + +uw='Samsung Electric Company CF791 HTRJ500315' +l='Dell Inc. DELL U2719DC 5DL4QS2' +r='Dell Inc. DELL U2719DC 9DL4QS2' + +mws() { + swaymsg workspace "$1", move workspace to output "\"$2\"" +} + +mws 5 "$l" +mws 6 "$l" +mws 4 "$l" + +mws 8 "$r" +mws 9 "$r" +mws 7 "$r" + +mws 2 "$uw" +mws 3 "$uw" +mws 1 "$uw" + diff --git a/apps/mpd/mpd.conf b/apps/mpd/mpd.conf new file mode 100644 index 0000000..27e271a --- /dev/null +++ b/apps/mpd/mpd.conf @@ -0,0 +1,28 @@ +auto_update "yes" + +audio_output { + type "pulse" + name "pulse audio" +} + +db_file "~/.local/mpd/database" +log_file "syslog" +pid_file "~/.local/mpd/pid" +state_file "~/.local/mpd/pid" +sticker_file "~/.local/mpd/sticker.sql" + +playlist_directory "~/../music/mpd-playlists" +music_directory "~/../music" + +# bind_to_address "~/.local/mpd/socket" +bind_to_address "any" +port "6600" +restore_paused "yes" +log_level "verbose" + +input { + plugin "curl" + # proxy "proxy.isp.com:8080" + # proxy_user "user" + # proxy_password "password" +} diff --git a/apps/ncmpcpp/config b/apps/ncmpcpp/config new file mode 100644 index 0000000..422b610 --- /dev/null +++ b/apps/ncmpcpp/config @@ -0,0 +1,7 @@ +mpd_music_dir = "~/../music" +lyrics_directory = ~/.ncmpcpp/lyrics +ncmpcpp_directory = ~/.ncmpcpp +mpd_host = "localhost" +mpd_port = "6600" +mpd_connection_timeout = "5" +mpd_crossfade_time = "5" diff --git a/apps/neovim/plugins.vim b/apps/neovim/plugins.vim index cd13d98..852873b 100644 --- a/apps/neovim/plugins.vim +++ b/apps/neovim/plugins.vim @@ -51,24 +51,24 @@ else endif Plug 'junegunn/vim-plug' " plugin manager should manage itself +Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} " fuzzy file finding +Plug 'junegunn/fzf.vim' " helpers for using fzf in vim Plug 'vim-airline/vim-airline' " status line Plug 'vim-airline/vim-airline-themes' " more minimal status line Plug 'nathanaelkane/vim-indent-guides' " indentation guides Plug 'SirVer/ultisnips' " snippet manager -Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} " fuzzy file finding -Plug 'junegunn/fzf.vim' " helpers for using fzf in vim Plug 'bkad/CamelCaseMotion' " camel case and underscore word movements Plug 'vim-scripts/LargeFile' " gracefully handle very large files Plug 'tpope/vim-commentary' " toggle comments in code easily Plug 'tpope/vim-repeat' " better vim repeating for plugin-provided actions -Plug 'vim-scripts/SyntaxRange' " defined different syntax ranges in a file for highlighting -Plug 'tmux-plugins/vim-tmux-focus-events' " allow transitions within tmux -Plug 'christoomey/vim-tmux-navigator' " allow transitions within tmux -Plug 'godlygeek/tabular' " align text +Plug 'vim-scripts/SyntaxRange' " define syntax ranges +Plug 'tmux-plugins/vim-tmux-focus-events' " allow transitions from tmux +Plug 'christoomey/vim-tmux-navigator' " allow transitions to tmux +Plug 'godlygeek/tabular' " commands for aligning text Plug 'lytedev/vim-superman' " view man pages with vim Plug 'machakann/vim-sandwich' " quickly modify text surrounding objects -Plug 'tpope/vim-speeddating' " vim knows about date-like text objects -Plug 'tpope/vim-fugitive' " vim git commands +Plug 'tpope/vim-speeddating' " date-like text objects +Plug 'tpope/vim-fugitive' " git commands Plug 'michaeljsmith/vim-indent-object' " adds an indentation level text object Plug 'wellle/targets.vim' " adds some more handy text objects Plug 'dbakker/vim-projectroot' " adds helper functions for getting to a project's root directory @@ -76,8 +76,6 @@ Plug 'junegunn/goyo.vim' " better distrac Plug 'junegunn/limelight.vim' " dim inactive blocks of code Plug 'tpope/vim-sleuth' " try and detect indent method Plug 'editorconfig/editorconfig-vim' " loads project-specific editor settings -Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language -Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language Plug 'scrooloose/nerdtree' " file browser Plug 'tpope/vim-eunuch' " unix helper commands Plug 'mbbill/undotree' " undo tree visualizer @@ -85,15 +83,16 @@ Plug 'mbbill/undotree' " undo tree visu " language support Plug 'sheerun/vim-polyglot' " vim plugin loader for many languages +Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language -Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server interface -Plug 'elixir-lsp/elixir-ls', {'for': ['elixir', 'eelixir'], 'do': { -> g:elixirls.compile() }} -Plug 'tpope/vim-dadbod' " vim +" Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server interface +Plug 'neovim/nvim-lspconfig' " neovim-native language server interface +Plug 'tpope/vim-dadbod' " vim database functions Plug 'lytedev/elm-vim', {'for': ['elm']} " elm lang Plug 'google/vim-jsonnet', {'for': ['jsonnet', 'libsonnet']} " jsonnet Plug 'sirtaj/vim-openscad', {'for': ['scad']} " openscad -Plug 'jjo/vim-cue' -Plug 'chrisbra/csv.vim' +Plug 'jjo/vim-cue' " cuelang Plug 'calviken/vim-gdscript3', {'for': ['gdscript']} " godot scripts +" Plug 'chrisbra/csv.vim' " Plug 'ssh://git@git.lyte.dev:2222/lytedev/vim-lytlang.git' diff --git a/bin/launch b/bin/launch index a7a63f8..3e1b1ee 100755 --- a/bin/launch +++ b/bin/launch @@ -1,6 +1,7 @@ #!/usr/bin/env bash -LAUNCHER_HISTORY_FILE="$ENV_PATH/launch.log" +LAUNCHER_HISTORY_FILE="$HOME/.local/share/lytelaunch/launch.log" +mkdir --parents "$(dirname "$LAUNCHER_HISTORY_FILE")" touch "$LAUNCHER_HISTORY_FILE" app="$( < "$LAUNCHER_HISTORY_FILE" \ diff --git a/bin/lib/arch-linux/provisioning/2-essentials.bash b/bin/lib/arch-linux/provisioning/2-essentials.bash index ed84fb9..4d06254 100755 --- a/bin/lib/arch-linux/provisioning/2-essentials.bash +++ b/bin/lib/arch-linux/provisioning/2-essentials.bash @@ -14,6 +14,7 @@ pacaur --needed -S \ openssh mosh `# Remote Access` \ openssl `# Crypto` \ erlang elixir `# Elixir Language` \ + asdf-vm `# Runtime Version Manager` \ nodejs npm yarn `# JavaScript Runtime` \ python python-pip `# Python 3 Language` \ pass `# Password Management` \ @@ -39,6 +40,7 @@ pacaur --needed -S \ bspwm-git sxhkd-git xdo-git `# Window Manager and Tools for its use` \ wlroots-git sway-git `# Wayland Compositor` \ swaylock `# Wayland Compositor` \ + kanshi `# Monitor Management for Wayland` \ waybar mako `# Wayland Bar & Notifications` \ slurp grim wl-clipboard `# Wayland Screen Selection & Clipping` \ wl-clipboard `# Wayland Clipboard CLI` \ diff --git a/bin/lock-and-sleep b/bin/lock-and-sleep deleted file mode 100755 index 9716996..0000000 --- a/bin/lock-and-sleep +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -if is_wayland; then - swaylock & -else - dm-tool switch-to-greeter & -fi -sudo systemctl suspend diff --git a/env/desktop/bin/reboot-to-windows b/env/desktop/bin/reboot-to-windows new file mode 100755 index 0000000..cfd84f6 --- /dev/null +++ b/env/desktop/bin/reboot-to-windows @@ -0,0 +1,3 @@ +#!/usr/bin/env sh +sudo efibootmgr -n 0000 +sudo reboot diff --git a/env/desktop/sway/config.d/main b/env/desktop/sway/config.d/main index 711dbc7..e771715 100644 --- a/env/desktop/sway/config.d/main +++ b/env/desktop/sway/config.d/main @@ -1,27 +1,27 @@ exec swayidle -w timeout 300 'swaylock -f -c 000000' timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep 'swaylock -f -c 000000' # shared -workspace 1 output DP-1 -workspace 2 output DP-1 -workspace 3 output DP-1 +# workspace 1 output DP-1 +# workspace 2 output DP-1 +# workspace 3 output DP-1 # --I format # output DP-1 res 3440x1440@100Hz pos 2560 720 # output DP-2 res 2560x1440@60Hz pos 0 0 # output DP-4 res 2560x1440@60Hz pos 6000 0 transform 270 -workspace 4 output DP-2 -workspace 5 output DP-2 -workspace 6 output DP-2 -workspace 7 output DP-4 -workspace 8 output DP-4 -workspace 9 output DP-4 +# workspace 4 output DP-2 +# workspace 5 output DP-2 +# workspace 6 output DP-2 +# workspace 7 output DP-4 +# workspace 8 output DP-4 +# workspace 9 output DP-4 # H format -output DP-1 res 3440x1440@100Hz pos 1440 560 -output DP-2 res 2560x1440@60Hz pos 0 0 transform 90 -output DP-3 res 2560x1440@60Hz pos 0 0 transform 90 -output DP-4 res 2560x1440@60Hz pos 4880 0 transform 270 -output DP-5 res 2560x1440@60Hz pos 4880 0 transform 270 +# output DP-1 res 3440x1440@100Hz pos 1440 560 +# output DP-2 res 2560x1440@60Hz pos 0 0 transform 90 +# output DP-3 res 2560x1440@60Hz pos 0 0 transform 90 +# output DP-4 res 2560x1440@60Hz pos 4880 0 transform 270 +# output DP-5 res 2560x1440@60Hz pos 4880 0 transform 270 # iIi format # output DP-1 res 3440x1440@100Hz pos 1440 0 transform 90 diff --git a/env/laptop/sway/config.d/main b/env/laptop/sway/config.d/main index d0fb39f..383168f 100644 --- a/env/laptop/sway/config.d/main +++ b/env/laptop/sway/config.d/main @@ -1,7 +1,7 @@ -# TODO: setup displays (when docked for work?) output eDP-1 res 1600x900 pos 0 0 exec libinput-gestures -c $HOME/.config/dotfiles/apps/de/libinput/sway-gestures.conf +exec gammastep -t 6500:3500 -l 39.0:-94.5 exec swayidle -w timeout 300 'swaylock -f -c 000000' timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep 'swaylock -f -c 000000' bindswitch lid:toggle exec swaylock diff --git a/env/nix/machines/third.nix b/env/nix/machines/third.nix index ff114cc..f0e614c 100644 --- a/env/nix/machines/third.nix +++ b/env/nix/machines/third.nix @@ -27,6 +27,10 @@ # TODO: setup caps-lock as Control/Escape? # console.font = "TER16x32"; + services.xserver.displayManager.lightdm.greeters.gtk.extraConfig = '' + xft-dpi=260 + ''; + # services.upower = { # enable = true; # criticalPowerAction = "Hibernate"; diff --git a/env/nix/machines/wallwart.nix b/env/nix/machines/wallwart.nix index 4f867eb..1e33af0 100644 --- a/env/nix/machines/wallwart.nix +++ b/env/nix/machines/wallwart.nix @@ -18,6 +18,20 @@ firewall.enable = false; }; - console.useXkbConfig = true; - services.xserver.xkbOptions = "ctrl:nocaps"; + environment = { + systemPackages = with pkgs; [ ntfs3g ]; + }; + + fileSystems."/storage/ext".options = [ "defaults" "user" "nofail" ]; + fileSystems."/storage/butter".options = [ "defaults" "auto" "nofail" ]; + fileSystems."/storage/windows" = { + device = "/dev/disk/by-uuid/AE624593624560E7"; + fsType = "ntfs"; + options = [ "defaults" "auto" "nofail" ]; + }; + fileSystems."/storage/shared" = { + device = "/dev/disk/by-uuid/26F6144A6B518523"; + fsType = "ntfs"; + options = [ "defaults" "auto" "nofail" ]; + }; } diff --git a/env/nix/modules/de/sway.nix b/env/nix/modules/de/sway.nix index f41dce1..9c6eefd 100644 --- a/env/nix/modules/de/sway.nix +++ b/env/nix/modules/de/sway.nix @@ -10,14 +10,14 @@ in { extraPackages = with pkgs; [ swaylock swayidle - unstable.xwayland - mako + unstable.mako waybar - kanshi wl-clipboard slurp grim - font-awesome + unstable.font-awesome + unstable.xwayland + unstable.kanshi unstable.gammastep ]; extraSessionCommands = '' diff --git a/env/nix/modules/fish.nix b/env/nix/modules/fish.nix index 65f35dc..87050a2 100644 --- a/env/nix/modules/fish.nix +++ b/env/nix/modules/fish.nix @@ -1,5 +1,11 @@ -{ config, pkgs, ... }: { - environment.systemPackages = [ pkgs.fish ]; - programs.fish.enable = true; +{ config, pkgs, ... }: + +let + unstable = import { config = { allowUnfree = true; }; }; +in { + programs.fish = { + enable = true; + }; + environment.systemPackages = [ unstable.fish ]; } diff --git a/env/nix/modules/lightdm.nix b/env/nix/modules/lightdm.nix index 92bcfa8..654a617 100644 --- a/env/nix/modules/lightdm.nix +++ b/env/nix/modules/lightdm.nix @@ -15,7 +15,6 @@ }; clock-format = "%H:%M:%S"; extraConfig = '' - xft-dpi=260 font-name=Iosevka ''; }; diff --git a/env/nix/modules/users/daniel.nix b/env/nix/modules/users/daniel.nix index 469d72d..d7a593a 100644 --- a/env/nix/modules/users/daniel.nix +++ b/env/nix/modules/users/daniel.nix @@ -33,7 +33,8 @@ autoconf ncurses weechat - # thunar thunar-archive-plugin thunar-volman + jq + xfce.thunar xfce.thunar-archive-plugin # xfce.thunar-volman ]; }; } diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..5ea8e48 --- /dev/null +++ b/init.sh @@ -0,0 +1,81 @@ +#!/usr/bin/env sh + +# NOTE: run this from inside a NixOS installation, not from the live USB/CD + +rhome="/root" +home="/home/daniel/.home" +nhome="/home/daniel" +cfd="/.config/dotfiles" + +add_unstable_channel() { + nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable + nix-channel --update +} + +clone_dotfiles() { + echo "Setting up dotfiles for root..." + mkdir --parents "$1" + git clone "https://git.lyte.dev/lytedev/dotfiles" "$1" +} + +symlink_nixos() { + rm --force "/etc/nixos/lytedev" + ln --symbolic "$1" "/etc/nixos/lytedev" +} + +setup_wallpaper() { + mkdir --parents "$nhome/img/walls" + curl --silent --output "$nhome/img/walls/clouds_by_souredapply.png" \ + "https://art.ngfiles.com/images/530000/530895_souredapple_clouds.png" + rm --recursive --force "$home/.wallpaper" + ln --symbolic "$nhome/img/walls/clouds_by_souredapply.png" "$home/.wallpaper" +} + +generate_ssh_key() { + mkdir --mode 600 --parents "$home/.ssh" + ssh-keygen -N '' -t ed25519 -f "$home/.ssh/$(hostname --short)" + mkdir --mode 640 --parents "$nhome/public" + cp "$home/.ssh/$(hostname --short).pub" "$nhome/public" +} + +fix_dotfiles_origin() { + cd "$home$cfd" + git remote set-url origin "ssh://git@git.lyte.dev:2222/lytedev/dotfiles.git" +} + +init_for_root() { + clone_dotfiles "$rhome$cfd" + symlink_nixos "$rhome$cfd/env/nix/" + add_unstable_channel + nixos-rebuild switch + chown daniel:users "$home" + echo "Re-running as user daniel..." + sudo --user daniel "$rhome$cfd/init.sh" +} + +init_for_daniel() { + clone_dotfiles "$home$cfd" + generate_ssh_key + symlink_nixos "$home$cfd/env/nix/" + setup_wallpaper + # TODO: setup ssh/gpg keys + # TODO: setup password store + fix_dotfiles_origin +} + +if [ "$EUID" -eq 0 ] + init_for_root +else + init_for_daniel +fi + +echo "Here is this machine's public SSH key:" +echo " $(cat "$home/.ssh/$(hostname --short).pub")" +echo "It needs to be added to existing cloud-based git accounts" +echo "and other machines before proceeding." +echo +echo "Don't forget to setup GPG keys by importing from an existing machine" +echo "or adding new child keys!" +echo +echo "The simplest method for doing this is to run the following:" +echo ' scp -r "$TARGET_MACHINE:~/.gnupg" "$HOME/.gnupg" diff --git a/readme.md b/readme.md index 6c82ca9..febe3da 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,7 @@ # dotfiles by lytedev +curl -s -L https://git.lyte.dev/lytedev/dotfiles/raw/branch/nixos/init.sh + [🖥️ Upstream][upstream] • [🐙 GitHub Mirror][github] ![Desktop Screenshot][desktop-screenshot] diff --git a/setup.bash b/setup.bash index 920a416..0103ada 100755 --- a/setup.bash +++ b/setup.bash @@ -117,8 +117,17 @@ links=( # XDG user directories "apps/shell/user-dirs" "$XDG_CONFIG_HOME/user-dirs.dirs" + # Music Player Daemon + "apps/mpd" "$XDG_CONFIG_HOME/mpd" + + # MPD client + "apps/ncmpcpp" "$HOME/.ncmpcpp" + # XDG user directories "env/nix/pkgs" "$XDG_CONFIG_HOME/nixpkgs" + + # Kanshi configuration + "apps/kanshi" "$XDG_CONFIG_HOME/kanshi" ) chmod 700 -R "$HOME/.bin"