diff --git a/DEV_ENV b/DEV_ENV index 5d6ffca..32e6adf 100644 --- a/DEV_ENV +++ b/DEV_ENV @@ -42,6 +42,8 @@ similar to python's virtualenv but for the entirety of my system. - [ ] Make a way for me to put my laptop in a low power state, doing very specific actions like: 1. disabling LSP use by default temporarily +- [ ] Add https://github.com/levnikmyskin/hyprland-virtual-desktops + TODO: - [X] make btop theming declarative - [ ] Merge laptop and PC dotfiles repos diff --git a/btop.conf.bak b/btop.conf.bak new file mode 100644 index 0000000..bbd095e --- /dev/null +++ b/btop.conf.bak @@ -0,0 +1,248 @@ +#? Config file for btop v. 1.4.0 + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "Default" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "memory" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/gitkraken_issue_solution b/gitkraken_issue_solution new file mode 100644 index 0000000..4d8b58b --- /dev/null +++ b/gitkraken_issue_solution @@ -0,0 +1,10 @@ +If gitkraken won't work make sure: + +The ssh-agent is running and "$SSH_AUTH_SOCK" equals "$XDG_RUNTIME_DIR/ssh-agent" +(this is the known ssh-agent issue I've already solved). + +Next make sure whatever you're cloning/etc from is in your ~/.ssh/known_hosts file +(if using ssh). Gitkraken may fail to do this automatically. ie for gitlab run: +```sh +ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts +``` diff --git a/gitkraken_themes b/gitkraken_themes new file mode 100644 index 0000000..e7afa74 --- /dev/null +++ b/gitkraken_themes @@ -0,0 +1 @@ +https://jonbunator.github.io/gitkraken-custom-themes/#dracula---source diff --git a/homes/me/default.nix b/homes/me/default.nix index 19d85d8..6be5fd4 100755 --- a/homes/me/default.nix +++ b/homes/me/default.nix @@ -16,6 +16,7 @@ ../modules/fish.nix ../modules/editor/helix.nix + ../modules/btop.nix ../modules/rio.nix ../modules/firefox.nix ../modules/nixcord.nix @@ -89,6 +90,25 @@ # these are both required for home-manager to work home-manager.enable = true; + # set ssh profiles + # (all we need is hyrule, everything else is through wishlist) + # NOTE: (IMPORTANT) this DOES NOT start the ssh-agent + # for that you need to use `services.ssh-agent-enable` + ssh = { + enable = true; + forwardAgent = true; + addKeysToAgent = "yes"; # always add keys to ssh-agent + + matchBlocks = { + hyrule = { + hostname = "imbored.dev"; + user = "ae"; + port = 22; + identityFile = "/home/me/.ssh/id_hyrule"; + }; + }; + }; + ags = { enable = true; configDir = ./ags; @@ -131,6 +151,11 @@ */ }; + # enable OpenSSH private key agent + services.ssh-agent.enable = true; + # the ssh-agent won't set this for itself... + systemd.user.sessionVariables.SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent"; + # ----- SERVICES ----- # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; diff --git a/homes/modules/btop.nix b/homes/modules/btop.nix new file mode 100644 index 0000000..119da4f --- /dev/null +++ b/homes/modules/btop.nix @@ -0,0 +1,79 @@ +{config, ...}: { + programs.btop = { + enable = true; + + settings = { + # Theming + color_theme = "dracula"; + theme_background = true; + truecolor = true; + force_tty = false; + vim_keys = false; # allow vim keybindings + # Units + clock_format = "%I:%M %p, %b %d"; + temp_scale = "celsius"; + base_10_sizes = false; # use KB or KiB + + # UI + background_update = true; + update_ms = 2000; + rounded_corners = false; + graph_symbol = "braille"; # braille/block/tty + graph_symbol_cpu = "default"; + graph_symbol_mem = "default"; + graph_symbol_net = "default"; + graph_symbol_proc = "default"; + + # Processes Window + proc_left = true; # show on left side of window + proc_colors = true; + proc_gradient = true; + proc_per_core = false; # false: % of ALL cores + proc_mem_bytes = false; # show mem usage as % + proc_sorting = "cpu lazy"; + proc_filter_kernel = false; # hide kernel child processes + proc_tree = false; + + # CPU Window + cpu_bottom = false; # display at bottom of window + show_uptime = true; + show_cpu_freq = true; + check_temp = true; # show cpu temp + show_coretemp = true; # show temp per core + cpu_graph_upper = "total"; # upper graph shows total CPU usage + cpu_graph_lower = "user"; # lower graph shows user's CPU usage + cpu_invert_lower = true; + cpu_single_graph = false; # disable lower graph + show_gpu_info = "Off"; # Auto/On/Off + gpu_mirror_graph = false; # horizontally mirror gpu graph + + # Memory Window + mem_below_net = false; # show below net window + mem_graphs = true; # show graphs not meters + show_swap = true; # show swap memory usage + # Disks Subwindow + show_disks = true; # split mem box to show disk info + swap_disk = true; # show swap memory as disk + show_io_stat = true; + io_graph_combined = false; # combine read/write stats + io_mode = true; # show io stat as graph + use_fstab = true; # read disk list from /etc/fstab + only_physical = false; # ignore non-physical disks + + # Network Window + net_iface = ""; # default network interface to monitor + net_auto = true; # overrides net_download/net_upload (below) + net_sync = false; # sync download/upload graph scales + net_download = 100; # max download speed graphed + net_upload = 100; # max upload speed graphed + + # Battery + show_battery = true; + selected_battery = "Auto"; + show_battery_watts = true; + + # Other + log_level = "WARNING"; # ERROR/WARNING/INFO/DEBUG + }; + }; +} diff --git a/homes/modules/hypr/hyprland.nix b/homes/modules/hypr/hyprland.nix index e69de29..40a1d99 100644 --- a/homes/modules/hypr/hyprland.nix +++ b/homes/modules/hypr/hyprland.nix @@ -0,0 +1,2 @@ +# NOTE: hyprland must be enabled in BOTH your host config (for running hyprland) +# and your home-manager config (for managing hyprland's config files) diff --git a/hosts/lolcathost/default.nix b/hosts/lolcathost/default.nix index 0167200..9b1e1c2 100755 --- a/hosts/lolcathost/default.nix +++ b/hosts/lolcathost/default.nix @@ -132,6 +132,9 @@ in { # for graphical applications flatpak gnome-software + + jetbrains.rider + gitkraken ]; }; @@ -181,7 +184,8 @@ in { easyeffects ani-cli wl-clipboard # clipboard for wayland - kcalc # TEMP: (FOR TESTING) + + pavucontrol (callPackage ./sddm-theme-corners.nix {}).sddm-theme-corners # dependencies for my sddm theme: diff --git a/modules/hyprland/default.nix b/modules/hyprland/default.nix index 71ee559..530f075 100755 --- a/modules/hyprland/default.nix +++ b/modules/hyprland/default.nix @@ -1,12 +1,12 @@ -{ +# NOTE: hyprland must be enabled in BOTH your host config (for running hyprland) +# and your home-manager config (for managing hyprland's config files) +{ pkgs, inputs, config, - lib, - ... -}: - -{ + lib, + ... +}: { options.hyprland = { enable = lib.mkEnableOption "Hyprland"; }; @@ -17,7 +17,7 @@ #package = inputs.hyprland.packages.${pkgs.system}.hyprland; xwayland.enable = true; }; - + xdg.portal = { enable = true; extraPortals = with pkgs; [ @@ -26,5 +26,5 @@ }; # TODO: finish this (I didn't like the dotfiles I was getting inspo from and stopped) - }; + }; }